{"version":3,"file":"static/js/main.a4541b72.js","mappings":"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","sources":["assets/images/navigation-icons/arrow-down.svg","assets/images/navigation-icons/arrow-left.svg","assets/images/navigation-icons/logo-mcq.svg","assets/images/Popup/img_android-close.svg","assets/images/Images.jsx","components/FallbackLoader/FallbackLoader.jsx","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-device-detect/dist/lib.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-side-effect/lib/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/ua-parser-js/dist/ua-parser.min.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/i18next/dist/esm/i18next.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","functions/getCookie.jsx","serviceWorkerRegistration.js","components/ServiceWorkerPopup/ServiceWorkerPopup.jsx","components/WifiPopup/WifiPopup.jsx","../node_modules/react-helmet/es/Helmet.js","../node_modules/@didomi/react/es/index.js","HelmetContent.jsx","App.jsx","functions/i18n.js","index.js"],"sourcesContent":["var _style, _g, _g2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgArrowDown(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 26 15.8\",\n style: {\n enableBackground: \"new 0 0 26 15.8\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{display:none;}\\n\\t.st1{display:inline;}\\n\\t.st2{fill:none;stroke:#FFFFFF;stroke-width:3;}\\n\\t.st3{fill:#FFFFFF;stroke:#FFFFFF;stroke-miterlimit:10;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1_1_\",\n className: \"st0\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"st1\"\n }, /*#__PURE__*/React.createElement(\"polyline\", {\n className: \"st2\",\n points: \"1.9,2 13.4,13.6 25,2 \"\n })))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2_1_\"\n }, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M13,14.8c-0.4,0-0.9-0.2-1.2-0.5L1.5,3.9c-0.7-0.7-0.7-1.7,0-2.4s1.7-0.7,2.4,0l9.1,9.2l9.1-9.2 c0.7-0.7,1.7-0.7,2.4,0c0.7,0.7,0.7,1.7,0,2.4L14.2,14.3C13.9,14.6,13.4,14.8,13,14.8z\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowDown);\nexport default __webpack_public_path__ + \"static/media/arrow-down.d8b4429b6584bf98f82198e23707bde6.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _g, _g2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgArrowLeft(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 50 50\",\n style: {\n enableBackground: \"new 0 0 50 50\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{display:none;}\\n\\t.st1{display:inline;}\\n\\t.st2{fill:none;stroke:#FFFFFF;stroke-width:3;}\\n\\t.st3{fill:#FFFFFF;stroke:#FFFFFF;stroke-miterlimit:10;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1_1_\",\n className: \"st0\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"st1\"\n }, /*#__PURE__*/React.createElement(\"polyline\", {\n className: \"st2\",\n points: \"13.5,19.1 25,30.7 36.6,19.1 \"\n })))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2_1_\"\n }, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M17.7,25c0-0.4,0.2-0.9,0.5-1.2l10.3-10.3c0.7-0.7,1.7-0.7,2.4,0c0.7,0.7,0.7,1.7,0,2.4L21.7,25l9.2,9.1 c0.7,0.7,0.7,1.7,0,2.4c-0.7,0.7-1.7,0.7-2.4,0L18.2,26.2C17.8,25.9,17.7,25.4,17.7,25z\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowLeft);\nexport default __webpack_public_path__ + \"static/media/arrow-left.73136b4f4dadab198ec55ef0c86d1b35.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLogoMcq(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Calque_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 50 46\",\n style: {\n enableBackground: \"new 0 0 50 46\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#FFFFFF;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st0\",\n points: \"39.4,46.2 49,31 38.9,0.7 29.3,15.8 24.3,0.7 14.7,15.8 9.6,0.7 0.1,15.8 10.1,46.2 19.7,31 24.8,46.2 34.4,31 \"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoMcq);\nexport default __webpack_public_path__ + \"static/media/logo-mcq.f60814c5251a77c79cdd167523c052b6.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgImgAndroidClose(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 32 32\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}\"))), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"cross\"\n }, /*#__PURE__*/React.createElement(\"line\", {\n className: \"cls-1\",\n x1: 7,\n x2: 25,\n y1: 7,\n y2: 25\n }), /*#__PURE__*/React.createElement(\"line\", {\n className: \"cls-1\",\n x1: 7,\n x2: 25,\n y1: 25,\n y2: 7\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgImgAndroidClose);\nexport default __webpack_public_path__ + \"static/media/img_android-close.2001e956d267bc9b1a2349ee0a8ee521.svg\";\nexport { ForwardRef as ReactComponent };","//Home Images\nimport home1 from './home/home_1.jpg';\nimport home2 from './home/home_2.jpg';\nimport home3 from './home/home_3.jpg';\nimport home4 from './home/home_4.jpg';\n\n/*//User Card Images\nimport memberCard from './user-card/member_card.png';\nimport missingCard from './user-card/missing_card.png';\n*/\n//Info Images\nimport info1 from './info/info1.jpg';\nimport info2 from './info/info2.jpeg';\nimport info3 from './info/info3.jpg';\n\n//Menu Icons\nimport home from './menu-icons/accueil.png';\nimport activities from './menu-icons/activities.png';\nimport collections from './menu-icons/collections.png';\nimport exhibitions from './menu-icons/expositions.png';\nimport infos from './menu-icons/information.png';\nimport map from './menu-icons/plan.png';\nimport ticket from './menu-icons/ticket.png';\n\n//Navigation Icons\nimport arrowDown from './navigation-icons/arrow-down.svg';\nimport arrowLeft from './navigation-icons/arrow-left.svg';\nimport close from './navigation-icons/close.png';\nimport logo from './navigation-icons/logo-mcq.svg';\nimport menu from './navigation-icons/menu.png';\n\n//Popup Icons\nimport iosShare from './Popup/img_ios-share.jpg';\nimport iosLogo from './Popup/img_logo-mcq-ios.png';\nimport androidClose from './Popup/img_android-close.svg';\n\n//Media Icons\nimport audio from './media/audio.png';\nimport video from './media/video.png';\n\nexport const HomeImages = [\n { image: home1 },\n { image: home2 },\n { image: home3 },\n { image: home4 }\n];\n/*\nexport const UserCardImages = [\n { memberCard: memberCard },\n { missingCard: missingCard }\n];\n*/\nexport const InfoImages = [\n { image: info1 },\n { image: info2 },\n { image: info3 }\n];\n\nexport const MenuIcons = [\n { image: home },\n { image: activities },\n { image: collections },\n { image: exhibitions },\n { image: infos },\n { image: map },\n { image: ticket }\n];\n\nexport const NavigationIcons = [\n { image: arrowDown },\n { image: arrowLeft },\n { image: close },\n { image: logo },\n { image: menu },\n];\n\nexport const PopupIcons = [\n { image: iosLogo },\n { image: iosShare },\n { image: androidClose }\n]\n\nexport const MediaIcons = [\n { image: audio },\n { image: video }\n]","import React from 'react';\n\nconst FallbackLoader = () => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n\nexport default FallbackLoader;","////////////////////////////////////////////////////////////////////////////////\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 path: string;\n matches: M[];\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/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n 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 initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // 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 // 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 }\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 = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial 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 state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = 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 path,\n fetchRequest.signal\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 path,\n fetchRequest.signal\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 if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n 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 ): 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 path: pathname,\n matches: partialMatches,\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 };\n }\n\n // Convert thrown data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n 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","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\nvar serializeCookie = function serializeCookie(name, val, options) {\n var opt = options || {};\n opt.path = opt.path || '/';\n var value = encodeURIComponent(val);\n var str = \"\".concat(name, \"=\").concat(value);\n\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += \"; Max-Age=\".concat(Math.floor(maxAge));\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += \"; Domain=\".concat(opt.domain);\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += \"; Path=\".concat(opt.path);\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += \"; Expires=\".concat(opt.expires.toUTCString());\n }\n\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n\n case 'lax':\n str += '; SameSite=Lax';\n break;\n\n case 'strict':\n str += '; SameSite=Strict';\n break;\n\n case 'none':\n str += '; SameSite=None';\n break;\n\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n};\n\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read: function read(name) {\n var nameEQ = \"\".concat(name, \"=\");\n var ca = document.cookie.split(';');\n\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n\n return null;\n },\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupCookie && typeof document !== 'undefined') {\n var c = cookie.read(options.lookupCookie);\n if (c) found = c;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupCookie && typeof document !== 'undefined') {\n cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var search = window.location.search;\n\n if (!window.location.search && window.location.hash && window.location.hash.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n\n var query = search.substring(1);\n var params = query.split('&');\n\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n\n return found;\n }\n};\n\nvar hasLocalStorageSupport = null;\n\nvar localStorageAvailable = function localStorageAvailable() {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n\n return hasLocalStorageSupport;\n};\n\nvar localStorage = {\n name: 'localStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupLocalStorage && localStorageAvailable()) {\n var lng = window.localStorage.getItem(options.lookupLocalStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};\n\nvar hasSessionStorageSupport = null;\n\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n\n return hasSessionStorageSupport;\n};\n\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup: function lookup(options) {\n var found = [];\n\n if (typeof navigator !== 'undefined') {\n if (navigator.languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (var i = 0; i < navigator.languages.length; i++) {\n found.push(navigator.languages[i]);\n }\n }\n\n if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n lookup: function lookup(options) {\n var found;\n var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n\n if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n found = htmlTag.getAttribute('lang');\n }\n\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n\n return found;\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n // If given get the subdomain index else 1\n var lookupFromSubdomainIndex = typeof options.lookupFromSubdomainIndex === 'number' ? options.lookupFromSubdomainIndex + 1 : 1; // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group macht which sould be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n\n var language = typeof window !== 'undefined' && window.location && window.location.hostname && window.location.hostname.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i); // if there is no match (null) return undefined\n\n if (!language) return undefined; // return the given group match\n\n return language[lookupFromSubdomainIndex];\n }\n};\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'] // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n };\n}\n\nvar Browser = /*#__PURE__*/function () {\n function Browser(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Browser);\n\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n\n _createClass(Browser, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults()); // backwards compatibility\n\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n }, {\n key: \"addDetector\",\n value: function addDetector(detector) {\n this.detectors[detector.name] = detector;\n }\n }, {\n key: \"detect\",\n value: function detect(detectionOrder) {\n var _this = this;\n\n if (!detectionOrder) detectionOrder = this.options.order;\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n }, {\n key: \"cacheUserLanguage\",\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n\n return Browser;\n}();\n\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","/** @license React v17.0.2\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\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(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 D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(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){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(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(oa,pa);D[b]=new B(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(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(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 ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function 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 m({},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 $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(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\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(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 bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({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 vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(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}}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(y(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;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){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 Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=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&&Oe(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&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"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[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\n/**\n * Submit options shared by both navigations and fetchers\n */\ninterface SharedSubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides ``.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this submission's state updates\n */\n flushSync?: boolean;\n}\n\n/**\n * Submit options available to fetchers\n */\nexport interface FetcherSubmitOptions extends SharedSubmitOptions {}\n\n/**\n * Submit options available to navigations\n */\nexport interface SubmitOptions extends FetcherSubmitOptions {\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a