{"version":3,"file":"static/js/main.a522faa9.js","mappings":"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","sources":["../node_modules/react-collapse/lib/Collapse.js","../node_modules/react-collapse/lib/UnmountClosed.js","../node_modules/react-collapse/lib/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../react-masonry-list/webpack/universalModuleDefinition","../react-masonry-list/src/index.module.css","../react-masonry-list/node_modules/css-loader/dist/runtime/api.js","../react-masonry-list/node_modules/css-loader/dist/runtime/sourceMaps.js","../react-masonry-list/node_modules/object-assign/index.js","../react-masonry-list/node_modules/react/cjs/react-jsx-runtime.production.min.js","../react-masonry-list/node_modules/react/jsx-runtime.js","../react-masonry-list/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","../react-masonry-list/node_modules/style-loader/dist/runtime/insertBySelector.js","../react-masonry-list/node_modules/style-loader/dist/runtime/insertStyleElement.js","../react-masonry-list/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","../react-masonry-list/node_modules/style-loader/dist/runtime/styleDomAPI.js","../react-masonry-list/node_modules/style-loader/dist/runtime/styleTagTransform.js","../react-masonry-list/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../react-masonry-list/webpack/bootstrap","../react-masonry-list/webpack/runtime/compat get default export","../react-masonry-list/webpack/runtime/define property getters","../react-masonry-list/webpack/runtime/hasOwnProperty shorthand","../react-masonry-list/webpack/runtime/make namespace object","../react-masonry-list/webpack/runtime/nonce","../react-masonry-list/src/Item.tsx","../react-masonry-list/src/index.module.css?be18","../react-masonry-list/src/index.tsx","../node_modules/react-masonry-list/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","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","assets/icons/menu.svg","components/NavBar.jsx","components/FlexBox.jsx","pages/Home-sections/WhatIsHardStuffDoing.jsx","components/BuildTestXRepeat.jsx","components/ItsTimeToBuildX.jsx","pages/Home.jsx","components/FitInFigure_assets/Arrows.svg","components/FitInFigure.jsx","components/FitInFigure_assets/What Hard Stuff does.svg","components/FitInFigure_assets/What you do.svg","components/MaskedImg_assets/vector.svg","components/MaskedImg.jsx","pages/Startups.jsx","pages/AboutUs.jsx","pages/ContactUs.jsx","pages/Links.jsx","components/Footer.jsx","pages/Collaborations.jsx","pages/Events.jsx","pages/VentureStudio.jsx","App.jsx","reportWebVitals.js","index.js"],"sourcesContent":["\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Collapse = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Collapse = /*#__PURE__*/function (_React$Component) {\n _inherits(Collapse, _React$Component);\n\n var _super = _createSuper(Collapse);\n\n function Collapse(props) {\n var _this;\n\n _classCallCheck(this, Collapse);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"timeout\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"container\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"content\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function () {\n clearTimeout(_this.timeout);\n\n if (!_this.container || !_this.content) {\n return;\n }\n\n var _this$props = _this.props,\n isOpened = _this$props.isOpened,\n checkTimeout = _this$props.checkTimeout;\n var containerHeight = Math.floor(_this.container.clientHeight);\n var contentHeight = Math.floor(_this.content.clientHeight);\n var isFullyOpened = isOpened && Math.abs(contentHeight - containerHeight) <= 1;\n var isFullyClosed = !isOpened && Math.abs(containerHeight) <= 1;\n\n if (isFullyOpened || isFullyClosed) {\n _this.onRest({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n } else {\n _this.onWork({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n\n _this.timeout = setTimeout(function () {\n return _this.onResize();\n }, checkTimeout);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRest\", function (_ref) {\n var isFullyOpened = _ref.isFullyOpened,\n isFullyClosed = _ref.isFullyClosed,\n isOpened = _ref.isOpened,\n containerHeight = _ref.containerHeight,\n contentHeight = _ref.contentHeight;\n\n if (!_this.container || !_this.content) {\n return;\n }\n\n var hasOpened = isOpened && _this.container.style.height === \"\".concat(contentHeight, \"px\");\n var hasClosed = !isOpened && _this.container.style.height === '0px';\n\n if (hasOpened || hasClosed) {\n _this.container.style.overflow = isOpened ? 'initial' : 'hidden';\n _this.container.style.height = isOpened ? 'auto' : '0px';\n var onRest = _this.props.onRest;\n\n if (onRest) {\n onRest({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWork\", function (_ref2) {\n var isFullyOpened = _ref2.isFullyOpened,\n isFullyClosed = _ref2.isFullyClosed,\n isOpened = _ref2.isOpened,\n containerHeight = _ref2.containerHeight,\n contentHeight = _ref2.contentHeight;\n\n if (!_this.container || !_this.content) {\n return;\n }\n\n var isOpenining = isOpened && _this.container.style.height === \"\".concat(contentHeight, \"px\");\n var isClosing = !isOpened && _this.container.style.height === '0px';\n\n if (isOpenining || isClosing) {\n // No need to do any work\n return;\n }\n\n _this.container.style.overflow = 'hidden';\n _this.container.style.height = isOpened ? \"\".concat(contentHeight, \"px\") : '0px';\n var onWork = _this.props.onWork;\n\n if (onWork) {\n onWork({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRefContainer\", function (container) {\n _this.container = container;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRefContent\", function (content) {\n _this.content = content;\n });\n\n if (props.initialStyle) {\n _this.initialStyle = props.initialStyle;\n } else {\n _this.initialStyle = props.isOpened ? {\n height: 'auto',\n overflow: 'initial'\n } : {\n height: '0px',\n overflow: 'hidden'\n };\n }\n\n return _this;\n }\n\n _createClass(Collapse, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.onResize();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this$props2 = this.props,\n theme = _this$props2.theme,\n isOpened = _this$props2.isOpened,\n children = _this$props2.children;\n return children !== nextProps.children || isOpened !== nextProps.isOpened || Object.keys(theme).some(function (c) {\n return theme[c] !== nextProps.theme[c];\n });\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate() {\n if (!this.container || !this.content) {\n return null;\n }\n\n if (this.container.style.height === 'auto') {\n var contentHeight = this.content.clientHeight;\n this.container.style.height = \"\".concat(contentHeight, \"px\");\n }\n\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onResize();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.timeout);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n theme = _this$props3.theme,\n children = _this$props3.children,\n isOpened = _this$props3.isOpened;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: this.onRefContainer,\n className: theme.collapse,\n style: this.initialStyle,\n \"aria-hidden\": !isOpened\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: this.onRefContent,\n className: theme.content\n }, children));\n }\n }]);\n\n return Collapse;\n}(_react[\"default\"].Component);\n\nexports.Collapse = Collapse;\n\n_defineProperty(Collapse, \"defaultProps\", {\n theme: {\n collapse: 'ReactCollapse--collapse',\n content: 'ReactCollapse--content'\n },\n initialStyle: undefined,\n onRest: undefined,\n onWork: undefined,\n checkTimeout: 50\n});","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UnmountClosed = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Collapse = require(\"./Collapse\");\n\nvar _excluded = [\"isOpened\"],\n _excluded2 = [\"isOpened\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar UnmountClosed = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(UnmountClosed, _React$PureComponent);\n\n var _super = _createSuper(UnmountClosed);\n\n function UnmountClosed(props) {\n var _this;\n\n _classCallCheck(this, UnmountClosed);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onWork\", function (_ref) {\n var isOpened = _ref.isOpened,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n _this.setState({\n isResting: false,\n isOpened: isOpened\n });\n\n var onWork = _this.props.onWork;\n\n if (onWork) {\n onWork(_objectSpread({\n isOpened: isOpened\n }, rest));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRest\", function (_ref2) {\n var isOpened = _ref2.isOpened,\n rest = _objectWithoutProperties(_ref2, _excluded2);\n\n _this.setState({\n isResting: true,\n isOpened: isOpened,\n isInitialRender: false\n });\n\n var onRest = _this.props.onRest;\n\n if (onRest) {\n onRest(_objectSpread({\n isOpened: isOpened\n }, rest));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInitialStyle\", function () {\n var _this$state = _this.state,\n isOpened = _this$state.isOpened,\n isInitialRender = _this$state.isInitialRender;\n\n if (isInitialRender) {\n return isOpened ? {\n height: 'auto',\n overflow: 'initial'\n } : {\n height: '0px',\n overflow: 'hidden'\n };\n }\n\n return {\n height: '0px',\n overflow: 'hidden'\n };\n });\n\n _this.state = {\n isResting: true,\n isOpened: props.isOpened,\n isInitialRender: true\n };\n return _this;\n }\n\n _createClass(UnmountClosed, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var isOpened = this.props.isOpened;\n\n if (prevProps.isOpened !== isOpened) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isResting: false,\n isOpened: isOpened,\n isInitialRender: false\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$state2 = this.state,\n isResting = _this$state2.isResting,\n isOpened = _this$state2.isOpened;\n return isResting && !isOpened ? null : /*#__PURE__*/_react[\"default\"].createElement(_Collapse.Collapse, _extends({}, this.props, {\n initialStyle: this.getInitialStyle(),\n onWork: this.onWork,\n onRest: this.onRest\n }));\n }\n }]);\n\n return UnmountClosed;\n}(_react[\"default\"].PureComponent);\n\nexports.UnmountClosed = UnmountClosed;\n\n_defineProperty(UnmountClosed, \"defaultProps\", {\n onWork: undefined,\n onRest: undefined\n});","\"use strict\";\n\nvar _require = require('./Collapse'),\n Collapse = _require.Collapse;\n\nvar _require2 = require('./UnmountClosed'),\n UnmountClosed = _require2.UnmountClosed; // Default export\n\n\nmodule.exports = UnmountClosed; // Extra \"named exports\"\n\nUnmountClosed.Collapse = Collapse;\nUnmountClosed.UnmountClosed = UnmountClosed;","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(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&128))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 Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 {\nreturn ","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".index-module__layout___ZT1i5 {\\n display: grid;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/index.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAa;AACf\",\"sourcesContent\":[\".layout {\\n display: grid;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"layout\": \"index-module__layout___ZT1i5\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var _i = 0; _i < this.length; _i++) {\n var id = this[_i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i2 = 0; _i2 < modules.length; _i2++) {\n var item = [].concat(modules[_i2]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\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","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","module.exports = __WEBPACK_EXTERNAL_MODULE__359__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","import React from 'react';\n\nexport interface ItemProps {\n children: React.ReactNode[] | React.ReactNode;\n className?: string;\n gridSpan?: number;\n}\n\nconst Item: React.FC = (props: ItemProps) => {\n const span = props.gridSpan || 0;\n return (\n \n {props.children}\n \n );\n};\n\nexport default Item;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./index.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./index.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport Item from './Item';\nimport style from './index.module.css';\n\nconst DEFAULT_GAP = 10;\nconst DEFAULT_MIN_WIDTH = 300;\nconst DEFAULT_COL_COUNT = 3;\n\ninterface LayoutProps {\n items?: React.ReactNode[];\n className?: string;\n gap?: number;\n colCount?: number;\n minWidth?: number;\n}\n\ninterface ImgLoadStatus {\n img: HTMLImageElement;\n loaded: boolean;\n}\n\nconst throttle = (fn: () => void, delay: number) => {\n let timer: ReturnType | null;\n return (...args: any) => {\n if (timer) return;\n timer = setTimeout(() => {\n fn.apply(this, args);\n timer = null;\n }, delay);\n };\n};\n\nconst Layout: React.FC = ({\n items = [],\n className,\n gap = DEFAULT_GAP,\n colCount = DEFAULT_COL_COUNT,\n minWidth = DEFAULT_MIN_WIDTH,\n}: LayoutProps) => {\n const [spanArray, setSpanArray] = useState([]);\n const [allImgLoaded, setAllImgLoaded] = useState(false);\n const layoutRef = useRef(null);\n\n useLayoutEffect(() => {\n setAllImgLoaded(false);\n\n const appendedImgStatusArray = _getAppendedImgLoadStatusArray();\n // Child containing img appended, should wait for img loading\n const needWaitImgLoading = !!appendedImgStatusArray.length;\n if (needWaitImgLoading) {\n _waitImgLoading(appendedImgStatusArray);\n } else {\n _resizeItems();\n }\n }, [items]);\n\n useLayoutEffect(() => {\n const resizeListener = throttle(() => {\n _resizeItems();\n }, 300);\n\n window.addEventListener('resize', resizeListener);\n return () => {\n window.removeEventListener('resize', resizeListener);\n };\n }, []);\n\n useEffect(() => {\n if (allImgLoaded) {\n _resizeItems();\n }\n }, [allImgLoaded]);\n\n const _getClassName = (classNames: string[]) => {\n return classNames.filter((e) => e).join(' ');\n };\n\n const _getAppendedImgLoadStatusArray = (): ImgLoadStatus[] => {\n const newImgArr: ImgLoadStatus[] = [];\n\n if (null !== layoutRef.current) {\n Array.from(layoutRef.current.children).forEach((el) => {\n const imgs = el.getElementsByTagName('img');\n\n if (imgs?.length) {\n newImgArr.push(\n ...Array.from(imgs)\n .filter((img) => !img.onload)\n .map((img) => ({\n img,\n loaded: false,\n }))\n );\n }\n });\n }\n\n return newImgArr;\n };\n\n const _waitImgLoading = (appendedImgStatusArray: ImgLoadStatus[]): void => {\n appendedImgStatusArray.forEach((item) => {\n if (!item.img.onload) {\n item.img.onload = item.img.onerror = () => {\n item.loaded = true;\n if (!appendedImgStatusArray.some((e) => e.loaded === false)) {\n setAllImgLoaded(true);\n }\n };\n }\n });\n };\n\n const _resizeItems = () => {\n if (null !== layoutRef.current) {\n const container = layoutRef.current;\n const newSpanArray: number[] = [];\n const items = Array.from(container.children);\n items.forEach((el) => {\n const firstChild = el.firstElementChild;\n if (firstChild) {\n (firstChild as any).style.height = 'auto';\n }\n const itemHeight = firstChild?.getBoundingClientRect().height || 0;\n const gridSpan = Math.ceil((itemHeight + gap) / gap);\n newSpanArray.push(gridSpan);\n const gridHeight = gridSpan * gap;\n if (firstChild) {\n //@ts-ignore\n firstChild.style.height = `${gridHeight - gap}px`;\n }\n });\n setSpanArray(newSpanArray);\n }\n };\n\n return (\n \n {items.map((item, i) => {\n if (React.isValidElement(item)) {\n return (\n \n {item}\n \n );\n }\n return null;\n })}\n \n );\n};\n\nexport default Layout;\n","module.exports = require('./dist');\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"c6aafbdc\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"HardStuff:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkHardStuff\"] = self[\"webpackChunkHardStuff\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","////////////////////////////////////////////////////////////////////////////////\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: any;\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 status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\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\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\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 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\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;\n action?: ActionFunction;\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: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, 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 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(branches[i], decoded);\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\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): 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 if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\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\nfunction 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 === matches.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 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\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 ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\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} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\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 * 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}\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}\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?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\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\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\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 // 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 ...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) {\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 let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\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 (!hasLoaders) {\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 initialized = initialMatches.every(\n (m) =>\n m.route.loader &&\n m.route.loader.hydrate !== true &&\n ((loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined))\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: string[] = [];\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 // 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 ignoreNextHistoryUpdate = false;\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 (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\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 ignoreNextHistoryUpdate = true;\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\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n 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 cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\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 // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | 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 pendingError = {\n [findNearestBoundary(matches).route.id]: 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 actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionData,\n pendingError\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,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\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 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 // 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 result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\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 replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\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 are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\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 overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\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 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 isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\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: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\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 if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\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 let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\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 let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.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;\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 // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\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(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\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(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\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 let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\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(state, result);\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 state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.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(redirect.location);\n } else {\n routerWindow.location.assign(redirect.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 ? HistoryAction.Replace : 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.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\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 this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\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.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function 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 _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\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 _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 async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\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(request, location, matches, requestContext);\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 async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\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 match\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 routeMatch?: AgnosticDataRouteMatch\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 routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\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, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\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 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 result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\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.status,\n headers: {\n Location: result.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 if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\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 : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\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 let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\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 : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\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: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\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 matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\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 return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\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 defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * 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\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = 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 loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run 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, data: 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 !== 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 resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\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 (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\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 return { type: ResultType.data, data: result };\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 matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\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\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\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) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\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 } else {\n loaderData[id] = result.data;\n }\n\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 }\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) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\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\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 }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\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: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\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 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 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 isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\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 resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\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) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\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\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

πŸ’Ώ Hey developer πŸ‘‹

\n

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

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

Unexpected Application Error!

\n

{message}

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