{"version":3,"file":"static/js/main.6a7db321.js","mappings":"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","sources":["../node_modules/aos/dist/aos.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-side-effect/lib/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../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/global","../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","components/meet-instructor/index.jsx","components/cards/index.jsx","components/why-us/index.jsx","components/Homepage/HomeSection.jsx","../node_modules/@emailjs/browser/es/store/store.js","../node_modules/@emailjs/browser/es/utils/validateParams.js","../node_modules/@emailjs/browser/es/models/EmailJSResponseStatus.js","../node_modules/@emailjs/browser/es/api/sendPost.js","../node_modules/@emailjs/browser/es/index.js","../node_modules/@emailjs/browser/es/methods/sendForm/sendForm.js","components/Contact/index.jsx","components/footer/index.jsx","components/Header/index.js","components/CoursePage/index.jsx","../node_modules/react-helmet/es/Helmet.js","components/comingsoon/index.jsx","App.js","reportWebVitals.js","index.js"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p=\"dist/\",t(0)}([function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},M=function(){w.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\")})},S=function(e){return e===!0||\"mobile\"===e&&p.default.mobile()||\"phone\"===e&&p.default.phone()||\"tablet\"===e&&p.default.tablet()||\"function\"==typeof e&&e()===!0},_=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?M():(x.disableMutationObserver||d.default.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),x.disableMutationObserver=!0),document.querySelector(\"body\").setAttribute(\"data-aos-easing\",x.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",x.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",x.delay),\"DOMContentLoaded\"===x.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1?j(!0):\"load\"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener(\"resize\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"orientationchange\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"scroll\",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||d.default.ready(\"[data-aos]\",O),w)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){\"use strict\";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(f,t),M?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=O();return c(e)?d(e):void(h=setTimeout(f,a(e)))}function d(e){return h=void 0,_&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),o(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,k=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(s);return t=u(t)||0,i(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?x(u(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(s);return i(o)&&(r=\"leading\"in o?!!o.leading:r,a=\"trailing\"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t=\"undefined\"==typeof e?\"undefined\":c(e);return!!e&&(\"object\"==t||\"function\"==t)}function r(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":c(e))}function a(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":c(e))||r(e)&&k.call(e)==d}function u(e){if(\"number\"==typeof e)return e;if(a(e))return f;if(i(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(l,\"\");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?f:+e}var c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s=\"Expected a function\",f=NaN,d=\"[object Symbol]\",l=/^\\s+|\\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y=\"object\"==(\"undefined\"==typeof t?\"undefined\":c(t))&&t&&t.Object===Object&&t,g=\"object\"==(\"undefined\"==typeof self?\"undefined\":c(self))&&self&&self.Object===Object&&self,h=y||g||Function(\"return this\")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){\"use strict\";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(f,t),M?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function s(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=j();return s(e)?d(e):void(h=setTimeout(f,u(e)))}function d(e){return h=void 0,_&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=s(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),i(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,O=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?k(a(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e){var t=\"undefined\"==typeof e?\"undefined\":u(e);return!!e&&(\"object\"==t||\"function\"==t)}function i(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":u(e))}function r(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":u(e))||i(e)&&w.call(e)==f}function a(e){if(\"number\"==typeof e)return e;if(r(e))return s;if(o(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(d,\"\");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?s:+e}var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},c=\"Expected a function\",s=NaN,f=\"[object Symbol]\",d=/^\\s+|\\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v=\"object\"==(\"undefined\"==typeof t?\"undefined\":u(t))&&t&&t.Object===Object&&t,y=\"object\"==(\"undefined\"==typeof self?\"undefined\":u(self))&&self&&self.Object===Object&&self,g=v||y||Function(\"return this\")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){\"use strict\";function n(e){var t=void 0,o=void 0,i=void 0;for(t=0;te.position?e.node.classList.add(\"aos-animate\"):\"undefined\"!=typeof o&&(\"false\"===o||!n&&\"true\"!==o)&&e.node.classList.remove(\"aos-animate\")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add(\"aos-init\"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute(\"data-aos-offset\"),anchor:e.getAttribute(\"data-aos-anchor\"),anchorPlacement:e.getAttribute(\"data-aos-anchor-placement\")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case\"top-bottom\":break;case\"center-bottom\":n+=e.offsetHeight/2;break;case\"bottom-bottom\":n+=e.offsetHeight;break;case\"top-center\":n+=i/2;break;case\"bottom-center\":n+=i/2+e.offsetHeight;break;case\"center-center\":n+=i/2+e.offsetHeight/2;break;case\"top-top\":n+=i;break;case\"bottom-top\":n+=e.offsetHeight+i;break;case\"center-top\":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){return e=e||document.querySelectorAll(\"[data-aos]\"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\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 + \".\" + \"8566eefc\" + \".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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"webapp:\";\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\t792: 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[\"webpackChunkwebapp\"] = self[\"webpackChunkwebapp\"] || [];\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: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\nexport interface AgnosticPatchRoutesOnMissFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnMissFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnMiss?: AgnosticPatchRoutesOnMissFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnMissImpl = init.unstable_patchRoutesOnMiss;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnMissImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnMiss implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnMiss` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnMiss() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let 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 // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { 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 let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.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([...loaderResults, ...fetcherResults]);\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(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.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([...loaderResults, ...fetcherResults]);\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(revalidationRequest, 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 isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve 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 // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\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 let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\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 {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnMissImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n let leafRoute = matches[matches.length - 1].route;\n if (\n leafRoute.path &&\n (leafRoute.path === \"*\" || leafRoute.path.endsWith(\"/*\"))\n ) {\n // If we matched a splat, it might only be because we haven't yet fetched\n // the children that would match with a higher score, so let's fetch\n // around and find out\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n let route =\n partialMatches.length > 0\n ? partialMatches[partialMatches.length - 1].route\n : null;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnMissImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n let matchedSplat = false;\n if (newMatches) {\n let leafRoute = newMatches[newMatches.length - 1].route;\n\n if (leafRoute.index) {\n // If we found an index route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n\n if (leafRoute.path && leafRoute.path.length > 0) {\n if (leafRoute.path === \"*\") {\n // If we found a splat route, we can't be sure there's not a\n // higher-scoring route down some partial matches trail so we need\n // to check that out\n matchedSplat = true;\n } else {\n // If we found a non-splat route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n }\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // If we are no longer partially matching anything, this was either a\n // legit splat match above, or it's a 404. Also avoid loops if the\n // second pass results in the same partial matches\n if (\n !newPartialMatches ||\n partialMatches.map((m) => m.route.id).join(\"-\") ===\n newPartialMatches.map((m) => m.route.id).join(\"-\")\n ) {\n return { type: \"success\", matches: matchedSplat ? newMatches : null };\n }\n\n partialMatches = newPartialMatches;\n route = partialMatches[partialMatches.length - 1].route;\n if (route.path === \"*\") {\n // The splat is still our most accurate partial, so run with it\n return { type: \"success\", matches: partialMatches };\n }\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\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 skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnMiss() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnMissImpl: AgnosticPatchRoutesOnMissFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map>,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnMissImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\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 [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n 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 let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | 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 pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n 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\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnMiss()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: 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 isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function 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//#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_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/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, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/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) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnMiss`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/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