{"version":3,"file":"static/js/main.5e9d9cf0.js","mappings":"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","sources":["../node_modules/@sanity/image-url/src/parseAssetId.ts","../node_modules/@sanity/image-url/src/parseSource.ts","../node_modules/@sanity/image-url/src/urlForImage.ts","../node_modules/@sanity/image-url/src/builder.ts","../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-marquee/src/components/Marquee.tsx","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/@sanity/client/node_modules/@vercel/stega/dist/index.mjs","../node_modules/@sanity/client/src/stega/stegaClean.ts","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","webpack://abravic/./src/components/content/Intro/Intro.module.css?5f38","../node_modules/get-it/src/middleware/defaultOptionsProcessor.ts","../node_modules/get-it/src/middleware/defaultOptionsValidator.ts","../node_modules/get-it/src/createRequester.ts","../node_modules/get-it/src/util/pubsub.ts","../node_modules/get-it/src/util/middlewareReducer.ts","../node_modules/get-it/node_modules/parse-headers/parse-headers.js","../node_modules/get-it/src/request/browser/fetchXhr.ts","../node_modules/get-it/src/request/browser-request.ts","../node_modules/get-it/src/index.browser.ts","../node_modules/get-it/node_modules/ms/index.js","../node_modules/get-it/node_modules/debug/src/common.js","../node_modules/get-it/node_modules/debug/src/browser.js","../node_modules/get-it/src/middleware/debug.ts","../node_modules/get-it/src/middleware/httpErrors.ts","../node_modules/get-it/src/util/isBuffer.ts","../node_modules/get-it/src/util/isPlainObject.ts","../node_modules/get-it/src/middleware/jsonRequest.ts","../node_modules/get-it/src/middleware/jsonResponse.ts","../node_modules/get-it/src/util/global.ts","../node_modules/get-it/src/middleware/observable.ts","../node_modules/get-it/src/middleware/promise.ts","../node_modules/get-it/src/util/browser-shouldRetry.ts","../node_modules/get-it/src/middleware/retry/shared-retry.ts","../node_modules/get-it/src/middleware/retry/browser-retry.ts","../node_modules/get-it/src/request/node-request.ts","../node_modules/get-it/src/middleware/keepAlive.ts","../node_modules/get-it/src/middleware/agent/browser-agent.ts","../node_modules/tslib/tslib.es6.mjs","../node_modules/rxjs/src/internal/util/isFunction.ts","../node_modules/rxjs/src/internal/util/createErrorClass.ts","../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","../node_modules/rxjs/src/internal/util/arrRemove.ts","../node_modules/rxjs/src/internal/Subscription.ts","../node_modules/rxjs/src/internal/config.ts","../node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts","../node_modules/rxjs/src/internal/util/reportUnhandledError.ts","../node_modules/rxjs/src/internal/util/noop.ts","../node_modules/rxjs/src/internal/NotificationFactories.ts","../node_modules/rxjs/src/internal/util/errorContext.ts","../node_modules/rxjs/src/internal/Subscriber.ts","../node_modules/rxjs/src/internal/symbol/observable.ts","../node_modules/rxjs/src/internal/util/identity.ts","../node_modules/rxjs/src/internal/util/pipe.ts","../node_modules/rxjs/src/internal/Observable.ts","../node_modules/rxjs/src/internal/util/isArrayLike.ts","../node_modules/rxjs/src/internal/util/isPromise.ts","../node_modules/rxjs/src/internal/util/isInteropObservable.ts","../node_modules/rxjs/src/internal/util/isAsyncIterable.ts","../node_modules/rxjs/src/internal/util/throwUnobservableError.ts","../node_modules/rxjs/src/internal/symbol/iterator.ts","../node_modules/rxjs/src/internal/util/isIterable.ts","../node_modules/rxjs/src/internal/util/isReadableStreamLike.ts","../node_modules/rxjs/src/internal/observable/innerFrom.ts","../node_modules/rxjs/src/internal/util/executeSchedule.ts","../node_modules/rxjs/src/internal/util/lift.ts","../node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts","../node_modules/rxjs/src/internal/operators/observeOn.ts","../node_modules/rxjs/src/internal/operators/subscribeOn.ts","../node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts","../node_modules/rxjs/src/internal/scheduled/scheduled.ts","../node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts","../node_modules/rxjs/src/internal/scheduled/scheduleArray.ts","../node_modules/rxjs/src/internal/scheduled/schedulePromise.ts","../node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts","../node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts","../node_modules/rxjs/src/internal/observable/from.ts","../node_modules/rxjs/src/internal/util/EmptyError.ts","../node_modules/rxjs/src/internal/lastValueFrom.ts","../node_modules/rxjs/src/internal/observable/combineLatest.ts","../node_modules/rxjs/src/internal/util/argsOrArgArray.ts","../node_modules/rxjs/src/internal/operators/map.ts","../node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts","../node_modules/rxjs/src/internal/util/args.ts","../node_modules/rxjs/src/internal/operators/combineLatest.ts","../node_modules/rxjs/src/internal/operators/filter.ts","../node_modules/@sanity/client/src/http/errors.ts","../node_modules/@sanity/client/src/http/request.ts","../node_modules/@sanity/client/src/util/getSelection.ts","../node_modules/@sanity/client/src/validators.ts","../node_modules/@sanity/client/src/data/patch.ts","../node_modules/@sanity/client/src/data/transaction.ts","../node_modules/@sanity/client/src/generateHelpUrl.ts","../node_modules/@sanity/client/src/warnings.ts","../node_modules/@sanity/client/src/util/once.ts","../node_modules/@sanity/client/src/config.ts","../node_modules/@sanity/client/src/http/requestOptions.ts","../node_modules/@sanity/client/src/data/encodeQueryString.ts","../node_modules/@sanity/client/src/data/dataMethods.ts","../node_modules/rxjs/src/internal/operators/combineLatestWith.ts","../node_modules/@sanity/client/src/assets/AssetsClient.ts","../node_modules/@sanity/client/src/util/pick.ts","../node_modules/@sanity/client/src/data/listen.ts","../node_modules/@sanity/client/src/util/defaults.ts","../node_modules/@sanity/client/src/data/live.ts","../node_modules/@sanity/client/src/datasets/DatasetsClient.ts","../node_modules/@sanity/client/src/projects/ProjectsClient.ts","../node_modules/@sanity/client/src/users/UsersClient.ts","../node_modules/@sanity/client/src/SanityClient.ts","../node_modules/@sanity/client/src/index.browser.ts","../node_modules/@sanity/client/src/defineCreateClient.ts","../node_modules/get-it/src/middleware/progress/browser-progress.ts","../node_modules/@sanity/client/src/http/browserMiddleware.ts","../node_modules/@sanity/client/src/defineDeprecatedCreateClient.ts","components/sanityClient.js","components/content/Intro/Intro.js","webpack://abravic/./src/components/content/Silder/Slider.module.css?9a44","components/content/Silder/Slider.js","webpack://abravic/./src/components/Navbar/Navbar.module.css?9379","components/Navbar/Navbar.js","webpack://abravic/./src/components/content/transportation/Transportation.module.css?511d","components/content/transportation/Transportation.js","components/content/about/About.js","webpack://abravic/./src/components/content/macroservices/MacroServiceHome.module.css?056b","components/content/macroservices/MacroServiceHome.js","components/content/works/Work.js","components/content/chooseUs/ChooseUs.js","webpack://abravic/./src/components/content/industries/Industries.module.css?7438","components/content/industries/Industries.js","webpack://abravic/./src/components/content/dimension/Dimension.module.css?4467","components/content/dimension/Dimension.js","webpack://abravic/./src/components/content/form/Form.module.css?d9e2","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","components/content/form/Form.js","webpack://abravic/./src/components/content/footer/Footer.module.css?2609","components/content/footer/Footer.js","webpack://abravic/./src/components/content/map/Map.module.css?b4ab","components/content/map/Maps.js","components/content/services/Services.js","webpack://abravic/./src/components/serviceDetail/ServicIntroText/ServiceIntroText.module.css?0d0b","components/serviceDetail/ServicIntroText/ServiceIntroText.js","webpack://abravic/./src/components/serviceDetail/serviceHero/ServiceHero.module.css?491b","components/serviceDetail/serviceHero/ServiceHero.js","webpack://abravic/./src/components/serviceDetail/macroService/MacroService.module.css?b2df","components/serviceDetail/macroService/MacroService.js","webpack://abravic/./src/components/serviceDetail/blogs/Blogs.module.css?1319","components/serviceDetail/blogs/Blogs.js","webpack://abravic/./src/components/serviceDetail/serviceInfo/ServiceInfo.module.css?2fda","components/serviceDetail/serviceInfo/ServiceInfo.js","webpack://abravic/./src/components/serviceDetail/faq/Faq.module.css?326f","components/serviceDetail/faq/Faq.js","components/serviceDetail/ServicePage.js","webpack://abravic/./src/components/blogDetails/BlogDetails.module.css?2280","components/blogDetails/BlogDetails.js","components/blogDetails/BlogDetailsPage.js","webpack://abravic/./src/components/blogPage/MainBlog.module.css?90b5","components/blogPage/MainBlog.js","webpack://abravic/./src/components/blogPage/LatestPost.module.css?b402","components/blogPage/LatestPost.js","components/blogPage/BlogPage.js","webpack://abravic/./src/components/legal/privacyPolicy/PrivacyPolicy.module.css?6054","components/legal/privacyPolicy/PrivacyPolicy.js","components/legal/privacyPolicy/PrivacyPage.js","webpack://abravic/./src/components/legal/cookiesPolicy/CookiesPolicy.module.css?01c5","components/legal/cookiesPolicy/CookiesPolicy.js","components/legal/cookiesPolicy/CookiesPage.js","App.js","reportWebVitals.js","index.js"],"sourcesContent":["const example = 'image-Tb9Ew8CXIwaY6R1kjMvI0uRR-2000x3000-jpg'\n\nexport default function parseAssetId(ref: string) {\n const [, id, dimensionString, format] = ref.split('-')\n\n if (!id || !dimensionString || !format) {\n throw new Error(`Malformed asset _ref '${ref}'. Expected an id like \"${example}\".`)\n }\n\n const [imgWidthStr, imgHeightStr] = dimensionString.split('x')\n\n const width = +imgWidthStr\n const height = +imgHeightStr\n\n const isValidAssetId = isFinite(width) && isFinite(height)\n if (!isValidAssetId) {\n throw new Error(`Malformed asset _ref '${ref}'. Expected an id like \"${example}\".`)\n }\n\n return {id, width, height, format}\n}\n","import {\n SanityAsset,\n SanityImageObject,\n SanityImageSource,\n SanityImageWithAssetStub,\n SanityReference,\n} from './types'\n\nconst isRef = (src: SanityImageSource): src is SanityReference => {\n const source = src as SanityReference\n return source ? typeof source._ref === 'string' : false\n}\n\nconst isAsset = (src: SanityImageSource): src is SanityAsset => {\n const source = src as SanityAsset\n return source ? typeof source._id === 'string' : false\n}\n\nconst isAssetStub = (src: SanityImageSource): src is SanityImageWithAssetStub => {\n const source = src as SanityImageWithAssetStub\n return source && source.asset ? typeof source.asset.url === 'string' : false\n}\n\n// Convert an asset-id, asset or image to an image record suitable for processing\n// eslint-disable-next-line complexity\nexport default function parseSource(source?: SanityImageSource) {\n if (!source) {\n return null\n }\n\n let image: SanityImageObject\n\n if (typeof source === 'string' && isUrl(source)) {\n // Someone passed an existing image url?\n image = {\n asset: {_ref: urlToId(source)},\n }\n } else if (typeof source === 'string') {\n // Just an asset id\n image = {\n asset: {_ref: source},\n }\n } else if (isRef(source)) {\n // We just got passed an asset directly\n image = {\n asset: source,\n }\n } else if (isAsset(source)) {\n // If we were passed an image asset document\n image = {\n asset: {\n _ref: source._id || '',\n },\n }\n } else if (isAssetStub(source)) {\n // If we were passed a partial asset (`url`, but no `_id`)\n image = {\n asset: {\n _ref: urlToId(source.asset.url),\n },\n }\n } else if (typeof source.asset === 'object') {\n // Probably an actual image with materialized asset\n image = {...source}\n } else {\n // We got something that does not look like an image, or it is an image\n // that currently isn't sporting an asset.\n return null\n }\n\n const img = source as SanityImageObject\n if (img.crop) {\n image.crop = img.crop\n }\n\n if (img.hotspot) {\n image.hotspot = img.hotspot\n }\n\n return applyDefaults(image)\n}\n\nfunction isUrl(url: string) {\n return /^https?:\\/\\//.test(`${url}`)\n}\n\nfunction urlToId(url: string) {\n const parts = url.split('/').slice(-1)\n return `image-${parts[0]}`.replace(/\\.([a-z]+)$/, '-$1')\n}\n\n// Mock crop and hotspot if image lacks it\nfunction applyDefaults(image: SanityImageObject) {\n if (image.crop && image.hotspot) {\n return image as Required\n }\n\n // We need to pad in default values for crop or hotspot\n const result = {...image}\n\n if (!result.crop) {\n result.crop = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n }\n }\n\n if (!result.hotspot) {\n result.hotspot = {\n x: 0.5,\n y: 0.5,\n height: 1.0,\n width: 1.0,\n }\n }\n\n return result as Required\n}\n","import parseAssetId from './parseAssetId'\nimport parseSource from './parseSource'\nimport {\n CropSpec,\n HotspotSpec,\n ImageUrlBuilderOptions,\n ImageUrlBuilderOptionsWithAsset,\n SanityAsset,\n SanityImageFitResult,\n SanityImageRect,\n SanityReference,\n} from './types'\n\nexport const SPEC_NAME_TO_URL_NAME_MAPPINGS = [\n ['width', 'w'],\n ['height', 'h'],\n ['format', 'fm'],\n ['download', 'dl'],\n ['blur', 'blur'],\n ['sharpen', 'sharp'],\n ['invert', 'invert'],\n ['orientation', 'or'],\n ['minHeight', 'min-h'],\n ['maxHeight', 'max-h'],\n ['minWidth', 'min-w'],\n ['maxWidth', 'max-w'],\n ['quality', 'q'],\n ['fit', 'fit'],\n ['crop', 'crop'],\n ['saturation', 'sat'],\n ['auto', 'auto'],\n ['dpr', 'dpr'],\n ['pad', 'pad'],\n]\n\nexport default function urlForImage(options: ImageUrlBuilderOptions): string {\n let spec = {...(options || {})}\n const source = spec.source\n delete spec.source\n\n const image = parseSource(source)\n if (!image) {\n throw new Error(`Unable to resolve image URL from source (${JSON.stringify(source)})`)\n }\n\n const id = (image.asset as SanityReference)._ref || (image.asset as SanityAsset)._id || ''\n const asset = parseAssetId(id)\n\n // Compute crop rect in terms of pixel coordinates in the raw source image\n const cropLeft = Math.round(image.crop.left * asset.width)\n const cropTop = Math.round(image.crop.top * asset.height)\n const crop = {\n left: cropLeft,\n top: cropTop,\n width: Math.round(asset.width - image.crop.right * asset.width - cropLeft),\n height: Math.round(asset.height - image.crop.bottom * asset.height - cropTop),\n }\n\n // Compute hot spot rect in terms of pixel coordinates\n const hotSpotVerticalRadius = (image.hotspot.height * asset.height) / 2\n const hotSpotHorizontalRadius = (image.hotspot.width * asset.width) / 2\n const hotSpotCenterX = image.hotspot.x * asset.width\n const hotSpotCenterY = image.hotspot.y * asset.height\n const hotspot = {\n left: hotSpotCenterX - hotSpotHorizontalRadius,\n top: hotSpotCenterY - hotSpotVerticalRadius,\n right: hotSpotCenterX + hotSpotHorizontalRadius,\n bottom: hotSpotCenterY + hotSpotVerticalRadius,\n }\n\n // If irrelevant, or if we are requested to: don't perform crop/fit based on\n // the crop/hotspot.\n if (!(spec.rect || spec.focalPoint || spec.ignoreImageParams || spec.crop)) {\n spec = {...spec, ...fit({crop, hotspot}, spec)}\n }\n\n return specToImageUrl({...spec, asset})\n}\n\n// eslint-disable-next-line complexity\nfunction specToImageUrl(spec: ImageUrlBuilderOptionsWithAsset) {\n const cdnUrl = (spec.baseUrl || 'https://cdn.sanity.io').replace(/\\/+$/, '')\n const filename = `${spec.asset.id}-${spec.asset.width}x${spec.asset.height}.${spec.asset.format}`\n const baseUrl = `${cdnUrl}/images/${spec.projectId}/${spec.dataset}/${filename}`\n\n const params = []\n\n if (spec.rect) {\n // Only bother url with a crop if it actually crops anything\n const {left, top, width, height} = spec.rect\n const isEffectiveCrop =\n left !== 0 || top !== 0 || height !== spec.asset.height || width !== spec.asset.width\n\n if (isEffectiveCrop) {\n params.push(`rect=${left},${top},${width},${height}`)\n }\n }\n\n if (spec.bg) {\n params.push(`bg=${spec.bg}`)\n }\n\n if (spec.focalPoint) {\n params.push(`fp-x=${spec.focalPoint.x}`)\n params.push(`fp-y=${spec.focalPoint.y}`)\n }\n\n const flip = [spec.flipHorizontal && 'h', spec.flipVertical && 'v'].filter(Boolean).join('')\n if (flip) {\n params.push(`flip=${flip}`)\n }\n\n // Map from spec name to url param name, and allow using the actual param name as an alternative\n SPEC_NAME_TO_URL_NAME_MAPPINGS.forEach((mapping) => {\n const [specName, param] = mapping\n if (typeof spec[specName] !== 'undefined') {\n params.push(`${param}=${encodeURIComponent(spec[specName])}`)\n } else if (typeof spec[param] !== 'undefined') {\n params.push(`${param}=${encodeURIComponent(spec[param])}`)\n }\n })\n\n if (params.length === 0) {\n return baseUrl\n }\n\n return `${baseUrl}?${params.join('&')}`\n}\n\nfunction fit(\n source: {crop: CropSpec; hotspot: HotspotSpec},\n spec: ImageUrlBuilderOptions\n): SanityImageFitResult {\n let cropRect: SanityImageRect\n\n const imgWidth = spec.width\n const imgHeight = spec.height\n\n // If we are not constraining the aspect ratio, we'll just use the whole crop\n if (!(imgWidth && imgHeight)) {\n return {width: imgWidth, height: imgHeight, rect: source.crop}\n }\n\n const crop = source.crop\n const hotspot = source.hotspot\n\n // If we are here, that means aspect ratio is locked and fitting will be a bit harder\n const desiredAspectRatio = imgWidth / imgHeight\n const cropAspectRatio = crop.width / crop.height\n\n if (cropAspectRatio > desiredAspectRatio) {\n // The crop is wider than the desired aspect ratio. That means we are cutting from the sides\n const height = Math.round(crop.height)\n const width = Math.round(height * desiredAspectRatio)\n const top = Math.max(0, Math.round(crop.top))\n\n // Center output horizontally over hotspot\n const hotspotXCenter = Math.round((hotspot.right - hotspot.left) / 2 + hotspot.left)\n let left = Math.max(0, Math.round(hotspotXCenter - width / 2))\n\n // Keep output within crop\n if (left < crop.left) {\n left = crop.left\n } else if (left + width > crop.left + crop.width) {\n left = crop.left + crop.width - width\n }\n\n cropRect = {left, top, width, height}\n } else {\n // The crop is taller than the desired ratio, we are cutting from top and bottom\n const width = crop.width\n const height = Math.round(width / desiredAspectRatio)\n const left = Math.max(0, Math.round(crop.left))\n\n // Center output vertically over hotspot\n const hotspotYCenter = Math.round((hotspot.bottom - hotspot.top) / 2 + hotspot.top)\n let top = Math.max(0, Math.round(hotspotYCenter - height / 2))\n\n // Keep output rect within crop\n if (top < crop.top) {\n top = crop.top\n } else if (top + height > crop.top + crop.height) {\n top = crop.top + crop.height - height\n }\n\n cropRect = {left, top, width, height}\n }\n\n return {\n width: imgWidth,\n height: imgHeight,\n rect: cropRect,\n }\n}\n\n// For backwards-compatibility\nexport {parseSource}\n","import {\n AutoMode,\n CropMode,\n FitMode,\n ImageFormat,\n ImageUrlBuilderOptions,\n ImageUrlBuilderOptionsWithAliases,\n SanityModernClientLike,\n Orientation,\n SanityClientLike,\n SanityImageSource,\n SanityProjectDetails,\n} from './types'\nimport urlForImage, {SPEC_NAME_TO_URL_NAME_MAPPINGS} from './urlForImage'\n\nconst validFits = ['clip', 'crop', 'fill', 'fillmax', 'max', 'scale', 'min']\nconst validCrops = ['top', 'bottom', 'left', 'right', 'center', 'focalpoint', 'entropy']\nconst validAutoModes = ['format']\n\nfunction isSanityModernClientLike(\n client?: SanityClientLike | SanityProjectDetails | SanityModernClientLike\n): client is SanityModernClientLike {\n return client && 'config' in client ? typeof client.config === 'function' : false\n}\n\nfunction isSanityClientLike(\n client?: SanityClientLike | SanityProjectDetails | SanityModernClientLike\n): client is SanityClientLike {\n return client && 'clientConfig' in client ? typeof client.clientConfig === 'object' : false\n}\n\nfunction rewriteSpecName(key: string) {\n const specs = SPEC_NAME_TO_URL_NAME_MAPPINGS\n for (const entry of specs) {\n const [specName, param] = entry\n if (key === specName || key === param) {\n return specName\n }\n }\n\n return key\n}\n\nexport default function urlBuilder(\n options?: SanityClientLike | SanityProjectDetails | SanityModernClientLike\n) {\n // Did we get a modernish client?\n if (isSanityModernClientLike(options)) {\n // Inherit config from client\n const {apiHost: apiUrl, projectId, dataset} = options.config()\n const apiHost = apiUrl || 'https://api.sanity.io'\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId,\n dataset,\n })\n }\n\n // Did we get a SanityClient?\n const client = options as SanityClientLike\n if (isSanityClientLike(client)) {\n // Inherit config from client\n const {apiHost: apiUrl, projectId, dataset} = client.clientConfig\n const apiHost = apiUrl || 'https://api.sanity.io'\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId,\n dataset,\n })\n }\n\n // Or just accept the options as given\n return new ImageUrlBuilder(null, options as ImageUrlBuilderOptions)\n}\n\nexport class ImageUrlBuilder {\n public options: ImageUrlBuilderOptions\n\n constructor(parent: ImageUrlBuilder | null, options: ImageUrlBuilderOptions) {\n this.options = parent\n ? {...(parent.options || {}), ...(options || {})} // Merge parent options\n : {...(options || {})} // Copy options\n }\n\n withOptions(options: Partial) {\n const baseUrl = options.baseUrl || this.options.baseUrl\n\n const newOptions: {[key: string]: any} = {baseUrl}\n for (const key in options) {\n if (options.hasOwnProperty(key)) {\n const specKey = rewriteSpecName(key)\n newOptions[specKey] = options[key]\n }\n }\n\n return new ImageUrlBuilder(this, {baseUrl, ...newOptions})\n }\n\n // The image to be represented. Accepts a Sanity 'image'-document, 'asset'-document or\n // _id of asset. To get the benefit of automatic hot-spot/crop integration with the content\n // studio, the 'image'-document must be provided.\n image(source: SanityImageSource) {\n return this.withOptions({source})\n }\n\n // Specify the dataset\n dataset(dataset: string) {\n return this.withOptions({dataset})\n }\n\n // Specify the projectId\n projectId(projectId: string) {\n return this.withOptions({projectId})\n }\n\n // Specify background color\n bg(bg: string) {\n return this.withOptions({bg})\n }\n\n // Set DPR scaling factor\n dpr(dpr: number) {\n // A DPR of 1 is the default - so only include it if we have a different value\n return this.withOptions(dpr && dpr !== 1 ? {dpr} : {})\n }\n\n // Specify the width of the image in pixels\n width(width: number) {\n return this.withOptions({width})\n }\n\n // Specify the height of the image in pixels\n height(height: number) {\n return this.withOptions({height})\n }\n\n // Specify focal point in fraction of image dimensions. Each component 0.0-1.0\n focalPoint(x: number, y: number) {\n return this.withOptions({focalPoint: {x, y}})\n }\n\n maxWidth(maxWidth: number) {\n return this.withOptions({maxWidth})\n }\n\n minWidth(minWidth: number) {\n return this.withOptions({minWidth})\n }\n\n maxHeight(maxHeight: number) {\n return this.withOptions({maxHeight})\n }\n\n minHeight(minHeight: number) {\n return this.withOptions({minHeight})\n }\n\n // Specify width and height in pixels\n size(width: number, height: number) {\n return this.withOptions({width, height})\n }\n\n // Specify blur between 0 and 100\n blur(blur: number) {\n return this.withOptions({blur})\n }\n\n sharpen(sharpen: number) {\n return this.withOptions({sharpen})\n }\n\n // Specify the desired rectangle of the image\n rect(left: number, top: number, width: number, height: number) {\n return this.withOptions({rect: {left, top, width, height}})\n }\n\n // Specify the image format of the image. 'jpg', 'pjpg', 'png', 'webp'\n format(format: ImageFormat) {\n return this.withOptions({format})\n }\n\n invert(invert: boolean) {\n return this.withOptions({invert})\n }\n\n // Rotation in degrees 0, 90, 180, 270\n orientation(orientation: Orientation) {\n return this.withOptions({orientation})\n }\n\n // Compression quality 0-100\n quality(quality: number) {\n return this.withOptions({quality})\n }\n\n // Make it a download link. Parameter is default filename.\n forceDownload(download: boolean | string) {\n return this.withOptions({download})\n }\n\n // Flip image horizontally\n flipHorizontal() {\n return this.withOptions({flipHorizontal: true})\n }\n\n // Flip image vertically\n flipVertical() {\n return this.withOptions({flipVertical: true})\n }\n\n // Ignore crop/hotspot from image record, even when present\n ignoreImageParams() {\n return this.withOptions({ignoreImageParams: true})\n }\n\n fit(value: FitMode) {\n if (validFits.indexOf(value) === -1) {\n throw new Error(`Invalid fit mode \"${value}\"`)\n }\n\n return this.withOptions({fit: value})\n }\n\n crop(value: CropMode) {\n if (validCrops.indexOf(value) === -1) {\n throw new Error(`Invalid crop mode \"${value}\"`)\n }\n\n return this.withOptions({crop: value})\n }\n\n // Saturation\n saturation(saturation: number) {\n return this.withOptions({saturation})\n }\n\n auto(value: AutoMode) {\n if (validAutoModes.indexOf(value) === -1) {\n throw new Error(`Invalid auto mode \"${value}\"`)\n }\n\n return this.withOptions({auto: value})\n }\n\n // Specify the number of pixels to pad the image\n pad(pad: number) {\n return this.withOptions({pad})\n }\n\n // Gets the url based on the submitted parameters\n url() {\n return urlForImage(this.options)\n }\n\n // Alias for url()\n toString() {\n return this.url()\n }\n}\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 void}\n * @default null\n */\n onFinish?: () => void;\n /**\n * @description A callback for when the marquee finishes a loop. Does not call if maximum loops are reached (use onFinish instead).\n * @type {() => void}\n * @default null\n */\n onCycleComplete?: () => void;\n /**\n * @description: A callback function that is invoked once the marquee has finished mounting. It can be utilized to recalculate the page size, if necessary.\n * @type {() => void}\n * @default null\n */\n onMount?: () => void;\n /**\n * @description The children rendered inside the marquee\n * @type {ReactNode}\n * @default null\n */\n children?: ReactNode;\n} & RefAttributes;\n\nconst Marquee: FC = forwardRef(function Marquee(\n {\n style = {},\n className = \"\",\n autoFill = false,\n play = true,\n pauseOnHover = false,\n pauseOnClick = false,\n direction = \"left\",\n speed = 50,\n delay = 0,\n loop = 0,\n gradient = false,\n gradientColor = \"white\",\n gradientWidth = 200,\n onFinish,\n onCycleComplete,\n onMount,\n children,\n },\n ref\n) {\n // React Hooks\n const [containerWidth, setContainerWidth] = useState(0);\n const [marqueeWidth, setMarqueeWidth] = useState(0);\n const [multiplier, setMultiplier] = useState(1);\n const [isMounted, setIsMounted] = useState(false);\n const rootRef = useRef(null);\n const containerRef = (ref as MutableRefObject) || rootRef;\n const marqueeRef = useRef(null);\n\n // Calculate width of container and marquee and set multiplier\n const calculateWidth = useCallback(() => {\n if (marqueeRef.current && containerRef.current) {\n const containerRect = containerRef.current.getBoundingClientRect();\n const marqueeRect = marqueeRef.current.getBoundingClientRect();\n let containerWidth = containerRect.width;\n let marqueeWidth = marqueeRect.width;\n\n // Swap width and height if direction is up or down\n if (direction === \"up\" || direction === \"down\") {\n containerWidth = containerRect.height;\n marqueeWidth = marqueeRect.height;\n }\n\n if (autoFill && containerWidth && marqueeWidth) {\n setMultiplier(\n marqueeWidth < containerWidth\n ? Math.ceil(containerWidth / marqueeWidth)\n : 1\n );\n } else {\n setMultiplier(1);\n }\n\n setContainerWidth(containerWidth);\n setMarqueeWidth(marqueeWidth);\n }\n }, [autoFill, containerRef, direction]);\n\n // Calculate width and multiplier on mount and on window resize\n useEffect(() => {\n if (!isMounted) return;\n\n calculateWidth();\n if (marqueeRef.current && containerRef.current) {\n const resizeObserver = new ResizeObserver(() => calculateWidth());\n resizeObserver.observe(containerRef.current);\n resizeObserver.observe(marqueeRef.current);\n return () => {\n if (!resizeObserver) return;\n resizeObserver.disconnect();\n };\n }\n }, [calculateWidth, containerRef, isMounted]);\n\n // Recalculate width when children change\n useEffect(() => {\n calculateWidth();\n }, [calculateWidth, children]);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // Runs the onMount callback, if it is a function, when Marquee is mounted.\n useEffect(() => {\n if (typeof onMount === \"function\") {\n onMount();\n }\n }, []);\n\n // Animation duration\n const duration = useMemo(() => {\n if (autoFill) {\n return (marqueeWidth * multiplier) / speed;\n } else {\n return marqueeWidth < containerWidth\n ? containerWidth / speed\n : marqueeWidth / speed;\n }\n }, [autoFill, containerWidth, marqueeWidth, multiplier, speed]);\n\n const containerStyle = useMemo(\n () => ({\n ...style,\n [\"--pause-on-hover\" as string]:\n !play || pauseOnHover ? \"paused\" : \"running\",\n [\"--pause-on-click\" as string]:\n !play || (pauseOnHover && !pauseOnClick) || pauseOnClick\n ? \"paused\"\n : \"running\",\n [\"--width\" as string]:\n direction === \"up\" || direction === \"down\" ? `100vh` : \"100%\",\n [\"--transform\" as string]:\n direction === \"up\"\n ? \"rotate(-90deg)\"\n : direction === \"down\"\n ? \"rotate(90deg)\"\n : \"none\",\n }),\n [style, play, pauseOnHover, pauseOnClick, direction]\n );\n\n const gradientStyle = useMemo(\n () => ({\n [\"--gradient-color\" as string]: gradientColor,\n [\"--gradient-width\" as string]:\n typeof gradientWidth === \"number\"\n ? `${gradientWidth}px`\n : gradientWidth,\n }),\n [gradientColor, gradientWidth]\n );\n\n const marqueeStyle = useMemo(\n () => ({\n [\"--play\" as string]: play ? \"running\" : \"paused\",\n [\"--direction\" as string]: direction === \"left\" ? \"normal\" : \"reverse\",\n [\"--duration\" as string]: `${duration}s`,\n [\"--delay\" as string]: `${delay}s`,\n [\"--iteration-count\" as string]: !!loop ? `${loop}` : \"infinite\",\n [\"--min-width\" as string]: autoFill ? `auto` : \"100%\",\n }),\n [play, direction, duration, delay, loop, autoFill]\n );\n\n const childStyle = useMemo(\n () => ({\n [\"--transform\" as string]:\n direction === \"up\"\n ? \"rotate(90deg)\"\n : direction === \"down\"\n ? \"rotate(-90deg)\"\n : \"none\",\n }),\n [direction]\n );\n\n // Render {multiplier} number of children\n const multiplyChildren = useCallback(\n (multiplier: number) => {\n return [\n ...Array(\n Number.isFinite(multiplier) && multiplier >= 0 ? multiplier : 0\n ),\n ].map((_, i) => (\n \n {Children.map(children, (child) => {\n return (\n
\n {child}\n
\n );\n })}\n
\n ));\n },\n [childStyle, children]\n );\n\n return !isMounted ? null : (\n \n {gradient &&
}\n \n
\n {Children.map(children, (child) => {\n return (\n
\n {child}\n
\n );\n })}\n
\n {multiplyChildren(multiplier - 1)}\n
\n
\n {multiplyChildren(multiplier)}\n
\n \n );\n});\n\nexport default Marquee;\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","var s={0:8203,1:8204,2:8205,3:8290,4:8291,5:8288,6:65279,7:8289,8:119155,9:119156,a:119157,b:119158,c:119159,d:119160,e:119161,f:119162},c={0:8203,1:8204,2:8205,3:65279},u=new Array(4).fill(String.fromCodePoint(c[0])).join(\"\"),m=String.fromCharCode(0);function E(t){let e=JSON.stringify(t);return`${u}${Array.from(e).map(r=>{let n=r.charCodeAt(0);if(n>255)throw new Error(`Only ASCII edit info can be encoded. Error attempting to encode ${e} on character ${r} (${n})`);return Array.from(n.toString(4).padStart(4,\"0\")).map(o=>String.fromCodePoint(c[o])).join(\"\")}).join(\"\")}`}function y(t){let e=JSON.stringify(t);return Array.from(e).map(r=>{let n=r.charCodeAt(0);if(n>255)throw new Error(`Only ASCII edit info can be encoded. Error attempting to encode ${e} on character ${r} (${n})`);return Array.from(n.toString(16).padStart(2,\"0\")).map(o=>String.fromCodePoint(s[o])).join(\"\")}).join(\"\")}function I(t){return!Number.isNaN(Number(t))||/[a-z]/i.test(t)&&!/\\d+(?:[-:\\/]\\d+){2}(?:T\\d+(?:[-:\\/]\\d+){1,2}(\\.\\d+)?Z?)?/.test(t)?!1:Boolean(Date.parse(t))}function T(t){try{new URL(t,t.startsWith(\"/\")?\"https://acme.com\":void 0)}catch{return!1}return!0}function C(t,e,r=\"auto\"){return r===!0||r===\"auto\"&&(I(t)||T(t))?t:`${t}${E(e)}`}var x=Object.fromEntries(Object.entries(c).map(t=>t.reverse())),g=Object.fromEntries(Object.entries(s).map(t=>t.reverse())),S=`${Object.values(s).map(t=>`\\\\u{${t.toString(16)}}`).join(\"\")}`,f=new RegExp(`[${S}]{4,}`,\"gu\");function G(t){let e=t.match(f);if(!!e)return h(e[0],!0)[0]}function $(t){let e=t.match(f);if(!!e)return e.map(r=>h(r)).flat()}function h(t,e=!1){let r=Array.from(t);if(r.length%2===0){if(r.length%4||!t.startsWith(u))return A(r,e)}else throw new Error(\"Encoded data has invalid length\");let n=[];for(let o=r.length*.25;o--;){let p=r.slice(o*4,o*4+4).map(d=>x[d.codePointAt(0)]).join(\"\");n.unshift(String.fromCharCode(parseInt(p,4)))}if(e){n.shift();let o=n.indexOf(m);return o===-1&&(o=n.length),[JSON.parse(n.slice(0,o).join(\"\"))]}return n.join(\"\").split(m).filter(Boolean).map(o=>JSON.parse(o))}function A(t,e){var d;let r=[];for(let i=t.length*.5;i--;){let a=`${g[t[i*2].codePointAt(0)]}${g[t[i*2+1].codePointAt(0)]}`;r.unshift(String.fromCharCode(parseInt(a,16)))}let n=[],o=[r.join(\"\")],p=10;for(;o.length;){let i=o.shift();try{if(n.push(JSON.parse(i)),e)return n}catch(a){if(!p--)throw a;let l=+((d=a.message.match(/\\sposition\\s(\\d+)$/))==null?void 0:d[1]);if(!l)throw a;o.unshift(i.substring(0,l),i.substring(l))}}return n}function _(t){var e;return{cleaned:t.replace(f,\"\"),encoded:((e=t.match(f))==null?void 0:e[0])||\"\"}}function O(t){return t&&JSON.parse(_(JSON.stringify(t)).cleaned)}export{f as VERCEL_STEGA_REGEX,y as legacyStegaEncode,O as vercelStegaClean,C as vercelStegaCombine,G as vercelStegaDecode,$ as vercelStegaDecodeAll,E as vercelStegaEncode,_ as vercelStegaSplit};\n","import {vercelStegaClean} from '@vercel/stega'\n\n/**\n * Can take a `result` JSON from a `const {result} = client.fetch(query, params, {filterResponse: false})`\n * and remove all stega-encoded data from it.\n * @public\n */\nexport function stegaClean(result: Result): Result {\n return vercelStegaClean(result)\n}\n\n/**\n * Can take a `result` JSON from a `const {result} = client.fetch(query, params, {filterResponse: false})`\n * and remove all stega-encoded data from it.\n * @alpha\n * @deprecated Use `stegaClean` instead\n */\nexport const vercelStegaCleanAll = stegaClean\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 + \".\" + {\"165\":\"5a6d66a8\",\"453\":\"88f3007d\",\"796\":\"fd91c700\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"abravic:\";\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[\"webpackChunkabravic\"] = self[\"webpackChunkabravic\"] || [];\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\n status?: number;\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 interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n 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} 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 && patchRoutesOnMissImpl && !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 // We need to run patchRoutesOnMiss in initialize()\n initialized = false;\n initialMatches = [];\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: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // 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 cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n 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 ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.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.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function 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: string[],\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.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n 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, status } = 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 return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\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 return { type: ResultType.data, data: result, statusCode: status };\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 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?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== 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