{"version":3,"file":"static/js/main.f2f133f6.js","mappings":"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","sources":["../node_modules/react/jsx-runtime.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/void-elements/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/env/data.js","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/deprecations.ts","../node_modules/react-router/lib/components.tsx","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/react-spinners/esm/helpers/unitConverter.js","../node_modules/react-spinners/esm/helpers/animation.js","../node_modules/react-spinners/esm/helpers/colors.js","../node_modules/react-spinners/esm/BarLoader.js","../node_modules/react-spinners/esm/BeatLoader.js","../node_modules/react-spinners/esm/BounceLoader.js","../node_modules/react-spinners/esm/CircleLoader.js","../node_modules/react-spinners/esm/ClimbingBoxLoader.js","../node_modules/react-spinners/esm/ClipLoader.js","../node_modules/react-spinners/esm/ClockLoader.js","../node_modules/react-spinners/esm/DotLoader.js","../node_modules/react-spinners/esm/FadeLoader.js","../node_modules/react-spinners/esm/GridLoader.js","../node_modules/react-spinners/esm/HashLoader.js","../node_modules/react-spinners/esm/MoonLoader.js","../node_modules/react-spinners/esm/PacmanLoader.js","../node_modules/react-spinners/esm/PropagateLoader.js","../node_modules/react-spinners/esm/PuffLoader.js","../node_modules/react-spinners/esm/PulseLoader.js","../node_modules/react-spinners/esm/RingLoader.js","../node_modules/react-spinners/esm/RiseLoader.js","../node_modules/react-spinners/esm/RotateLoader.js","../node_modules/react-spinners/esm/ScaleLoader.js","../node_modules/react-spinners/esm/SyncLoader.js","stories/LoadingIcon/LoadingIcon.tsx","../node_modules/html-parse-stringify/src/parse-tag.js","../node_modules/html-parse-stringify/src/parse.js","../node_modules/html-parse-stringify/src/stringify.js","../node_modules/html-parse-stringify/src/index.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/TransWithoutContext.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/Trans.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/client.js","../node_modules/axios/lib/core/dispatchRequest.js","utilities/url/getUrlParam.ts","../node_modules/react/index.js","components/shared/Loader/StoryLoader.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","components/shared/Loader/Loader.tsx","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/react-dom/index.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/scheduler/index.js","../node_modules/axios/lib/core/Axios.js","utilities/services/preferences-service/preferences-service.ts","../node_modules/axios/lib/defaults/transitional.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","routes/main-routes.tsx","App.tsx","reportWebVitals.ts","../node_modules/i18next/dist/esm/i18next.js","utilities/i18n/index.ts","index.tsx"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","module.exports = require('./lib/axios');","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport type AgnosticPatchRoutesOnNavigationFunctionArgs<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = {\n signal: AbortSignal;\n path: string;\n matches: M[];\n fetcherKey: string | undefined;\n patch: (routeId: string | null, children: O[]) => void;\n};\n\nexport type AgnosticPatchRoutesOnNavigationFunction<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = (\n opts: AgnosticPatchRoutesOnNavigationFunctionArgs\n) => void | Promise;\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/v6/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/v6/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/v6/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/v6/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n *\n * @deprecated The `json` method is deprecated in favor of returning raw objects.\n * This method will be removed in v7.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\n/**\n * @deprecated The `defer` method is deprecated in favor of returning raw\n * objects. This method will be removed in v7.\n */\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n dataStrategy?: DataStrategyFunction;\n patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n viewTransitionOpts?: ViewTransitionOpts;\n flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialMatchesIsFOW = false;\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatchesIsFOW = true;\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches\n .slice(0, idx + 1)\n .every((m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(\n (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n );\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Remove any lingering deleted fetchers that have already been removed\n // from state.fetchers\n deletedFetchers.forEach((key) => {\n if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n deletedFetchersKeys.push(key);\n }\n });\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n } else {\n // We already called deleteFetcher() on these, can remove them from this\n // Set now that we've handed the keys off to the data layer\n deletedFetchersKeys.forEach((key) => deletedFetchers.delete(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches =\n opts?.initialHydration &&\n state.matches &&\n state.matches.length > 0 &&\n !initialMatchesIsFOW\n ? // `matchRoutes()` has already been called if we're in here via `router.initialize()`\n state.matches\n : matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n matches &&\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error: discoverResult.error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = { ...state.errors, ...errors };\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n abortFetcher(key);\n\n let flushSync = (opts && opts.flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n preventScrollReset: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n new URL(fetchRequest.url).pathname,\n fetchRequest.signal,\n key\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false,\n { preventScrollReset }\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false,\n { preventScrollReset }\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n preventScrollReset: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n new URL(fetchRequest.url).pathname,\n fetchRequest.signal,\n key\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset,\n });\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n preventScrollReset?: boolean;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n\n // If we opted into the flag we can clear this now since we're calling\n // deleteFetcher() at the end of updateState() and we've already handed the\n // deleted fetcher keys off to the data layer.\n // If not, we're eagerly calling deleteFetcher() and we need to keep this\n // Set populated until the next updateState call, and we'll clear\n // `deletedFetchers` then\n if (future.v7_fetcherPersist) {\n deletedFetchers.delete(key);\n }\n\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n if (!future.v7_fetcherPersist) {\n deleteFetcher(key);\n }\n } else {\n activeFetchers.set(key, count);\n }\n\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal,\n fetcherKey?: string\n ): Promise {\n if (!patchRoutesOnNavigationImpl) {\n return { type: \"success\", matches };\n }\n\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n signal,\n path: pathname,\n matches: partialMatches,\n fetcherKey,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n localManifest,\n mapRouteProperties\n );\n },\n });\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? `?${qs}` : \"\";\n }\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string,\n includeBoundary = false\n) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n initialHydration: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(state.errors)[0],\n true\n );\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n pendingActionResult[0]\n );\n }\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n initialHydration ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction shouldLoadRouteOnHydration(\n route: AgnosticDataRouteObject,\n loaderData: RouteData | null | undefined,\n errors: RouteData | null | undefined\n) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n let childrenToPatch: AgnosticDataRouteObject[];\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(\n (newRoute) =>\n !childrenToPatch.some((existingRoute) =>\n isSameRoute(newRoute, existingRoute)\n )\n );\n\n let newRoutes = convertRoutesToDataRoutes(\n uniqueChildren,\n mapRouteProperties,\n [routeId || \"_\", \"patch\", String(childrenToPatch?.length || \"0\")],\n manifest\n );\n\n childrenToPatch.push(...newRoutes);\n}\n\nfunction isSameRoute(\n newRoute: AgnosticRouteObject,\n existingRoute: AgnosticRouteObject\n): boolean {\n // Most optimal check is by id\n if (\n \"id\" in newRoute &&\n \"id\" in existingRoute &&\n newRoute.id === existingRoute.id\n ) {\n return true;\n }\n\n // Second is by pathing differences\n if (\n !(\n newRoute.index === existingRoute.index &&\n newRoute.path === existingRoute.path &&\n newRoute.caseSensitive === existingRoute.caseSensitive\n )\n ) {\n return false;\n }\n\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if (\n (!newRoute.children || newRoute.children.length === 0) &&\n (!existingRoute.children || existingRoute.children.length === 0)\n ) {\n return true;\n }\n\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children!.every((aChild, i) =>\n existingRoute.children?.some((bChild) => isSameRoute(aChild, bChild))\n );\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n // Convert thrown data() to ErrorResponse instances\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n ),\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n flushSync?: boolean;\n viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\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/v6/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // 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.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // 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 if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\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/v6/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // 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.`\n );\n\n return React.useContext(LocationContext).location;\n}\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/v6/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\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/v6/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // 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.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\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/v6/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // 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.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/v6/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\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/v6/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\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/v6/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/v6/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\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/v6/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // 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.`\n );\n\n let { navigator, static: isStatic } = React.useContext(NavigationContext);\n let { matches: parentMatches } = 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 (__DEV__) {\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(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches =\n !isStatic &&\n dataRouterState &&\n dataRouterState.matches &&\n dataRouterState.matches.length > 0\n ? (dataRouterState.matches as AgnosticRouteMatch[])\n : matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // 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 if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\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 (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\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 return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (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 as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\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 * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type { FutureConfig as RouterFutureConfig } from \"@remix-run/router\";\nimport type { FutureConfig as RenderFutureConfig } from \"./components\";\n\nconst alreadyWarned: { [key: string]: boolean } = {};\n\nexport function warnOnce(key: string, message: string): void {\n if (__DEV__ && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\n\nconst logDeprecation = (flag: string, msg: string, link: string) =>\n warnOnce(\n flag,\n `⚠️ React Router Future Flag Warning: ${msg}. ` +\n `You can use the \\`${flag}\\` future flag to opt-in early. ` +\n `For more information, see ${link}.`\n );\n\nexport function logV6DeprecationWarnings(\n renderFuture: Partial | undefined,\n routerFuture?: Omit\n) {\n if (renderFuture?.v7_startTransition === undefined) {\n logDeprecation(\n \"v7_startTransition\",\n \"React Router will begin wrapping state updates in `React.startTransition` in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_starttransition\"\n );\n }\n\n if (\n renderFuture?.v7_relativeSplatPath === undefined &&\n (!routerFuture || !routerFuture.v7_relativeSplatPath)\n ) {\n logDeprecation(\n \"v7_relativeSplatPath\",\n \"Relative route resolution within Splat routes is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath\"\n );\n }\n\n if (routerFuture) {\n if (routerFuture.v7_fetcherPersist === undefined) {\n logDeprecation(\n \"v7_fetcherPersist\",\n \"The persistence behavior of fetchers is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist\"\n );\n }\n\n if (routerFuture.v7_normalizeFormMethod === undefined) {\n logDeprecation(\n \"v7_normalizeFormMethod\",\n \"Casing of `formMethod` fields is being normalized to uppercase in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod\"\n );\n }\n\n if (routerFuture.v7_partialHydration === undefined) {\n logDeprecation(\n \"v7_partialHydration\",\n \"`RouterProvider` hydration behavior is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_partialhydration\"\n );\n }\n\n if (routerFuture.v7_skipActionErrorRevalidation === undefined) {\n logDeprecation(\n \"v7_skipActionErrorRevalidation\",\n \"The revalidation behavior after 4xx/5xx `action` responses is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation\"\n );\n }\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\nimport { logV6DeprecationWarnings } from \"./deprecations\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n React.useEffect(\n () => logV6DeprecationWarnings(future, router.future),\n [router, future]\n );\n\n // 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