{"version":3,"file":"static/js/main.1dd4471b.js","mappings":"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","sources":["api/index.ts","components/loader/Loader.tsx","interfaces/enums/apiData.enum.ts","providers/configProvider/useConfigState.ts","providers/configProvider/ConfigProvider.tsx","providers/configProvider/useConfig.ts","providers/deviceMatchProvider/useDeviceMatchState.ts","providers/deviceMatchProvider/useDeviceMatchProvider.tsx","providers/userProvider/useUserState.ts","providers/userProvider/UserProvider.tsx","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/axios-hooks/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/axios-hooks/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/dequal/lite/index.mjs","../node_modules/axios-hooks/es/index.js","../node_modules/lru-cache/index.js","../node_modules/object-assign/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react/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/yallist/iterator.js","../node_modules/yallist/yallist.js","../node_modules/axios-hooks/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/axios-hooks/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/axios-hooks/node_modules/@babel/runtime/regenerator/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","AxiosClient.tsx","pages/AppRoutingModule.tsx","ConfigChecker.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["export default {\r\n config: '/config.json',\r\n activeTheme: (params: string): string => `/expressions/gallery/themes/active?${params}`,\r\n guestInfo: (barcode: string): string => `/expressions/gallery/guest?ticketBarcode=${barcode}`,\r\n saveGuest: '/expressions/gallery/guest',\r\n guestPhotos: (barcode: string): string => `/expressions/gallery/themes/active/media?ticketBarcode=${barcode}`,\r\n mediaShare: (id: string): string => `/expressions/media/${id}/share`,\r\n mediaLayer: (mediaId: string): string => `/expressions/media/${mediaId}/media-layers`,\r\n postSurveyAnswer: '/expressions/gallery/postSurveyAnswers',\r\n getMedia: (mediaId: string): string => `/expressions/media/${mediaId}`,\r\n};\r\n","import React, {FC} from 'react';\r\n\r\nimport {ILoaderProps} from './loader.types';\r\nimport './loader.scss';\r\n\r\nconst Loader:FC = ({\r\n isAbsolute,\r\n isHeightFull,\r\n isWidthFull,\r\n blurBg,\r\n isCandy,\r\n}) => (\r\n \r\n {\r\n isCandy ? (\r\n
\r\n
\r\n Please wait...\r\n
\r\n
\r\n
\r\n )\r\n : (\r\n
\r\n )\r\n }\r\n
\r\n);\r\n\r\nexport default Loader;\r\n","export enum ConfigClientEnum {\r\n sn = 'sn',\r\n cgg = 'cgg',\r\n}\r\n\r\nexport enum ClientCompanyNameEnum {\r\n sn = 'Space Needle LLC',\r\n cgg = 'Center Art LLC',\r\n}\r\n\r\nexport enum VenueNameEnum {\r\n sn = 'Space Needle',\r\n cgg = 'Chihuly Garden and Glass',\r\n}\r\n\r\nexport enum ISalesTerminalTypeId {\r\n sn = 35,\r\n cgg = 40,\r\n}\r\n\r\nexport enum IMemberVenueId {\r\n sn = 41,\r\n cgg = 44,\r\n}\r\n\r\nexport enum ClientDomainEnum {\r\n sn = 'spaceneedle.com',\r\n cgg = 'chihulygardenandglass.com',\r\n}\r\n","import {useEffect, useState, useCallback} from 'react';\r\nimport {AxiosResponse} from 'axios';\r\nimport useAxios from 'axios-hooks';\r\n\r\nimport api from '@api/index';\r\nimport {IResponseDto} from '@interfaces/rest/response.dto';\r\nimport {IActiveThemeDto, IApiDataDto, IThemeStyle, IThemeStyleInstance} from '@interfaces/rest/apiData.dto';\r\nimport {IApiDataConfig, IApiDataState, IStyleConfig} from '@interfaces/types/apiData.type';\r\nimport {\r\n ConfigClientEnum,\r\n ClientCompanyNameEnum,\r\n VenueNameEnum,\r\n} from '@interfaces/enums/apiData.enum';\r\nimport snStyles from '@theme/sn.json';\r\nimport cggStyles from '@theme/cgg.json';\r\n\r\nconst useConfigState = (): IApiDataState => {\r\n const [config, setConfig] = useState(null);\r\n const [activeTheme, setActiveTheme] = useState(null);\r\n\r\n const [{}, getConfig] = useAxios({\r\n url: api.config,\r\n method: 'get',\r\n }, {manual: true});\r\n\r\n const [{}, getActiveTheme] = useAxios>({\r\n method: 'get',\r\n }, {manual: true});\r\n\r\n const getCurrentActiveTheme = useCallback((\r\n url: string,\r\n client: ConfigClientEnum,\r\n ) => {\r\n getActiveTheme({\r\n url: url + api.activeTheme(\r\n client === ConfigClientEnum.sn\r\n ? ''\r\n : 'accessToken=eV2njHP7yffnM30hB630nqwo3M5rllxUPoQ70zCdvjg=='\r\n ),\r\n })\r\n .then((response: AxiosResponse) => {\r\n setActiveTheme(response.data.response);\r\n document.styleSheets[0].insertRule(`:root{--background:url(${response.data.response.backgroundImage})}`);\r\n\r\n const iconLinkDomObj =\r\n document.querySelector('link[rel=\"icon\"][type=\"image/x-icon\"]') as HTMLLinkElement;\r\n if (iconLinkDomObj) {\r\n iconLinkDomObj.href = response.data.response.faviconImageLow;\r\n }\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n const params = new URLSearchParams(document.location.search);\r\n\r\n getConfig()\r\n .then((response: AxiosResponse) => {\r\n const clientDomain = window.location.hostname.split('-')[0] as ConfigClientEnum;\r\n const beforeUrl: ConfigClientEnum = Object.keys(ConfigClientEnum).includes(clientDomain)\r\n ? clientDomain\r\n : ConfigClientEnum.sn;\r\n\r\n const client: ConfigClientEnum = window.location.hostname === 'localhost'\r\n ? ConfigClientEnum.sn\r\n : beforeUrl;\r\n\r\n setConfig({\r\n API_URI: response.data.API_URI,\r\n client,\r\n companyName: ClientCompanyNameEnum[client],\r\n venueName: VenueNameEnum[client],\r\n isKiosk: params.get('mode') === 'kiosk' || params.get('mode') === 'testkiosk',\r\n });\r\n\r\n getCurrentActiveTheme(response.data.API_URI, client);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (config) {\r\n const themes = {\r\n sn: snStyles,\r\n cgg: cggStyles,\r\n };\r\n const currentThemeConfig: IStyleConfig = themes[config.client];\r\n type StyleConfigPropsArray = Array;\r\n const propsArray: StyleConfigPropsArray = Object.keys(currentThemeConfig) as StyleConfigPropsArray;\r\n\r\n propsArray.forEach((keyName: keyof IStyleConfig) => {\r\n document.styleSheets[0].insertRule(`:root{${keyName}:${currentThemeConfig[keyName]}}`);\r\n });\r\n }\r\n }, [config?.client]);\r\n\r\n const transformStyleColorsToVars = useCallback((styles: IThemeStyle) => {\r\n type StyleKeysArray = Array;\r\n const propsArray: StyleKeysArray = Object.keys(styles) as StyleKeysArray;\r\n propsArray.forEach((keyName: keyof IThemeStyle) => {\r\n type StyleInstanceKeyArray = Array;\r\n const stylnstanceKeyArray: StyleInstanceKeyArray = Object.keys(styles[keyName]) as StyleInstanceKeyArray;\r\n stylnstanceKeyArray.forEach((instanceKey: keyof IThemeStyleInstance) => {\r\n document.styleSheets[0].insertRule(`:root{--${keyName}-${instanceKey}:${styles[keyName][instanceKey]}}`);\r\n });\r\n });\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (activeTheme) {\r\n transformStyleColorsToVars(activeTheme.style);\r\n }\r\n }, [activeTheme]);\r\n\r\n return {\r\n config,\r\n activeTheme,\r\n };\r\n};\r\n\r\nexport default useConfigState;\r\n","import React, {FC, createContext} from 'react';\r\n\r\nimport useConfigState from './useConfigState';\r\n\r\nconst ConfigContext = createContext(undefined);\r\n\r\nconst ConfigProvider: FC = ({children}) => {\r\n const value = useConfigState();\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport {ConfigProvider, ConfigContext};\r\n","import {useContext} from 'react';\r\n\r\nimport {IApiDataType} from '@interfaces/types/apiData.type';\r\nimport {ConfigContext} from '@providers/configProvider/ConfigProvider';\r\n\r\nconst useConfig = (): IApiDataType => {\r\n const context = useContext(ConfigContext);\r\n\r\n if (context === undefined) {\r\n throw new Error('useConfig must be used within a provider');\r\n }\r\n\r\n return context;\r\n};\r\n\r\nexport default useConfig;\r\n","import {useEffect, useState} from 'react';\r\n\r\nimport {IDeviceMatchState} from './deviceMatch.types';\r\n\r\nconst useIsDesktop = (): IDeviceMatchState => {\r\n const [deviceMatch, setDevicematch] = useState({\r\n isMobile: window.matchMedia('(max-width: 600px)').matches,\r\n });\r\n\r\n useEffect(() => {\r\n window\r\n .matchMedia('(max-width: 600px)')\r\n .addEventListener('change', e => setDevicematch({\r\n isMobile: e.matches,\r\n }));\r\n }, []);\r\n\r\n return {...deviceMatch};\r\n};\r\n\r\nexport default useIsDesktop;\r\n","import React, {FC, createContext} from 'react';\r\n\r\nimport useDeviceMatchState from './useDeviceMatchState';\r\n\r\nconst DeviceMatchContext = createContext(undefined);\r\n\r\nconst DeviceMatchProvider: FC = ({children}) => {\r\n const deviceMatchState = useDeviceMatchState();\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport {DeviceMatchProvider, DeviceMatchContext};\r\n","import {useState, useCallback, useEffect} from 'react';\r\nimport useAxios from 'axios-hooks';\r\nimport axios from 'axios';\r\nimport {useNavigate, useLocation, useSearchParams} from 'react-router-dom';\r\n\r\nimport api from '@api/index';\r\nimport {IResponseDto} from '@interfaces/rest/response.dto';\r\nimport {IGuestDto, IGuestSaveDto} from '@interfaces/rest/guestData.dto';\r\nimport {IMediaDto} from '@interfaces/rest/media.dto';\r\nimport {ISurveyAnswer} from '@pages/Photos/components/survey/survey.types';\r\n\r\nimport {IUserState} from './user.types';\r\n\r\nconst useUserState = (\r\n isKiosk?: boolean,\r\n expressionsAPI?: string,\r\n): IUserState => {\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const [searchParams] = useSearchParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isLoadingImages, setIsLoadingImages] = useState(false);\r\n const [user, setUser] = useState(null);\r\n const [activeBarcode, setActiveBarcode] = useState('');\r\n const [photos, setPhotos] = useState(null);\r\n const [selectedPhotos, setSelectedPhotos] = useState([]);\r\n const [isInterviewing, setIsInterviewing] = useState(false);\r\n\r\n const [{}, getUserData] = useAxios>({\r\n method: 'get',\r\n }, {manual: true});\r\n\r\n const [{}, saveUserData] = useAxios>({\r\n url: api.saveGuest,\r\n method: 'post',\r\n }, {manual: true});\r\n\r\n const [{}, getUserPhotos] = useAxios>({\r\n method: 'get',\r\n }, {manual: true});\r\n\r\n const [{}, shareImage] = useAxios>({\r\n method: 'post',\r\n }, {manual: true});\r\n\r\n const [{}, saveBackground] = useAxios>({\r\n method: 'put',\r\n }, {manual: true});\r\n\r\n const [{}, postSurveyAnswer] = useAxios>({\r\n url: api.postSurveyAnswer,\r\n method: 'post',\r\n }, {manual: true});\r\n\r\n const getUserPhotosByBarcode = useCallback(async (\r\n barcode: string,\r\n ): Promise => {\r\n try {\r\n setIsLoadingImages(true);\r\n const response = await getUserPhotos({\r\n url: api.guestPhotos(barcode),\r\n });\r\n if (response.data.response?.length) {\r\n setPhotos(response.data.response);\r\n }\r\n setIsLoadingImages(false);\r\n } catch (error) {\r\n setIsLoadingImages(false);\r\n }\r\n }, []);\r\n\r\n const getUserByBarcode = useCallback(async (\r\n barcode: string,\r\n ): Promise => {\r\n setPhotos(null);\r\n try {\r\n setIsLoading(true);\r\n const response = await getUserData({\r\n url: api.guestInfo(barcode),\r\n });\r\n if (!response.data.state && !response.data.response) {\r\n setIsLoading(false);\r\n navigate('/login?ticketBarcode=' + barcode);\r\n return;\r\n }\r\n setUser(response.data.response);\r\n setActiveBarcode(barcode);\r\n setIsLoading(false);\r\n getUserPhotosByBarcode(barcode);\r\n if (!isKiosk) {\r\n localStorage.setItem('barcode', barcode);\r\n }\r\n navigate('/photos');\r\n } catch (error) {\r\n setIsLoading(false);\r\n }\r\n }, [isKiosk]);\r\n\r\n const saveUser = useCallback(async (\r\n ticketBarcodes: string,\r\n email: string,\r\n zipCode: string,\r\n captureNewsYN: boolean,\r\n ) => {\r\n try {\r\n setIsLoading(true);\r\n const response = await saveUserData({\r\n data: {\r\n data: {\r\n email,\r\n zipCode,\r\n captureNewsYN,\r\n },\r\n ticketBarcodes,\r\n survey: {},\r\n },\r\n });\r\n if (response.data.response?.guestId) {\r\n getUserByBarcode(ticketBarcodes);\r\n }\r\n setIsLoading(false);\r\n } catch (error) {\r\n setIsLoading(false);\r\n }\r\n }, []);\r\n\r\n const resetUser = useCallback(() => {\r\n setUser(null);\r\n setPhotos(null);\r\n setActiveBarcode('');\r\n setSelectedPhotos([]);\r\n try {\r\n localStorage.removeItem('barcode');\r\n } catch (error) {}\r\n }, []);\r\n\r\n useEffect(() => {\r\n const ticketBarcode: string | null = searchParams.get('ticketBarcode');\r\n const isDirectLogin =\r\n location.pathname === '/login' &&\r\n ticketBarcode?.length === 18 &&\r\n !isNaN(+ticketBarcode);\r\n\r\n if (\r\n !isKiosk &&\r\n !location.pathname.includes('direct-view') &&\r\n !isDirectLogin\r\n ) {\r\n try {\r\n const barcode = localStorage.getItem('barcode');\r\n if (barcode?.length === 18) {\r\n getUserByBarcode(barcode);\r\n }\r\n } catch (error) {\r\n localStorage.removeItem('barcode');\r\n }\r\n }\r\n }, [isKiosk]);\r\n\r\n const checkIsShouldSurvey = useCallback(() => {\r\n if (user?.guestData && !user.guestData.passedSurvey) {\r\n setIsInterviewing(true);\r\n }\r\n }, [user]);\r\n\r\n const handleSurveyClose = useCallback(() => {\r\n setIsInterviewing(false);\r\n }, []);\r\n\r\n const shareImageViaEmail = useCallback(async (\r\n id: string | string[],\r\n email: string,\r\n from: string,\r\n ): Promise => {\r\n try {\r\n setIsLoading(true);\r\n const payload = {\r\n emailsList: [email],\r\n from,\r\n };\r\n\r\n if (Array.isArray(id)) {\r\n const requests = id.map((mediaId) => axios.post(\r\n expressionsAPI + api.mediaShare(mediaId),\r\n payload,\r\n ));\r\n const response = await axios.all(requests);\r\n const isError = response.some((res) => !res.data.state);\r\n if (isError) {\r\n setIsLoading(false);\r\n return 'Unexpected error';\r\n }\r\n setSelectedPhotos([]);\r\n setIsLoading(false);\r\n return '';\r\n }\r\n\r\n const response = await shareImage({\r\n url: api.mediaShare(id),\r\n data: payload,\r\n });\r\n if (!response.data.state) {\r\n return response.data.messages.join(', ');\r\n }\r\n setIsLoading(false);\r\n return '';\r\n } catch (error: any) {\r\n setIsLoading(false);\r\n return error?.message || 'Unexpected error';\r\n }\r\n }, [expressionsAPI]);\r\n\r\n const saveSiverScreenBg = useCallback(async (\r\n mediaId: string,\r\n backgroundId: string,\r\n ): Promise => {\r\n try {\r\n setIsLoading(true);\r\n const response = await saveBackground({\r\n url: api.mediaLayer(mediaId),\r\n data: {\r\n backgroundMediaLayer: backgroundId,\r\n },\r\n });\r\n setIsLoading(false);\r\n if (response.status === 200) {\r\n return true;\r\n }\r\n return false;\r\n } catch (error) {\r\n setIsLoading(false);\r\n return false;\r\n }\r\n }, []);\r\n\r\n const selectPhoto = useCallback((\r\n id: string,\r\n isSelecting = true,\r\n ) => {\r\n setSelectedPhotos((prevList: string[]) => isSelecting\r\n ? [...prevList, id]\r\n : prevList.filter((listItemId: string) => listItemId !== id)\r\n );\r\n }, []);\r\n\r\n const onSurveySubmit = useCallback(() => {\r\n if (user) {\r\n setUser({\r\n ...user,\r\n guestData: {\r\n ...user.guestData,\r\n passedSurvey: true,\r\n },\r\n });\r\n }\r\n }, [user]);\r\n\r\n const handleSurveySubmit = useCallback(async (answersList: ISurveyAnswer): Promise => {\r\n try {\r\n setIsLoading(true);\r\n const questionIds = Object.keys(answersList);\r\n const answersDto = questionIds.map((questionId: string) => ({\r\n questionId,\r\n answer: answersList[questionId],\r\n }));\r\n await postSurveyAnswer({\r\n data: {\r\n answers: answersDto,\r\n guestId: user?.guestId,\r\n ticketBarcode: activeBarcode,\r\n },\r\n });\r\n handleSurveyClose();\r\n onSurveySubmit();\r\n setIsLoading(false);\r\n } catch (error) {\r\n setIsLoading(false);\r\n }\r\n }, [user?.guestId, activeBarcode, onSurveySubmit]);\r\n\r\n return {\r\n isLoading,\r\n isLoadingImages,\r\n getUserByBarcode,\r\n user,\r\n saveUser,\r\n resetUser,\r\n getUserPhotosByBarcode,\r\n photos,\r\n shareImageViaEmail,\r\n saveSiverScreenBg,\r\n activeBarcode,\r\n selectedPhotos,\r\n selectPhoto,\r\n isInterviewing,\r\n checkIsShouldSurvey,\r\n handleSurveyClose,\r\n handleSurveySubmit,\r\n };\r\n};\r\n\r\nexport default useUserState;\r\n","import React, {FC, createContext, useMemo} from 'react';\r\n\r\nimport useConfig from '@providers/configProvider/useConfig';\r\n\r\nimport useUserState from './useUserState';\r\n\r\nconst UserContext = createContext(undefined);\r\n\r\nconst UserProvider: FC = ({children}) => {\r\n const {config} = useConfig();\r\n\r\n const {\r\n isLoading,\r\n isLoadingImages,\r\n getUserByBarcode,\r\n user,\r\n activeBarcode,\r\n saveUser,\r\n resetUser,\r\n getUserPhotosByBarcode,\r\n photos,\r\n shareImageViaEmail,\r\n saveSiverScreenBg,\r\n selectedPhotos,\r\n selectPhoto,\r\n isInterviewing,\r\n checkIsShouldSurvey,\r\n handleSurveyClose,\r\n handleSurveySubmit,\r\n } = useUserState(\r\n config?.isKiosk,\r\n config?.API_URI\r\n );\r\n\r\n const value = useMemo(() => ({\r\n isLoading,\r\n isLoadingImages,\r\n getUserByBarcode,\r\n user,\r\n saveUser,\r\n resetUser,\r\n getUserPhotosByBarcode,\r\n photos,\r\n shareImageViaEmail,\r\n saveSiverScreenBg,\r\n activeBarcode,\r\n selectedPhotos,\r\n selectPhoto,\r\n isInterviewing,\r\n checkIsShouldSurvey,\r\n handleSurveyClose,\r\n handleSurveySubmit,\r\n }), [\r\n isLoading,\r\n isLoadingImages,\r\n user,\r\n activeBarcode,\r\n photos,\r\n selectedPhotos,\r\n isInterviewing,\r\n ]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport {UserProvider, UserContext};\r\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\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 patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial 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 state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, 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,\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);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n 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 state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n });\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,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n 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 state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\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 if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\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 `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n 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[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n 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 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 null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\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 = patchRoutesOnNavigationImpl({\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\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"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_patchRoutesOnNavigation()\\` ` +\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: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","var has = Object.prototype.hasOwnProperty;\n\nexport function dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","import _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport React from 'react';\nimport StaticAxios from 'axios';\nimport LRU from 'lru-cache';\nimport { dequal as deepEqual } from 'dequal/lite';\nvar actions = {\n REQUEST_START: 'REQUEST_START',\n REQUEST_END: 'REQUEST_END'\n};\nvar DEFAULT_OPTIONS = {\n manual: false,\n useCache: true,\n ssr: true,\n autoCancel: true\n};\nvar useAxios = makeUseAxios();\nvar __ssrPromises = useAxios.__ssrPromises,\n resetConfigure = useAxios.resetConfigure,\n configure = useAxios.configure,\n loadCache = useAxios.loadCache,\n serializeCache = useAxios.serializeCache,\n clearCache = useAxios.clearCache;\nexport default useAxios;\nexport { __ssrPromises, resetConfigure, configure, loadCache, serializeCache, clearCache };\n\nfunction isReactEvent(obj) {\n return obj && obj.nativeEvent && obj.nativeEvent instanceof Event;\n}\n\nfunction createCacheKey(config) {\n var cleanedConfig = _extends({}, config);\n\n delete cleanedConfig.cancelToken;\n return JSON.stringify(cleanedConfig);\n}\n\nfunction configToObject(config) {\n if (typeof config === 'string') {\n return {\n url: config\n };\n }\n\n return Object.assign({}, config);\n}\n\nexport function makeUseAxios(configureOptions) {\n var cache;\n var axiosInstance;\n var defaultOptions;\n var __ssrPromises = [];\n\n function resetConfigure() {\n cache = new LRU();\n axiosInstance = StaticAxios;\n defaultOptions = DEFAULT_OPTIONS;\n }\n\n function configure(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.axios !== undefined) {\n axiosInstance = options.axios;\n }\n\n if (options.cache !== undefined) {\n cache = options.cache;\n }\n\n if (options.defaultOptions !== undefined) {\n defaultOptions = _extends({}, DEFAULT_OPTIONS, options.defaultOptions);\n }\n }\n\n resetConfigure();\n configure(configureOptions);\n\n function loadCache(data) {\n cache.load(data);\n }\n\n function serializeCache() {\n return _serializeCache.apply(this, arguments);\n }\n\n function _serializeCache() {\n _serializeCache = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var ssrPromisesCopy;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n ssrPromisesCopy = [].concat(__ssrPromises);\n __ssrPromises.length = 0;\n _context.next = 4;\n return Promise.all(ssrPromisesCopy);\n\n case 4:\n return _context.abrupt(\"return\", cache.dump());\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _serializeCache.apply(this, arguments);\n }\n\n function clearCache() {\n cache.reset();\n }\n\n return Object.assign(useAxios, {\n __ssrPromises: __ssrPromises,\n resetConfigure: resetConfigure,\n configure: configure,\n loadCache: loadCache,\n serializeCache: serializeCache,\n clearCache: clearCache\n });\n\n function tryStoreInCache(config, response) {\n if (!cache) {\n return;\n }\n\n var cacheKey = createCacheKey(config);\n\n var responseForCache = _extends({}, response);\n\n delete responseForCache.config;\n delete responseForCache.request;\n cache.set(cacheKey, responseForCache);\n }\n\n function createInitialState(config, options) {\n var response = !options.manual && tryGetFromCache(config, options);\n return _extends({\n loading: !options.manual && !response,\n error: null\n }, response ? {\n data: response.data,\n response: response\n } : null);\n }\n\n function reducer(state, action) {\n var _extends2;\n\n switch (action.type) {\n case actions.REQUEST_START:\n return _extends({}, state, {\n loading: true,\n error: null\n });\n\n case actions.REQUEST_END:\n return _extends({}, state, {\n loading: false\n }, action.error ? {} : {\n data: action.payload.data,\n error: null\n }, (_extends2 = {}, _extends2[action.error ? 'error' : 'response'] = action.payload, _extends2));\n }\n }\n\n function tryGetFromCache(config, options, dispatch) {\n if (!cache || !options.useCache) {\n return;\n }\n\n var cacheKey = createCacheKey(config);\n var response = cache.get(cacheKey);\n\n if (response && dispatch) {\n dispatch({\n type: actions.REQUEST_END,\n payload: response\n });\n }\n\n return response;\n }\n\n function executeRequest(_x, _x2) {\n return _executeRequest.apply(this, arguments);\n }\n\n function _executeRequest() {\n _executeRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(config, dispatch) {\n var response;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n dispatch({\n type: actions.REQUEST_START\n });\n _context2.next = 4;\n return axiosInstance(config);\n\n case 4:\n response = _context2.sent;\n tryStoreInCache(config, response);\n dispatch({\n type: actions.REQUEST_END,\n payload: response\n });\n return _context2.abrupt(\"return\", response);\n\n case 10:\n _context2.prev = 10;\n _context2.t0 = _context2[\"catch\"](0);\n\n if (!StaticAxios.isCancel(_context2.t0)) {\n dispatch({\n type: actions.REQUEST_END,\n payload: _context2.t0,\n error: true\n });\n }\n\n throw _context2.t0;\n\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[0, 10]]);\n }));\n return _executeRequest.apply(this, arguments);\n }\n\n function request(_x3, _x4, _x5) {\n return _request.apply(this, arguments);\n }\n\n function _request() {\n _request = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(config, options, dispatch) {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", tryGetFromCache(config, options, dispatch) || executeRequest(config, dispatch));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _request.apply(this, arguments);\n }\n\n function useAxios(_config, _options) {\n var config = React.useMemo(function () {\n return configToObject(_config);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n useDeepCompareMemoize(_config));\n var options = React.useMemo(function () {\n return _extends({}, defaultOptions, _options);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n useDeepCompareMemoize(_options));\n var cancelSourceRef = React.useRef();\n\n var _React$useReducer = React.useReducer(reducer, createInitialState(config, options)),\n state = _React$useReducer[0],\n dispatch = _React$useReducer[1];\n\n if (typeof window === 'undefined' && options.ssr && !options.manual) {\n useAxios.__ssrPromises.push(axiosInstance(config));\n }\n\n var cancelOutstandingRequest = React.useCallback(function () {\n if (cancelSourceRef.current) {\n cancelSourceRef.current.cancel();\n }\n }, []);\n var withCancelToken = React.useCallback(function (config) {\n if (options.autoCancel) {\n cancelOutstandingRequest();\n }\n\n cancelSourceRef.current = StaticAxios.CancelToken.source();\n config.cancelToken = cancelSourceRef.current.token;\n return config;\n }, [cancelOutstandingRequest, options.autoCancel]);\n React.useEffect(function () {\n if (!options.manual) {\n request(withCancelToken(config), options, dispatch)[\"catch\"](function () {});\n }\n\n return function () {\n if (options.autoCancel) {\n cancelOutstandingRequest();\n }\n };\n }, [config, options, withCancelToken, cancelOutstandingRequest]);\n var refetch = React.useCallback(function (configOverride, options) {\n configOverride = configToObject(configOverride);\n return request(withCancelToken(_extends({}, config, isReactEvent(configOverride) ? null : configOverride)), _extends({\n useCache: false\n }, options), dispatch);\n }, [config, withCancelToken]);\n return [state, refetch, cancelOutstandingRequest];\n }\n}\n\nfunction useDeepCompareMemoize(value) {\n var ref = React.useRef();\n var signalRef = React.useRef(0);\n\n if (!deepEqual(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n }\n\n return [signalRef.current];\n}","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\n/**\n * Submit options shared by both navigations and fetchers\n */\ninterface SharedSubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides ``.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this submission's state updates\n */\n unstable_flushSync?: boolean;\n}\n\n/**\n * Submit options available to fetchers\n */\nexport interface FetcherSubmitOptions extends SharedSubmitOptions {}\n\n/**\n * Submit options available to navigations\n */\nexport interface SubmitOptions extends FetcherSubmitOptions {\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n unstable_viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a