{"version":3,"file":"static/js/main.973e03d0.js","mappings":"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","sources":["components/Loding/Loading.js","components/api/apiRegister.js","components/api/apiService.js","components/api/api.js","context/subContexts/AuthContext.js","context/subContexts/DataContext.js","context/subContexts/UIContext.js","hooks/useApi.js","hooks/useCheckToken.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/invariant/browser.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-helmet-async/lib/index.esm.js","../node_modules/react-query/es/core/logger.js","../node_modules/react-query/es/core/notifyManager.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-query/es/core/subscribable.js","../node_modules/react-query/es/core/focusManager.js","../node_modules/react-query/es/core/onlineManager.js","../node_modules/react-query/es/core/retryer.js","../node_modules/react-query/es/core/query.js","../node_modules/react-query/es/core/queryCache.js","../node_modules/react-query/es/core/mutation.js","../node_modules/react-query/es/core/mutationCache.js","../node_modules/react-query/es/core/infiniteQueryBehavior.js","../node_modules/react-query/es/core/queryClient.js","../node_modules/react-query/es/core/utils.js","../node_modules/react-query/es/react/reactBatchedUpdates.js","../node_modules/react-query/es/react/setBatchUpdatesFn.js","../node_modules/react-query/es/react/logger.js","../node_modules/react-query/es/react/setLogger.js","../node_modules/react-query/es/react/QueryClientProvider.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/shallowequal/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.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/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/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.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","../node_modules/js-cookie/dist/js.cookie.mjs","../node_modules/jwt-decode/build/esm/index.js","../node_modules/react-icons/fa/index.mjs","../node_modules/react-icons/lib/iconsManifest.mjs","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","components/ComprehensiveRules/ComprehensiveLawHtml.js","App.js","context/RootContext.js","index.js"],"sourcesContent":["import React from \"react\";\r\n\r\nconst Loading = () => {\r\n return (\r\n
\r\n {\" \"}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Loading;\r\n","import Cookies from 'js-cookie';\r\nimport axios from 'axios';\r\n\r\nexport const callLoginApi = async (\r\n endpoint,\r\n method = 'GET',\r\n data = null,\r\n onSuccess,\r\n headers,\r\n params\r\n // setRefreshCaptcha,\r\n // setLawForUser,\r\n // setCookieToken\r\n) => {\r\n try {\r\n const response = await axios({\r\n url: `${process.env.REACT_APP_BASE_URL_PROFILE}${endpoint}`, // api address\r\n method, // type of request (get,post,...)\r\n ...(data && { data }), // if data or params exists\r\n ...(params && { params }),\r\n ...(headers && { headers }),\r\n });\r\n\r\n // setLoading(false);\r\n console.log(response);\r\n\r\n if (\r\n // response[0] === \"Password : The Password field is required.\" ||\r\n // response[0] === \"user not found\" ||\r\n // response[0] === \"UserName : The UserName field is required.\" ||\r\n // response[0] === \"you should go to the login.\" ||\r\n // response[0] === \"invalid informatiom.\" ||\r\n response.data.statusCode !== 200\r\n ) {\r\n alert('نام ورود یا کلمه عبور اشتباه است، لطفا دوباره تلاش کنید.');\r\n // setRefreshCaptcha(true);\r\n } else {\r\n const cookieOptions = {\r\n expires: 365 * 100, // 100 years\r\n secure: process.env.REACT_APP_COOKIE_SECURE === 'true',\r\n sameSite: process.env.REACT_APP_COOKIE_SAMESITE || 'strict',\r\n };\r\n\r\n // Add domain attribute if specified in .env\r\n if (process.env.REACT_APP_COOKIE_DOMAIN) {\r\n cookieOptions.domain = process.env.REACT_APP_COOKIE_DOMAIN;\r\n }\r\n\r\n // Set the cookie\r\n Cookies.set('token', `${JSON.stringify(response.data)}`, cookieOptions);\r\n onSuccess(response.data);\r\n //setCookieToken(response.data);\r\n }\r\n return response.data;\r\n } catch (error) {\r\n console.log('errorFetchLoginJWT: ', error);\r\n }\r\n};\r\n","import axios from \"axios\";\r\n\r\nexport const callApi = async (endpoint, method = \"GET\", data, params, headers, isProfileUrl) => {\r\n try {\r\n const baseURL = isProfileUrl ? process.env.REACT_APP_BASE_URL_PROFILE : process.env.REACT_APP_BASE_URL;\r\n const response = await axios({\r\n url: `${baseURL}${endpoint}`,\r\n method,\r\n data,\r\n params,\r\n headers,\r\n });\r\n return response.data;\r\n } catch (error) {\r\n console.log(\"❌ API Error:\", error);\r\n const statusCode = error.response?.status || 500;\r\n throw {\r\n message: error.response?.data?.message || \"Server Error\",\r\n statusCode,\r\n };\r\n }\r\n};\r\n","import { callLoginApi } from './apiRegister';\r\nimport { callApi } from './apiService';\r\nimport { Router } from 'react-router-dom';\r\nimport Cookies from 'js-cookie';\r\nimport { jwtDecode } from 'jwt-decode';\r\n\r\nexport const getOrgs = async (params = {}) => {\r\n return await callApi('/api/Data/Orgs', 'GET', null, params);\r\n};\r\nexport const getOrgTree = async (params = {}) => {\r\n return await callApi('/api/data/OrgTree', 'GET', null, params);\r\n};\r\n\r\nexport const getCodeGozari = async () => {\r\n return await callApi('/api/Data/BaseInfo?cat=5', 'GET');\r\n};\r\n\r\nexport const getCountryLocation = async () => {\r\n return await callApi('/api/data/locations?type=5', 'GET');\r\n};\r\n\r\nexport const getDataSubjects = async () => {\r\n return await callApi('/api/data/subjects', 'GET');\r\n};\r\nexport const getSubjectsList = async () => {\r\n return await callApi('/api/data/subjects?metheod=0', 'GET');\r\n};\r\nexport const getLawTypes = async () => {\r\n return await callApi('/api/Data/LawTypes', 'GET');\r\n};\r\n\r\nexport const getProvinceLocation = async () => {\r\n return await callApi('/api/data/locations?type=6', 'GET');\r\n};\r\n\r\nexport const getStatus = async () => {\r\n return await callApi('/api/data/Status', 'GET');\r\n};\r\n\r\nexport const loginWithJWT = async (email, password) => {\r\n const response = await callApi('/api/Account/Login', 'POST', {\r\n UserName: email,\r\n password: password,\r\n });\r\n console.log('Login', response);\r\n localStorage.setItem('tokenLogin', response.token);\r\n return response;\r\n};\r\n\r\nexport const fetchRefreshToken = async (token, email, setTokenLogin) => {\r\n const response = await callApi(\r\n '/api/Account/RefreshTokenRegeneration',\r\n 'POST',\r\n {\r\n Token: token?.refreshToken,\r\n UserName: email,\r\n },\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Access-Control-Allow-Methods': 'GET,OPTIONS,PATCH,DELETE,POST,PUT',\r\n 'Access-Control-Allow-Headers':\r\n 'X-Requested-With, Content-Type, Authorization',\r\n 'Access-Control-Allow-Credentials': 'true',\r\n }\r\n );\r\n //setTokenLogin(response);\r\n return response;\r\n};\r\n\r\nexport const fetchLoginProfileJWT = async (email, password) => {\r\n if (email === null || email === '' || email === undefined)\r\n return Promise.resolve(null);\r\n return await callLoginApi(\r\n '/v1/Account/Login',\r\n 'POST',\r\n {\r\n UserName: email,\r\n password: password,\r\n },\r\n (data) => {\r\n console.log('data', data);\r\n if (data?.data.accessToken) {\r\n console.log('object', data);\r\n // fetchLoginJWT(email, password);\r\n }\r\n }\r\n );\r\n};\r\n\r\nexport const fetchLoginJWT = async (email, password) => {\r\n if (email === null || email === '' || email === undefined)\r\n return Promise.resolve(null);\r\n const response = await callApi('/api/Account/Login', 'POST', {\r\n UserName: email,\r\n password: password,\r\n });\r\n console.log('response', response);\r\n if (response.data?.accessToken) {\r\n console.log('condition ', response.data);\r\n localStorage.setItem('tokenLogin', JSON.stringify(response));\r\n }\r\n return response;\r\n};\r\n\r\nexport const NewRegisterWithPhoneNumberFun = async (userInfo, code) => {\r\n if (userInfo === null || userInfo === '' || userInfo === undefined)\r\n return Promise.resolve(null);\r\n return await callLoginApi(\r\n '/v1/Account/RegisterUserWithPhoneNumber',\r\n 'POST',\r\n {\r\n firstName: userInfo.fName,\r\n lastName: userInfo.LName,\r\n phoneNumber: userInfo.phoneNumber,\r\n code: code,\r\n },\r\n (data) => {\r\n if (data?.accessToken) {\r\n //const userInfo = jwtDecode(data.data?.accessToken);\r\n // setCurrentUser(userInfo);\r\n Router('/');\r\n }\r\n },\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n //setTokenLogin(token.data);\r\n};\r\nexport const NewLoginWithPhoneNumber = async (phoneNum, code) => {\r\n if (phoneNum === null || phoneNum === '' || phoneNum === undefined)\r\n return Promise.resolve(null);\r\n return await callLoginApi(\r\n '/v1/Account/LoginWithPhoneNumber',\r\n 'POST',\r\n {\r\n phoneNumber: `${phoneNum}`,\r\n code: code,\r\n },\r\n (data) => {\r\n if (data?.accessToken) {\r\n //const userInfo = jwtDecode(data.data?.accessToken);\r\n // setCurrentUser(userInfo);\r\n Router('/');\r\n }\r\n },\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n //setTokenLogin(token.data);\r\n};\r\n\r\nexport const NewRegisterWithPhoneNumber = async (phoneNum, code) => {\r\n return await callLoginApi(\r\n '/v1/Account/RegisterUserWithPhoneNumber',\r\n 'POST',\r\n {\r\n phoneNumber: phoneNum,\r\n code: code,\r\n },\r\n (data) => {\r\n if (data?.accessToken) {\r\n //const userInfo = jwtDecode(data.data?.accessToken);\r\n // setCurrentUser(userInfo);\r\n window.location.assign(\r\n `${\r\n window.location.pathname === '/login'\r\n ? '/'\r\n : window.location.pathname\r\n }`\r\n );\r\n }\r\n },\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n //setTokenLogin(token.data);\r\n};\r\nexport const newFetchRefreshToken = async (setCurrentUserCookie) => {\r\n const CookieToken = JSON.parse(Cookies.get('token'));\r\n const response = await callLoginApi(\r\n '/v1/Account/RefreshTokenRegeneration',\r\n 'POST',\r\n {\r\n Token: CookieToken?.data.refreshToken,\r\n UserName: jwtDecode(CookieToken?.data.accessToken).userName,\r\n },\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Access-Control-Allow-Methods': 'GET,OPTIONS,PATCH,DELETE,POST,PUT',\r\n 'Access-Control-Allow-Headers':\r\n 'X-Requested-With, Content-Type, Authorization',\r\n 'Access-Control-Allow-Credentials': 'true',\r\n }\r\n );\r\n\r\n const cookieOptions = {\r\n expires: 365 * 100, // 100 years\r\n secure: process.env.REACT_APP_COOKIE_SECURE === 'true',\r\n sameSite: process.env.REACT_APP_COOKIE_SAMESITE || 'strict',\r\n };\r\n\r\n // Add domain attribute if specified in .env\r\n if (process.env.REACT_APP_COOKIE_DOMAIN) {\r\n cookieOptions.domain = process.env.REACT_APP_COOKIE_DOMAIN;\r\n }\r\n\r\n // Set the cookie\r\n Cookies.set('token', `${JSON.stringify(response.data)}`, cookieOptions);\r\n\r\n const userInfo = jwtDecode(response.data?.accessToken);\r\n setCurrentUserCookie(userInfo);\r\n return response;\r\n};\r\n\r\nexport const GetListSubject = async (ID, LwTDataID) => {\r\n const CookieToken = JSON.parse(Cookies.get('token'));\r\n console.log('id', ID);\r\n const response = await callApi(\r\n '/v1/UserLwSubject/UserLwSubjectList',\r\n 'POST',\r\n JSON.stringify({\r\n filters: {\r\n pageNumber: 1,\r\n pageSize: 20,\r\n isSortAscending: true,\r\n sortField: '',\r\n search: '',\r\n },\r\n subjectType: 4,\r\n lwSubjectId: Number(ID),\r\n }),\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${CookieToken?.data.accessToken}`,\r\n },\r\n true // مقدار true نشان دهنده این است که این آدرس در پروفایل است\r\n );\r\n console.log(response, 'res1');\r\n\r\n const response2 = await fetchDataLwSubjectTree(Number(ID), LwTDataID);\r\n const result = {\r\n ...response2,\r\n TreeID: Number(ID),\r\n };\r\n return result;\r\n};\r\nexport const GetUserLwSubject = async (pageNumber, searchText, id) => {\r\n const CookieToken = JSON.parse(Cookies.get('token'));\r\n // console.log(Params, searchText);\r\n console.log('DDDDDDDD', id);\r\n console.log('PPPPPPP', pageNumber);\r\n return await callApi(\r\n '/v1/UserLwSubject/UserLwSubjectTreeList',\r\n 'POST',\r\n JSON.stringify({\r\n filters: {\r\n pageNumber: pageNumber,\r\n pageSize: 100,\r\n isSortAscending: true,\r\n sortField: '',\r\n search: '',\r\n },\r\n title: searchText,\r\n rootId: id,\r\n }),\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${CookieToken?.data.accessToken}`,\r\n },\r\n true // مقدار true نشان دهنده این است که این آدرس در پروفایل است\r\n );\r\n};\r\n\r\nexport const fetchDataLwSubjectTree = async (ID, LwTDataID) => {\r\n const CookieToken = JSON.parse(Cookies.get('token'));\r\n console.log(ID, 'idqdqdqqdddd');\r\n\r\n const response = await callApi(\r\n '/v1/UserLwSubject/SubjectsTree',\r\n 'POST',\r\n JSON.stringify({\r\n tabvib: true,\r\n addroot: false,\r\n parentId: null,\r\n lwSubjectId: LwTDataID === null ? Number(ID) : LwTDataID,\r\n }),\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${CookieToken?.data.accessToken}`,\r\n },\r\n true // مقدار true نشان دهنده این است که این آدرس در پروفایل است\r\n );\r\n console.log('response', response);\r\n return response;\r\n};\r\n\r\nexport const SendMessage = async (text, title) => {\r\n const CookieToken = JSON.parse(Cookies.get('token'));\r\n const response = await callApi(\r\n '/v1/UserNote/CreateUserNote',\r\n 'POST',\r\n JSON.stringify({\r\n lawId: null,\r\n sectionId: null,\r\n parentId: 0,\r\n text: text,\r\n title: title,\r\n isPublic: true,\r\n isPublish: true,\r\n userNoteType: 7,\r\n }),\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${CookieToken?.data.accessToken}`,\r\n },\r\n true\r\n );\r\n if (response.statusCode == 200) {\r\n alert(\r\n `فرهیخته گرامی، با سپاس از حسن همرامی شما با این سامانه، پیام شما با شناسه ${response.data} ثبت گردید. کارشناسان سامانه در اولین فرصت پاسخگوی شما هم وطن عزیز خواهند بود. برای پیگیری و مشاهده پاسخ پیام خویش لطفا به پروفایل عمومی سامانه به نشانی my.ilaws.net مراجعه بفرمایید. از این که با نظرات ارزشمند خویش ما را در تکمیل و ارتقای این سامانه ملی یاری می رسانید صمیمانه سپاسگزاریم. `\r\n );\r\n }\r\n return response;\r\n};\r\nexport const FetchDraftComperhensiveLaw = async (ID, pageNumber, size) => {\r\n console.log('ID', ID);\r\n return await callApi(\r\n `/api/Subject/ComprehensiveLaw?subject=${ID}`,\r\n 'POST',\r\n JSON.stringify({\r\n pageNumber: 1,\r\n pageSize: 50,\r\n isSortAscending: true,\r\n sortField: '',\r\n search: '',\r\n }),\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\nexport const fetchData = async () => {\r\n return await callApi('/api/data?id=1', 'GET');\r\n //setData(data);\r\n};\r\n\r\nexport const fetchLaw = async (func, resPerPage = 10, currentPage = 1) => {\r\n return await callApi(\r\n `/api/law/index?types=1&size=${resPerPage}&page=${currentPage}`\r\n );\r\n};\r\nexport const GetMoreView = async () => {\r\n const response = await callApi(\r\n `/v1/Visit/MostVisitedLawCount?isMyVisited=false`,\r\n 'post',\r\n {},\r\n {\r\n 'Content-Type': 'application/json',\r\n },\r\n null,\r\n true\r\n );\r\n return response;\r\n};\r\nexport const fetchMogharare = async (resPerPage = 10, currentPage = 1) => {\r\n return await callApi(\r\n `/api/law/index?types=2&size=${resPerPage}&page=${currentPage}`,\r\n 'GET'\r\n );\r\n //setMogharare(mogharar.data);\r\n};\r\nexport const fetchRay = async (resPerPage = 10, currentPage = 1) => {\r\n return await callApi(\r\n `/api/law/index?types=3&size=${resPerPage}&page=${currentPage}`,\r\n 'GET'\r\n );\r\n //setRay(raay.data);\r\n};\r\nexport const fetchComment = async (resPerPage = 10, currentPage = 1) => {\r\n return await callApi(\r\n `/api/law/index?types=4&size=${resPerPage}&page=${currentPage}`,\r\n 'GET'\r\n );\r\n //setComment(Comment.data);\r\n};\r\nexport const fetchReportStatistic = async () => {\r\n return await callApi('/api/Report/Statistic', 'GET');\r\n //setStatistic(statistic);\r\n};\r\n\r\nexport const fetchSub = async () => {\r\n return await callApi('/api/Data/Subjects?metheod=0', 'GET', null, null, {\r\n 'Content-Type': 'application/json',\r\n });\r\n //setSubjectList(data);\r\n};\r\nexport const fetchSearchLi = async () => {\r\n return await callApi('/api/Data/Subjects?metheod=1', 'GET', null, null, {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Access-Control-Allow-Methods': 'GET,OPTIONS,PATCH,DELETE,POST,PUT',\r\n 'Access-Control-Allow-Headers':\r\n 'X-Requested-With, Content-Type, Authorization',\r\n 'Access-Control-Allow-Credentials': 'true',\r\n });\r\n};\r\nexport const fetchCountSearchLi = async (subjects) => {\r\n if (subjects === null || subjects === '' || subjects === undefined)\r\n return Promise.resolve(null);\r\n return await callApi(\r\n `/api/law/index?subjects=${subjects}&methodsId=1`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\nexport const fetchSearchLiForBoxContentMozaot = async (\r\n subjects,\r\n // statusE,\r\n // types,\r\n page\r\n) => {\r\n if (subjects === null || subjects === '' || subjects === undefined)\r\n return Promise.resolve(null);\r\n // if (subjects === null || subjects === \"\") {\r\n // return await callApi(\r\n // `/api/Law/Index?search=&subjects=${subjects}&states=${\r\n // statusE !== \"\" ? \"&states=\" + statusE : \"\"\r\n // }&size=13${\r\n // types !== undefined || types !== 0 ? \"&types=\" + types : \"\"\r\n // }&page=${page}`,\r\n // \"GET\",\r\n // null,\r\n // null,\r\n // {\r\n // \"Content-Type\": \"application/json\",\r\n // }\r\n // );\r\n // } else {\r\n return await callApi(\r\n `/api/Law/Index?subjects=${subjects}&methodsId=1&size=13&page=${page}`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\n// }\r\nexport const BaseInfoCat1 = async () => {\r\n return await callApi(`/api/Data/BaseInfo?cat=1`, 'GET', null, null, {\r\n 'Content-Type': 'application/json',\r\n });\r\n};\r\nexport const LawReport24 = async () => {\r\n return await callApi(`/api/Report/LawReport?id=24`, 'GET', null, null, {\r\n 'Content-Type': 'application/json',\r\n });\r\n};\r\nexport const AdvSearch = async (searchText, pageNumber) => {\r\n return await callApi(\r\n `/api/AdvSearch/SearchTitle?search=${searchText}&size=30&page=${pageNumber}&order=0&selector=2&isSynonym=false&isStopWord=false&isHighlighted=false`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\nexport const fetchDataPlan = async (itemsPerPage = 10, pagePlan = 1) => {\r\n return await callApi(\r\n `/api/Law/Index?types=5&size=${itemsPerPage}&page=${pagePlan}`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\nexport const fetchDataLayer = async (itemsPerPage = 10, pagePlan = 1) => {\r\n return await callApi(\r\n `/api/Law/Index?types=6&size=${itemsPerPage}&page=${pagePlan}`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\nexport const fetchSimilarityOfParagraphs = async (id, page = 1) => {\r\n if (id === null || id === '' || id === undefined)\r\n return Promise.resolve(null);\r\n return await callApi(\r\n `/api/Plan/SimilarityOfParagraphs?id=3&size=30&page=${page}`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\n\r\nexport const FetchSubjectTreeList = async (id) => {\r\n console.log(\"id in fun\",id)\r\n // if (id === null || id === '' || id === undefined)\r\n // return Promise.resolve(null);\r\n return await callApi(\r\n `/api/Subject/SubjectTreeList?id=${id}`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\n\r\n\r\n\r\n\r\nexport const fetchRelationIndex = async (\r\n // txtSearch = '',\r\n // statusE = '',\r\n // subjects = '',\r\n // noeNaskh = '',\r\n // rozname = '',\r\n // taeed = '',\r\n // sizeTanghih = 30,\r\n // pageTanghih = 1\r\n txtSearch,\r\n statusE,\r\n subjects,\r\n noeNaskh,\r\n rozname,\r\n taeed,\r\n sizeTanghih,\r\n pageTanghih\r\n) => {\r\n console.log(\r\n 'fetchRelationIndex',\r\n txtSearch,\r\n statusE,\r\n subjects,\r\n noeNaskh,\r\n rozname,\r\n taeed,\r\n sizeTanghih,\r\n pageTanghih\r\n );\r\n\r\n if (sizeTanghih === 8) return Promise.resolve(null);\r\n return await callApi(\r\n // `/api/Law/RelationIndex?${\r\n // txtSearch != undefined ? `search=` + txtSearch : ''\r\n // }${statusE != undefined ? `&states=` + statusE : ''}${\r\n // subjects != undefined ? `&subjects=` + subjects : ''\r\n // }${noeNaskh != undefined ? `&whole=` + noeNaskh : ''}${\r\n // rozname != undefined ? `&inNews=` + rozname : ''\r\n // }${taeed != undefined ? `&isCheck=` + taeed : ''}${\r\n // sizeTanghih != undefined ? `&size=` + sizeTanghih : ''\r\n // }${pageTanghih != undefined ? `&page=` + pageTanghih : ''}`,\r\n `/api/Law/RelationIndex?search=${txtSearch}&states=${statusE}&subjects=${subjects}&whole=${noeNaskh}&inNews=${rozname}&isCheck=${taeed}&size=${sizeTanghih}&page=${pageTanghih}`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\nexport const fetchTreeLaw = async (id) => {\r\n if (id === null || id === '' || id === undefined)\r\n return Promise.resolve(null);\r\n return await callApi(`/api/law/tree?law_id=${id}`, 'GET', null, null, {\r\n 'Content-Type': 'application/json',\r\n });\r\n};\r\nexport const fetchSubjectsTree = async () => {\r\n return await callApi('/api/data/SubjectsTree', 'GET');\r\n};\r\nexport const fetchSearchResults = async (searchParams) => {\r\n if (\r\n searchParams === null ||\r\n searchParams?.length === 0 ||\r\n searchParams === undefined\r\n )\r\n return Promise.resolve(null);\r\n return await callApi(`/api/Law/Index?${searchParams}`, 'GET', null, null, {\r\n 'Content-Type': 'application/json',\r\n });\r\n};\r\nexport const fetchExecutiveDevices = async (orgsId, types, page) => {\r\n if (types === null || types === '' || orgsId === undefined)\r\n return Promise.resolve(null);\r\n return await callApi(\r\n `/api/Law/Index?xorgs=${orgsId}&types=${types}&page=${page}&size=100`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\n// export const fetchApprovalAuthorities = async (orgs, types) => {\r\n// if (\r\n// types === null ||\r\n// types === \"\" ||\r\n// orgs === undefined\r\n// )\r\n// return Promise.resolve(null);\r\n// return await callApi(\r\n// `/api/law/Count?&orgs=${orgs}&types=${types}`,\r\n// \"GET\",\r\n// null,\r\n// null,\r\n// {\r\n// \"Content-Type\": \"application/json\",\r\n// }\r\n// );\r\n// };\r\n\r\nexport const fetchApprovalAuthorities = async (\r\n pageTasvib,\r\n sizeTasvib,\r\n orgs,\r\n types\r\n) => {\r\n if (types === null || types === '' || orgs === undefined)\r\n return Promise.resolve(null);\r\n return await callApi(\r\n `/api/Law/Index?page=${pageTasvib}${\r\n orgs !== '' ? '&orgs=' + orgs : ''\r\n }&size=${sizeTasvib}&${\r\n types !== 0 || types !== undefined ? 'types=' + types : ''\r\n }`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\n\r\n// .................... view text .....................\r\n\r\n// export const PlayReadText = async (id) => {\r\n// if (id === null || id === \"\" || id === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(`/audio/${id}.mp3`, \"GET\", null, null, {\r\n// \"Content-Type\": \"application/json\",\r\n// });\r\n// };\r\n\r\n// export const handleClickIconTextView = async (sectionId, LawId) => {\r\n// if (sectionId === null || sectionId === \"\" || LawId === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(\r\n// `/api/Law/RelationIndex?Section_ID=${sectionId}&Law_ID=${LawId}`,\r\n// \"GET\",\r\n// null,\r\n// null,\r\n// {\r\n// \"Content-Type\": \"application/json\",\r\n// }\r\n// );\r\n// };\r\n// export const fetchSectionSimilarity = async (id, isSynonym) => {\r\n// if (id === null || id === \"\" || id === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(\r\n// `/api/Nlp/SectionSimilarity?sectionId=${id}&isSynonym=${isSynonym}`,\r\n// \"GET\",\r\n// null,\r\n// null,\r\n// {\r\n// \"Content-Type\": \"application/json\",\r\n// }\r\n// );\r\n// };\r\n// export const fetchOpenInfoSubjectsFun = async (id) => {\r\n// if (id === null || id === \"\" || id === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(\r\n// `/api/Nlp/SectionSimilarity?sectionId=${id}&isSubject=true`,\r\n// \"GET\",\r\n// null,\r\n// null,\r\n// {\r\n// \"Content-Type\": \"application/json\",\r\n// }\r\n// );\r\n// };\r\n// export const fetchSectionSubject = async (id) => {\r\n// if (id === null || id === \"\" || id === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(\r\n// `/api/Law/SectionSubject?sectionid=${id}`,\r\n// \"GET\",\r\n// null,\r\n// null,\r\n// {\r\n// \"Content-Type\": \"application/json\",\r\n// }\r\n// );\r\n// };\r\n// export const fetchConfirmSubjectIsTrue = async (\r\n// subjectid,\r\n// sectionid,\r\n// tokenLogin\r\n// ) => {\r\n// if (subjectid === null || subjectid === \"\" || subjectid === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(\r\n// `/api/Admin/ConfirmSubject?isConfirm=true${\r\n// subjectid && `&subject_ID=${subjectid}`\r\n// }${sectionid !== undefined ? `§ion_ID=${sectionid}` : \"\"}`,\r\n// \"POST\",\r\n// null,\r\n// null,\r\n// {\r\n// \"Content-Type\": \"application/json\",\r\n// Authorization: `Bearer ${tokenLogin?.accessToken}`,\r\n// }\r\n// );\r\n// };\r\n// export const ConfirmSubjectIsTrueTitle = async (\r\n// subjectid,\r\n// lawid,\r\n// tokenLogin\r\n// ) => {\r\n// if (subjectid === null || subjectid === \"\" || subjectid === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(\r\n// `/api/Admin/ConfirmSubject?isConfirm=true${\r\n// subjectid && `&subject_ID=${subjectid}`\r\n// }${lawid !== undefined ? `&law_ID=${lawid}` : \"\"}`,\r\n// \"POST\",\r\n// null,\r\n// null,\r\n// {\r\n// \"Content-Type\": \"application/json\",\r\n// Authorization: `Bearer ${tokenLogin?.accessToken}`,\r\n// }\r\n// ).then((res) => {\r\n// if (res.status === 200) alert(\"عملیات با موفقیت انجام شد \");\r\n// });\r\n// };\r\n\r\n// export const ConfirmSubjectIsFalse = async (\r\n// subjectid,\r\n// sectionid,\r\n// tokenLogin\r\n// ) => {\r\n// if (subjectid === null || subjectid === \"\" || subjectid === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(\r\n// `/api/Admin/ConfirmSubject?isConfirm=false${\r\n// subjectid && `&subject_ID=${subjectid}`\r\n// }${sectionid !== undefined ? `§ion_ID=${sectionid}` : \"\"}`,\r\n// \"POST\",\r\n// null,\r\n// null,\r\n// {\r\n// \"Content-Type\": \"application/json\",\r\n// Authorization: `Bearer ${tokenLogin?.accessToken}`,\r\n// }\r\n// ).then((res) => {\r\n// if (res.status === 200) alert(\"عملیات با موفقیت انجام شد \");\r\n// });\r\n// };\r\n\r\n// export const ConfirmSubjectIsFalseTitle = async (\r\n// subjectid,\r\n// lawid,\r\n// tokenLogin\r\n// ) => {\r\n// if (subjectid === null || subjectid === \"\" || subjectid === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(\r\n// `/api/Admin/ConfirmSubject?isConfirm=false${\r\n// subjectid && `&subject_ID=${subjectid}`\r\n// }${lawid !== undefined ? `&law_ID=${lawid}` : \"\"}`,\r\n// \"POST\",\r\n// null,\r\n// null,\r\n// {\r\n// \"Content-Type\": \"application/json\",\r\n// Authorization: `Bearer ${tokenLogin?.accessToken}`,\r\n// }\r\n// ).then((res) => {\r\n// if (res.status === 200) alert(\"عملیات با موفقیت انجام شد \");\r\n// });\r\n// };\r\n\r\n// export const ConfrimText = async (id, isConfirmText, tokenLogin) => {\r\n// if (id === null || id === \"\" || id === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(\r\n// `/api/Admin/ConfirmText?id=${id}&isConfirmText=${isConfirmText}`,\r\n// \"POST\",\r\n// null,\r\n// null,\r\n// {\r\n// \"Content-Type\": \"application/json\",\r\n// Authorization: `Bearer ${tokenLogin?.accessToken}`,\r\n// }\r\n// ).then((res) => {\r\n// if (res.status === 200) GetConfrimLaw();\r\n// });\r\n// };\r\n\r\n// export const GetConfrimLaw = async (id, tokenLogin) => {\r\n// if (id === null || id === \"\" || id === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(`/api/Admin/GetConfirmLaw?id=${id}`, \"GET\", null, null, {\r\n// \"Content-Type\": \"application/json\",\r\n// Authorization: `Bearer ${tokenLogin?.accessToken}`,\r\n// }).then((res) => {\r\n// if (res.status === 200) alert(\"عملیات با موفقیت انجام شد \");\r\n// });\r\n// };\r\n// export const FindLawFun = async (id) => {\r\n// if (id === null || id === \"\" || id === undefined)\r\n// return Promise.resolve(null);\r\n// return await callApi(`/api/Admin/GetLaw?id=${id}`, \"GET\", null, null, {\r\n// \"Content-Type\": \"application/json\",\r\n// //Authorization: `Bearer ${tokenLogin?.accessToken}`,\r\n// }).then((res) => {\r\n// if (res.status === 200) alert(\"عملیات با موفقیت انجام شد \");\r\n// });\r\n// };\r\n// .................... view text .....................\r\nexport const getAdvanceSearch = async (\r\n keyWordSearch,\r\n pageSizeAdvance,\r\n pageAdvance,\r\n subjects,\r\n typeFlag,\r\n statusE,\r\n orgs,\r\n orgsId,\r\n ApproveDate,\r\n toApproveDate,\r\n locationsId,\r\n checkedSinoname,\r\n partOfWord,\r\n searchContent,\r\n valueSelector,\r\n isOrder,\r\n // isRevision,\r\n isRepealed,\r\n types,\r\n lawTypeIds\r\n) => {\r\n if (\r\n pageAdvance === null ||\r\n // pageAdvance === \"\" ||\r\n pageAdvance === undefined ||\r\n pageAdvance === NaN\r\n )\r\n return Promise.resolve(null);\r\n return await callApi(\r\n `/api/advsearch/search?search=${keyWordSearch ? keyWordSearch : ''}&size=${\r\n pageSizeAdvance ? pageSizeAdvance : ''\r\n }${pageAdvance === 1 ? '' : '&page=' + pageAdvance}${\r\n subjects && !typeFlag ? '&subjects=' + subjects : ''\r\n }${statusE ? '&statuses=' + statusE : ''}${orgs ? '&orgs=' + orgs : ''}${\r\n orgsId ? '&orgsId=' + orgsId : ''\r\n }&fromDate=${ApproveDate ? ApproveDate : ''}&toDate=${\r\n toApproveDate ? toApproveDate : ''\r\n }&locationsId=${locationsId ? locationsId : ''}${\r\n checkedSinoname ? '&isSynonym=' + checkedSinoname : ''\r\n }${partOfWord ? '&isPartOfWord=' + partOfWord : ''}${\r\n searchContent\r\n ? '&searchContent=' + searchContent\r\n : searchContent == 0\r\n ? '&searchContent=0'\r\n : ''\r\n }${valueSelector ? '&selector=' + valueSelector : ''}${\r\n isOrder ? '&order=' + isOrder : ''\r\n }${\r\n isRepealed != undefined || isRepealed != null\r\n ? isRepealed == true\r\n ? '&isRepealed='\r\n : '&isRepealed=false'\r\n : ''\r\n }${types == undefined ? '' : '&types=' + types}${\r\n lawTypeIds != 0 || lawTypeIds != undefined\r\n ? '&lawTypeIds=' + lawTypeIds\r\n : ''\r\n }${valueSelector == 2 ? '&isStopWord=false' : ''}`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\n\r\nexport const fetchApprovalAuthoritiesAdvanceSearch = async (\r\n pageNumber,\r\n searchText\r\n) => {\r\n if (pageNumber === null || pageNumber === '' || pageNumber === undefined)\r\n return Promise.resolve(null);\r\n return await callApi(\r\n `/api/Data/Orgs?size=50&page=${pageNumber}&search=${searchText}`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\nexport const getSubjectInfo = async (id, infoType) => {\r\n console.log(id, infoType);\r\n return await callApi(\r\n `/api/Subject/SubjectInfo?id=${id}&info=${infoType}`,\r\n 'GET',\r\n null,\r\n null,\r\n {\r\n 'Content-Type': 'application/json',\r\n }\r\n );\r\n};\r\n","import React, { createContext, useContext, useState } from 'react';\r\nimport Cookies from 'js-cookie';\r\nimport { jwtDecode } from 'jwt-decode';\r\nimport { fetchRefreshToken } from '../../components/api/api';\r\n\r\nconst AuthContext = createContext();\r\n\r\nexport const AuthProvider = ({ children }) => {\r\n const [continuee, setContinuee] = useState(true);\r\n const [currentUser, setCurrentUser] = useState(null);\r\n const [currentUserCookie, setCurrentUserCookie] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [pathName, setPathName] = useState(window.location.pathname);\r\n\r\n const [RefreshCaptcha, setRefreshCaptcha] = useState(false);\r\n const [RegisterCaptcha, setRegisterCaptcha] = useState('');\r\n\r\n const [email, setEmail] = useState('');\r\n const [password, setPassword] = useState('');\r\n\r\n const [CookieToken, setCookieToken] = useState(() => {\r\n if (typeof window !== 'undefined') {\r\n const storedValueToken = Cookies.get('token');\r\n return storedValueToken ? JSON.parse(storedValueToken) : '';\r\n } else {\r\n return '';\r\n }\r\n });\r\n // console.log(new Date(Date.now() + 7 * 24 * 60 * 60 * 1000));\r\n\r\n const [tokenLogin, setTokenLogin] = useState(() => {\r\n if (typeof window !== 'undefined') {\r\n // خواندن مقدار اولیه از لوکال استوریج\r\n const storedValueToken = localStorage.getItem('tokenLogin');\r\n const accessTokenNew = JSON.parse(storedValueToken);\r\n // console.log(\"accessTokenNew\", accessTokenNew);\r\n // console.log(\"accessTokenNew.accessToken--->\", accessTokenNew.accessToken);\r\n // console.log(\"storedValueToken\", JSON.parse(storedValueToken));\r\n // اگر مقدار در لوکال استوریج وجود داشته باشد، از آن استفاده کنید. در غیر اینصورت، از مقدار پیشفرض استفاده کنید.\r\n return storedValueToken ? JSON.parse(storedValueToken) : '';\r\n } else {\r\n return '';\r\n }\r\n });\r\n\r\n const isTokenExpired = (tokenProp) => {\r\n try {\r\n const decoded = jwtDecode(tokenProp);\r\n // console.log(\"decoded\", decoded);\r\n if (decoded.exp < Date.now() / 1000) {\r\n return true;\r\n } else return false;\r\n } catch (err) {\r\n return false;\r\n }\r\n };\r\n\r\n const checkEdame = async () => {\r\n if (isTokenExpired(tokenLogin?.accessTokenExpiration)) {\r\n if (isTokenExpired(tokenLogin?.refreshTokenExpiration)) {\r\n setContinuee(true);\r\n\r\n // localStorage.setItem(\"edame\", JSON.stringify(edame));\r\n localStorage.clear();\r\n } else {\r\n // console.log(\"edame with refreshToken\");\r\n\r\n await fetchRefreshToken(tokenLogin?.refreshToken, tokenLogin?.email);\r\n }\r\n } else {\r\n try {\r\n // console.log(\"check edame true \");\r\n // localStorage.setItem(\"edame\", JSON.stringify(edame));\r\n } catch (error) {\r\n console.log('errorFetchAllData222222222222', error);\r\n }\r\n }\r\n };\r\n\r\n const Logout = () => {\r\n localStorage.clear();\r\n document.cookie =\r\n 'token=; Path=/;domain=.ilaws.net; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r\n Cookies.remove('token');\r\n // Cookies.remove('token', {\r\n // domain: window.location.hostname.includes('localhost')\r\n // ? '.localhost'\r\n // : '.ilaws.net',\r\n // path: '/',\r\n // });\r\n setCurrentUser(null);\r\n setLoading(false);\r\n window.location.assign(`${pathName === '/login' ? '/' : pathName}`);\r\n };\r\n const GetLocalEdame = () => {\r\n if (process.env.REACT_APP_EDAME == 'false') {\r\n // console.log(\"tokenLogin.accessToken=========>\", tokenLogin.accessToken);\r\n if (\r\n typeof window !== 'undefined' &&\r\n isTokenExpired(tokenLogin?.accessToken)\r\n ) {\r\n // console.log(\"trueeeeeeeeeeeee1111111111111111111111\");\r\n let edame = localStorage.getItem('edame');\r\n // console.log(\"edame12345\", edame);\r\n if (edame) {\r\n return JSON.parse(localStorage.getItem('edame'));\r\n } else {\r\n return false;\r\n }\r\n // return true;\r\n } else {\r\n // console.log(\"trueeeeeeeeeeeee222222222222222222222222\");\r\n let edame = localStorage.getItem('edame');\r\n // console.log(\"edame98765\", edame);\r\n // console.log(\r\n // \"tokenLogin.accessToken-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->>>>>>>\",\r\n // tokenLogin.accessToken,\r\n // );\r\n if (edame) {\r\n // console.log(\"test,test,test,test,test,test,test,test,\");\r\n return JSON.parse(localStorage.getItem('edame'));\r\n } else {\r\n // console.log(\r\n // \"test false,test false,test false,test false,test false,\",\r\n // );\r\n return false;\r\n }\r\n localStorage.clear();\r\n // return false;\r\n }\r\n } else {\r\n // console.log(\"first\", process.env.REACT_APP_EDAME);\r\n // console.log(\"trueeeeeeeeeeeee\");\r\n return true;\r\n }\r\n };\r\n\r\n const getLocalStorager = () => {\r\n if (typeof window !== 'undefined' && window.localStorage) {\r\n let list = localStorage.getItem('list');\r\n if (list && list !== `undefined`) {\r\n return JSON.parse(localStorage.getItem('list'));\r\n } else {\r\n return [];\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useAuthContext = () => useContext(AuthContext);\r\n","import React, { createContext, useContext, useState } from \"react\";\r\n\r\nconst DataContext = createContext();\r\n\r\nexport const DataProvider = ({ children }) => {\r\n \r\n const [data, setData] = useState({}); // تمام داده‌ها در یک شیء ذخیره می‌شوند.\r\n\r\n\r\n const updateData = (key, value) => {\r\n \r\n setData((prev) => ({\r\n ...prev,\r\n [key]: value, // ذخیره هر API در یک کلید خاص\r\n }));\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useDataContext = () => useContext(DataContext);\r\n","import React, { createContext, useContext, useEffect, useState } from \"react\";\r\nimport Loading from \"../../components/Loding/Loading\";\r\n\r\nconst UIContext = createContext();\r\n\r\nexport const UIProvider = ({ children }) => {\r\n const [loading, setLoading] = useState(false);\r\n const [page, setPage] = useState(1);\r\n const [keyWordSearch, setKeyWordSearch] = useState(\"\");\r\n const [locationsId, setLocationsId] = useState(\"\");\r\n const [swapp, setSwapp] = useState(true);\r\n const [modalVisible, setModalVisible] = useState(false);\r\n const [flag, setFlag] = useState(0);\r\n const [types, setTypes] = useState(\"\");\r\n const [typeFlag, setTypeFlag] = useState(false);\r\n const [statistic, setStatistic] = useState([]);\r\n const [statusE, setStatusE] = useState(\"\");\r\n const [subjects, setSubjects] = useState(\"\");\r\n const [SearchResult, setSearchResult] = useState();\r\n const [pageComprehensiveRules, setPageComprehensiveRules] = useState(1);\r\n const [pageList, setPageList] = useState(0);\r\n const [sectionID, setSectionID] = useState(0);\r\n const [subId, setSubID] = useState(0);\r\n const [pageListCount, setPageListCount] = useState(0);\r\n const [pageCount, setPageCount] = useState(0);\r\n const [savePage, setSavePage] = useState(1);\r\n const [localState, setLocalState] = useState({\r\n MoreViewLaw: false,\r\n MoreViewRegulations: false,\r\n MoreViewVotes: false,\r\n MoreViewOpinions: false,\r\n NewTabLaw: true,\r\n NewTabRegulations: true,\r\n NewTabVotes: true,\r\n NewTabOpinions: true,\r\n });\r\n\r\n const [newInfo, setNewInfo] = useState({\r\n title: \"\",\r\n parentID: null,\r\n definition: \"\",\r\n ordering: 0,\r\n subjectType: 4,\r\n keywords: \"\",\r\n isPublic: true,\r\n });\r\n\r\n if (loading) {\r\n ;\r\n }\r\n\r\n const getLocalStorager = () => {\r\n if (typeof window !== \"undefined\" && window.localStorage) {\r\n let list = localStorage.getItem(\"list\");\r\n if (list && list !== `undefined`) {\r\n return JSON.parse(localStorage.getItem(\"list\"));\r\n } else {\r\n return [];\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setSearchResult(getLocalStorager);\r\n }, []);\r\n const [EditDraftComperhensiveLaw, setEditDraftComperhensiveLaw] = useState({\r\n sectionsAndChaptersId: 0,\r\n IdSubject: 0,\r\n reIdSubject: 0,\r\n sectionid: 0,\r\n });\r\n //setSearchResult(getLocalStorager);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useUIContext = () => useContext(UIContext);\r\n","import { useCallback, useState, useEffect, useRef } from 'react';\r\nimport { useDataContext } from '../context/subContexts/DataContext';\r\nimport { useAuthContext } from '../context/subContexts/AuthContext';\r\n\r\nexport const useApi = (\r\n apiCall,\r\n apiName,\r\n dependencies = [],\r\n dontCallApi,\r\n shouldRefresh\r\n) => {\r\n const { data: storedData, updateData } = useDataContext();\r\n const { setTokenLogin } = useAuthContext();\r\n\r\n // Use useRef to persist data and pending requests across renders\r\n const dataRef = useRef(storedData[apiName]?.data || null);\r\n const pendingRequests = useRef(new Map()); // Local pending requests Map\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(null);\r\n const prevParams = useRef(null);\r\n\r\n const callApi = useCallback(\r\n async (...args) => {\r\n const paramsKey = JSON.stringify(args);\r\n\r\n // Use cached data if available and no refresh is required\r\n if (\r\n storedData[apiName] &&\r\n storedData[apiName]?.params === paramsKey &&\r\n !shouldRefresh\r\n ) {\r\n dataRef.current = storedData[apiName].data; // Update ref synchronously\r\n return;\r\n }\r\n\r\n // Skip if the same API call is already pending\r\n if (pendingRequests.current.has(apiName) && !shouldRefresh) {\r\n return pendingRequests.current.get(apiName);\r\n }\r\n\r\n setLoading(true);\r\n setError(null);\r\n\r\n const apiPromise = (async () => {\r\n try {\r\n const response = await apiCall(...args);\r\n const newData = { data: response, params: paramsKey };\r\n\r\n if (response !== null) {\r\n updateData(apiName, newData);\r\n dataRef.current = response; // Update ref synchronously\r\n }\r\n prevParams.current = paramsKey;\r\n\r\n if (response?.token) {\r\n console.log('response.token', response.token);\r\n\r\n setTokenLogin(response.token);\r\n }\r\n\r\n return response;\r\n } catch (error) {\r\n setError(error);\r\n throw error;\r\n } finally {\r\n setLoading(false);\r\n pendingRequests.current.delete(apiName); // Clean up pending request\r\n }\r\n })();\r\n\r\n pendingRequests.current.set(apiName, apiPromise); // Track pending request\r\n return apiPromise;\r\n },\r\n [apiCall, apiName, storedData, shouldRefresh, updateData, setTokenLogin]\r\n );\r\n\r\n useEffect(() => {\r\n // Initialize dataRef.current if it's null\r\n if (dataRef.current === null && storedData[apiName]?.data) {\r\n dataRef.current = storedData[apiName].data;\r\n }\r\n\r\n const paramsKey = JSON.stringify(dependencies);\r\n if (dontCallApi) return;\r\n\r\n // Skip if dependencies are invalid\r\n if (\r\n !dependencies ||\r\n dependencies.some((dep) => dep === null || dep === undefined)\r\n ) {\r\n return;\r\n }\r\n\r\n // Call API if params change or refresh is required\r\n if (prevParams.current !== paramsKey || shouldRefresh) {\r\n prevParams.current = paramsKey;\r\n callApi(...dependencies);\r\n }\r\n }, [\r\n callApi,\r\n dontCallApi,\r\n shouldRefresh,\r\n ...dependencies,\r\n storedData,\r\n apiName,\r\n ]);\r\n\r\n return { data: dataRef.current, loading, error, callApi };\r\n};\r\n","import { useEffect } from \"react\";\r\nimport { useApi } from \"./useApi\"; // هوک API\r\nimport {\r\n fetchLaw,\r\n fetchRefreshToken,\r\n fetchMogharare,\r\n fetchRay,\r\n fetchComment,\r\n fetchReportStatistic,\r\n} from \"./../components/api/api\"; // فانکشن‌های API\r\nimport { useDataContext } from \"../context/subContexts/DataContext\";\r\nimport { useAuthContext } from \"../context/subContexts/AuthContext\";\r\nimport { jwtDecode } from \"jwt-decode\";\r\n\r\nexport const useCheckToken = () => {\r\n const { continuee, setContinuee,tokenLogin,email } = useAuthContext();\r\n\r\n const { callApi: callApiLaw } = useApi(fetchLaw,\"fetchLaw\",[]);\r\n const { callApi: callApiRefToken } = useApi(fetchRefreshToken,\"fetchRefreshToken\",[],true);\r\n const { callApi: callApiMogharare } = useApi(fetchMogharare,\"fetchMogharare\",[]);\r\n const { callApi: callApiFetchRay } = useApi(fetchRay,\"fetchRay\",[]);\r\n const { callApi: callApiFetchComment } = useApi(fetchComment,\"fetchComment\",[]);\r\n //const { callApi: callApiFetchReportStatistic } = useApi(fetchReportStatistic);\r\n\r\n const isTokenExpired = (tokenProp) => {\r\n try {\r\n const decoded = jwtDecode(tokenProp);\r\n if (decoded.exp < Date.now() / 1000) {\r\n return true;\r\n } else return false;\r\n } catch (err) {\r\n return false;\r\n }\r\n };\r\n const checkContinue = () => {\r\n if (isTokenExpired(tokenLogin?.accessTokenExpiration)) {\r\n if (isTokenExpired(tokenLogin?.refreshTokenExpiration)) {\r\n setContinuee(true);\r\n \r\n // localStorage.setItem(\"edame\", JSON.stringify(edame));\r\n localStorage.clear();\r\n } else {\r\n // console.log(\"edame with refreshToken\");\r\n \r\n callApiRefToken(tokenLogin,email);\r\n }\r\n } else {\r\n try {\r\n // console.log(\"check edame true \");\r\n // localStorage.setItem(\"edame\", JSON.stringify(edame));\r\n } catch (error) {\r\n console.log(\"errorFetchAllData222222222222\", error);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!tokenLogin || !tokenLogin.accessToken) return;\r\n console.log(\"success\");\r\n\r\n if (isTokenExpired(tokenLogin?.accessTokenExpiration)) {\r\n if (isTokenExpired(tokenLogin?.refreshTokenExpiration)) {\r\n setContinuee(true);\r\n // localStorage.setItem(\"edame\", JSON.stringify(false));\r\n localStorage.clear();\r\n } else {\r\n callApiRefToken();\r\n }\r\n } else {\r\n try {\r\n callApiLaw();\r\n callApiMogharare();\r\n callApiFetchRay();\r\n callApiFetchComment();\r\n //callApiFetchReportStatistic();\r\n // fetchSub()\r\n } catch (error) {\r\n console.log(\"errorFetchAllData\", error);\r\n }\r\n }\r\n }, [tokenLogin, continuee]);\r\n return {checkContinue}\r\n};\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: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(\n (m) =>\n m.route.loader &&\n m.route.loader.hydrate !== true &&\n ((loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined))\n );\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","// src/index.tsx\nimport React3, { Component as Component3 } from \"react\";\nimport fastCompare from \"react-fast-compare\";\nimport invariant from \"invariant\";\n\n// src/Provider.tsx\nimport React2, { Component } from \"react\";\n\n// src/server.ts\nimport React from \"react\";\n\n// src/constants.ts\nvar TAG_NAMES = /* @__PURE__ */ ((TAG_NAMES2) => {\n TAG_NAMES2[\"BASE\"] = \"base\";\n TAG_NAMES2[\"BODY\"] = \"body\";\n TAG_NAMES2[\"HEAD\"] = \"head\";\n TAG_NAMES2[\"HTML\"] = \"html\";\n TAG_NAMES2[\"LINK\"] = \"link\";\n TAG_NAMES2[\"META\"] = \"meta\";\n TAG_NAMES2[\"NOSCRIPT\"] = \"noscript\";\n TAG_NAMES2[\"SCRIPT\"] = \"script\";\n TAG_NAMES2[\"STYLE\"] = \"style\";\n TAG_NAMES2[\"TITLE\"] = \"title\";\n TAG_NAMES2[\"FRAGMENT\"] = \"Symbol(react.fragment)\";\n return TAG_NAMES2;\n})(TAG_NAMES || {});\nvar SEO_PRIORITY_TAGS = {\n link: { rel: [\"amphtml\", \"canonical\", \"alternate\"] },\n script: { type: [\"application/ld+json\"] },\n meta: {\n charset: \"\",\n name: [\"generator\", \"robots\", \"description\"],\n property: [\n \"og:type\",\n \"og:title\",\n \"og:url\",\n \"og:image\",\n \"og:image:alt\",\n \"og:description\",\n \"twitter:url\",\n \"twitter:title\",\n \"twitter:description\",\n \"twitter:image\",\n \"twitter:image:alt\",\n \"twitter:card\",\n \"twitter:site\"\n ]\n }\n};\nvar VALID_TAG_NAMES = Object.values(TAG_NAMES);\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HTML_TAG_MAP = Object.entries(REACT_TAG_MAP).reduce(\n (carry, [key, value]) => {\n carry[value] = key;\n return carry;\n },\n {}\n);\nvar HELMET_ATTRIBUTE = \"data-rh\";\n\n// src/utils.ts\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\",\n PRIORITIZE_SEO_TAGS: \"prioritizeSeoTags\"\n};\nvar getInnermostProperty = (propsList, property) => {\n for (let i = propsList.length - 1; i >= 0; i -= 1) {\n const props = propsList[i];\n if (Object.prototype.hasOwnProperty.call(props, property)) {\n return props[property];\n }\n }\n return null;\n};\nvar getTitleFromPropsList = (propsList) => {\n let innermostTitle = getInnermostProperty(propsList, \"title\" /* TITLE */);\n const innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (Array.isArray(innermostTitle)) {\n innermostTitle = innermostTitle.join(\"\");\n }\n if (innermostTemplate && innermostTitle) {\n return innermostTemplate.replace(/%s/g, () => innermostTitle);\n }\n const innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || void 0;\n};\nvar getOnChangeClientState = (propsList) => getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || (() => {\n});\nvar getAttributesFromPropsList = (tagType, propsList) => propsList.filter((props) => typeof props[tagType] !== \"undefined\").map((props) => props[tagType]).reduce((tagAttrs, current) => ({ ...tagAttrs, ...current }), {});\nvar getBaseTagFromPropsList = (primaryAttributes, propsList) => propsList.filter((props) => typeof props[\"base\" /* BASE */] !== \"undefined\").map((props) => props[\"base\" /* BASE */]).reverse().reduce((innermostBaseTag, tag) => {\n if (!innermostBaseTag.length) {\n const keys = Object.keys(tag);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n return innermostBaseTag;\n}, []);\nvar warn = (msg) => console && typeof console.warn === \"function\" && console.warn(msg);\nvar getTagsFromPropsList = (tagName, primaryAttributes, propsList) => {\n const approvedSeenTags = {};\n return propsList.filter((props) => {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\n `Helmet: ${tagName} should be of type \"Array\". Instead found type \"${typeof props[tagName]}\"`\n );\n }\n return false;\n }).map((props) => props[tagName]).reverse().reduce((approvedTags, instanceTags) => {\n const instanceSeenTags = {};\n instanceTags.filter((tag) => {\n let primaryAttributeKey;\n const keys2 = Object.keys(tag);\n for (let i = 0; i < keys2.length; i += 1) {\n const attributeKey = keys2[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === \"rel\" /* REL */ && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === \"rel\" /* REL */ && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === \"innerHTML\" /* INNER_HTML */ || attributeKey === \"cssText\" /* CSS_TEXT */ || attributeKey === \"itemprop\" /* ITEM_PROP */)) {\n primaryAttributeKey = attributeKey;\n }\n }\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n const value = tag[primaryAttributeKey].toLowerCase();\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n return false;\n }).reverse().forEach((tag) => approvedTags.push(tag));\n const keys = Object.keys(instanceSeenTags);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const tagUnion = {\n ...approvedSeenTags[attributeKey],\n ...instanceSeenTags[attributeKey]\n };\n approvedSeenTags[attributeKey] = tagUnion;\n }\n return approvedTags;\n }, []).reverse();\n};\nvar getAnyTrueFromPropsList = (propsList, checkedTag) => {\n if (Array.isArray(propsList) && propsList.length) {\n for (let index = 0; index < propsList.length; index += 1) {\n const prop = propsList[index];\n if (prop[checkedTag]) {\n return true;\n }\n }\n }\n return false;\n};\nvar reducePropsToState = (propsList) => ({\n baseTag: getBaseTagFromPropsList([\"href\" /* HREF */], propsList),\n bodyAttributes: getAttributesFromPropsList(\"bodyAttributes\" /* BODY */, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(\"htmlAttributes\" /* HTML */, propsList),\n linkTags: getTagsFromPropsList(\n \"link\" /* LINK */,\n [\"rel\" /* REL */, \"href\" /* HREF */],\n propsList\n ),\n metaTags: getTagsFromPropsList(\n \"meta\" /* META */,\n [\n \"name\" /* NAME */,\n \"charset\" /* CHARSET */,\n \"http-equiv\" /* HTTPEQUIV */,\n \"property\" /* PROPERTY */,\n \"itemprop\" /* ITEM_PROP */\n ],\n propsList\n ),\n noscriptTags: getTagsFromPropsList(\"noscript\" /* NOSCRIPT */, [\"innerHTML\" /* INNER_HTML */], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(\n \"script\" /* SCRIPT */,\n [\"src\" /* SRC */, \"innerHTML\" /* INNER_HTML */],\n propsList\n ),\n styleTags: getTagsFromPropsList(\"style\" /* STYLE */, [\"cssText\" /* CSS_TEXT */], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(\"titleAttributes\" /* TITLE */, propsList),\n prioritizeSeoTags: getAnyTrueFromPropsList(propsList, HELMET_PROPS.PRIORITIZE_SEO_TAGS)\n});\nvar flattenArray = (possibleArray) => Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\nvar checkIfPropsMatch = (props, toMatch) => {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i += 1) {\n if (toMatch[keys[i]] && toMatch[keys[i]].includes(props[keys[i]])) {\n return true;\n }\n }\n return false;\n};\nvar prioritizer = (elementsList, propsToMatch) => {\n if (Array.isArray(elementsList)) {\n return elementsList.reduce(\n (acc, elementAttrs) => {\n if (checkIfPropsMatch(elementAttrs, propsToMatch)) {\n acc.priority.push(elementAttrs);\n } else {\n acc.default.push(elementAttrs);\n }\n return acc;\n },\n { priority: [], default: [] }\n );\n }\n return { default: elementsList, priority: [] };\n};\nvar without = (obj, key) => {\n return {\n ...obj,\n [key]: void 0\n };\n};\n\n// src/server.ts\nvar SELF_CLOSING_TAGS = [\"noscript\" /* NOSCRIPT */, \"script\" /* SCRIPT */, \"style\" /* STYLE */];\nvar encodeSpecialCharacters = (str, encode = true) => {\n if (encode === false) {\n return String(str);\n }\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\nvar generateElementAttributesAsString = (attributes) => Object.keys(attributes).reduce((str, key) => {\n const attr = typeof attributes[key] !== \"undefined\" ? `${key}=\"${attributes[key]}\"` : `${key}`;\n return str ? `${str} ${attr}` : attr;\n}, \"\");\nvar generateTitleAsString = (type, title, attributes, encode) => {\n const attributeString = generateElementAttributesAsString(attributes);\n const flattenedTitle = flattenArray(title);\n return attributeString ? `<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeString}>${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}` : `<${type} ${HELMET_ATTRIBUTE}=\"true\">${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`;\n};\nvar generateTagsAsString = (type, tags, encode = true) => tags.reduce((str, t) => {\n const tag = t;\n const attributeHtml = Object.keys(tag).filter(\n (attribute) => !(attribute === \"innerHTML\" /* INNER_HTML */ || attribute === \"cssText\" /* CSS_TEXT */)\n ).reduce((string, attribute) => {\n const attr = typeof tag[attribute] === \"undefined\" ? attribute : `${attribute}=\"${encodeSpecialCharacters(tag[attribute], encode)}\"`;\n return string ? `${string} ${attr}` : attr;\n }, \"\");\n const tagContent = tag.innerHTML || tag.cssText || \"\";\n const isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return `${str}<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeHtml}${isSelfClosing ? `/>` : `>${tagContent}`}`;\n}, \"\");\nvar convertElementAttributesToReactProps = (attributes, initProps = {}) => Object.keys(attributes).reduce((obj, key) => {\n const mapped = REACT_TAG_MAP[key];\n obj[mapped || key] = attributes[key];\n return obj;\n}, initProps);\nvar generateTitleAsReactComponent = (_type, title, attributes) => {\n const initProps = {\n key: title,\n [HELMET_ATTRIBUTE]: true\n };\n const props = convertElementAttributesToReactProps(attributes, initProps);\n return [React.createElement(\"title\" /* TITLE */, props, title)];\n};\nvar generateTagsAsReactComponent = (type, tags) => tags.map((tag, i) => {\n const mappedTag = {\n key: i,\n [HELMET_ATTRIBUTE]: true\n };\n Object.keys(tag).forEach((attribute) => {\n const mapped = REACT_TAG_MAP[attribute];\n const mappedAttribute = mapped || attribute;\n if (mappedAttribute === \"innerHTML\" /* INNER_HTML */ || mappedAttribute === \"cssText\" /* CSS_TEXT */) {\n const content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n});\nvar getMethodsForTag = (type, tags, encode = true) => {\n switch (type) {\n case \"title\" /* TITLE */:\n return {\n toComponent: () => generateTitleAsReactComponent(type, tags.title, tags.titleAttributes),\n toString: () => generateTitleAsString(type, tags.title, tags.titleAttributes, encode)\n };\n case \"bodyAttributes\" /* BODY */:\n case \"htmlAttributes\" /* HTML */:\n return {\n toComponent: () => convertElementAttributesToReactProps(tags),\n toString: () => generateElementAttributesAsString(tags)\n };\n default:\n return {\n toComponent: () => generateTagsAsReactComponent(type, tags),\n toString: () => generateTagsAsString(type, tags, encode)\n };\n }\n};\nvar getPriorityMethods = ({ metaTags, linkTags, scriptTags, encode }) => {\n const meta = prioritizer(metaTags, SEO_PRIORITY_TAGS.meta);\n const link = prioritizer(linkTags, SEO_PRIORITY_TAGS.link);\n const script = prioritizer(scriptTags, SEO_PRIORITY_TAGS.script);\n const priorityMethods = {\n toComponent: () => [\n ...generateTagsAsReactComponent(\"meta\" /* META */, meta.priority),\n ...generateTagsAsReactComponent(\"link\" /* LINK */, link.priority),\n ...generateTagsAsReactComponent(\"script\" /* SCRIPT */, script.priority)\n ],\n toString: () => (\n // generate all the tags as strings and concatenate them\n `${getMethodsForTag(\"meta\" /* META */, meta.priority, encode)} ${getMethodsForTag(\n \"link\" /* LINK */,\n link.priority,\n encode\n )} ${getMethodsForTag(\"script\" /* SCRIPT */, script.priority, encode)}`\n )\n };\n return {\n priorityMethods,\n metaTags: meta.default,\n linkTags: link.default,\n scriptTags: script.default\n };\n};\nvar mapStateOnServer = (props) => {\n const {\n baseTag,\n bodyAttributes,\n encode = true,\n htmlAttributes,\n noscriptTags,\n styleTags,\n title = \"\",\n titleAttributes,\n prioritizeSeoTags\n } = props;\n let { linkTags, metaTags, scriptTags } = props;\n let priorityMethods = {\n toComponent: () => {\n },\n toString: () => \"\"\n };\n if (prioritizeSeoTags) {\n ({ priorityMethods, linkTags, metaTags, scriptTags } = getPriorityMethods(props));\n }\n return {\n priority: priorityMethods,\n base: getMethodsForTag(\"base\" /* BASE */, baseTag, encode),\n bodyAttributes: getMethodsForTag(\"bodyAttributes\" /* BODY */, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(\"htmlAttributes\" /* HTML */, htmlAttributes, encode),\n link: getMethodsForTag(\"link\" /* LINK */, linkTags, encode),\n meta: getMethodsForTag(\"meta\" /* META */, metaTags, encode),\n noscript: getMethodsForTag(\"noscript\" /* NOSCRIPT */, noscriptTags, encode),\n script: getMethodsForTag(\"script\" /* SCRIPT */, scriptTags, encode),\n style: getMethodsForTag(\"style\" /* STYLE */, styleTags, encode),\n title: getMethodsForTag(\"title\" /* TITLE */, { title, titleAttributes }, encode)\n };\n};\nvar server_default = mapStateOnServer;\n\n// src/HelmetData.ts\nvar instances = [];\nvar isDocument = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar HelmetData = class {\n instances = [];\n canUseDOM = isDocument;\n context;\n value = {\n setHelmet: (serverState) => {\n this.context.helmet = serverState;\n },\n helmetInstances: {\n get: () => this.canUseDOM ? instances : this.instances,\n add: (instance) => {\n (this.canUseDOM ? instances : this.instances).push(instance);\n },\n remove: (instance) => {\n const index = (this.canUseDOM ? instances : this.instances).indexOf(instance);\n (this.canUseDOM ? instances : this.instances).splice(index, 1);\n }\n }\n };\n constructor(context, canUseDOM) {\n this.context = context;\n this.canUseDOM = canUseDOM || false;\n if (!canUseDOM) {\n context.helmet = server_default({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n }\n};\n\n// src/Provider.tsx\nvar defaultValue = {};\nvar Context = React2.createContext(defaultValue);\nvar HelmetProvider = class _HelmetProvider extends Component {\n static canUseDOM = isDocument;\n helmetData;\n constructor(props) {\n super(props);\n this.helmetData = new HelmetData(this.props.context || {}, _HelmetProvider.canUseDOM);\n }\n render() {\n return /* @__PURE__ */ React2.createElement(Context.Provider, { value: this.helmetData.value }, this.props.children);\n }\n};\n\n// src/Dispatcher.tsx\nimport { Component as Component2 } from \"react\";\nimport shallowEqual from \"shallowequal\";\n\n// src/client.ts\nvar updateTags = (type, tags) => {\n const headElement = document.head || document.querySelector(\"head\" /* HEAD */);\n const tagNodes = headElement.querySelectorAll(`${type}[${HELMET_ATTRIBUTE}]`);\n const oldTags = [].slice.call(tagNodes);\n const newTags = [];\n let indexToDelete;\n if (tags && tags.length) {\n tags.forEach((tag) => {\n const newElement = document.createElement(type);\n for (const attribute in tag) {\n if (Object.prototype.hasOwnProperty.call(tag, attribute)) {\n if (attribute === \"innerHTML\" /* INNER_HTML */) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === \"cssText\" /* CSS_TEXT */) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n const attr = attribute;\n const value = typeof tag[attr] === \"undefined\" ? \"\" : tag[attr];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n if (oldTags.some((existingTag, index) => {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n oldTags.forEach((tag) => tag.parentNode?.removeChild(tag));\n newTags.forEach((tag) => headElement.appendChild(tag));\n return {\n oldTags,\n newTags\n };\n};\nvar updateAttributes = (tagName, attributes) => {\n const elementTag = document.getElementsByTagName(tagName)[0];\n if (!elementTag) {\n return;\n }\n const helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n const helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n const attributesToRemove = [...helmetAttributes];\n const attributeKeys = Object.keys(attributes);\n for (const attribute of attributeKeys) {\n const value = attributes[attribute] || \"\";\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n const indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n for (let i = attributesToRemove.length - 1; i >= 0; i -= 1) {\n elementTag.removeAttribute(attributesToRemove[i]);\n }\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\nvar updateTitle = (title, attributes) => {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n updateAttributes(\"title\" /* TITLE */, attributes);\n};\nvar commitTagChanges = (newState, cb) => {\n const {\n baseTag,\n bodyAttributes,\n htmlAttributes,\n linkTags,\n metaTags,\n noscriptTags,\n onChangeClientState,\n scriptTags,\n styleTags,\n title,\n titleAttributes\n } = newState;\n updateAttributes(\"body\" /* BODY */, bodyAttributes);\n updateAttributes(\"html\" /* HTML */, htmlAttributes);\n updateTitle(title, titleAttributes);\n const tagUpdates = {\n baseTag: updateTags(\"base\" /* BASE */, baseTag),\n linkTags: updateTags(\"link\" /* LINK */, linkTags),\n metaTags: updateTags(\"meta\" /* META */, metaTags),\n noscriptTags: updateTags(\"noscript\" /* NOSCRIPT */, noscriptTags),\n scriptTags: updateTags(\"script\" /* SCRIPT */, scriptTags),\n styleTags: updateTags(\"style\" /* STYLE */, styleTags)\n };\n const addedTags = {};\n const removedTags = {};\n Object.keys(tagUpdates).forEach((tagType) => {\n const { newTags, oldTags } = tagUpdates[tagType];\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n if (cb) {\n cb();\n }\n onChangeClientState(newState, addedTags, removedTags);\n};\nvar _helmetCallback = null;\nvar handleStateChangeOnClient = (newState) => {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(() => {\n commitTagChanges(newState, () => {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\nvar client_default = handleStateChangeOnClient;\n\n// src/Dispatcher.tsx\nvar HelmetDispatcher = class extends Component2 {\n rendered = false;\n shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n }\n componentDidUpdate() {\n this.emitChange();\n }\n componentWillUnmount() {\n const { helmetInstances } = this.props.context;\n helmetInstances.remove(this);\n this.emitChange();\n }\n emitChange() {\n const { helmetInstances, setHelmet } = this.props.context;\n let serverState = null;\n const state = reducePropsToState(\n helmetInstances.get().map((instance) => {\n const props = { ...instance.props };\n delete props.context;\n return props;\n })\n );\n if (HelmetProvider.canUseDOM) {\n client_default(state);\n } else if (server_default) {\n serverState = server_default(state);\n }\n setHelmet(serverState);\n }\n // componentWillMount will be deprecated\n // for SSR, initialize on first render\n // constructor is also unsafe in StrictMode\n init() {\n if (this.rendered) {\n return;\n }\n this.rendered = true;\n const { helmetInstances } = this.props.context;\n helmetInstances.add(this);\n this.emitChange();\n }\n render() {\n this.init();\n return null;\n }\n};\n\n// src/index.tsx\nvar Helmet = class extends Component3 {\n static defaultProps = {\n defer: true,\n encodeSpecialCharacters: true,\n prioritizeSeoTags: false\n };\n shouldComponentUpdate(nextProps) {\n return !fastCompare(without(this.props, \"helmetData\"), without(nextProps, \"helmetData\"));\n }\n mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n switch (child.type) {\n case \"script\" /* SCRIPT */:\n case \"noscript\" /* NOSCRIPT */:\n return {\n innerHTML: nestedChildren\n };\n case \"style\" /* STYLE */:\n return {\n cssText: nestedChildren\n };\n default:\n throw new Error(\n `<${child.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`\n );\n }\n }\n flattenArrayTypeChildren(child, arrayTypeChildren, newChildProps, nestedChildren) {\n return {\n ...arrayTypeChildren,\n [child.type]: [\n ...arrayTypeChildren[child.type] || [],\n {\n ...newChildProps,\n ...this.mapNestedChildrenToProps(child, nestedChildren)\n }\n ]\n };\n }\n mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren) {\n switch (child.type) {\n case \"title\" /* TITLE */:\n return {\n ...newProps,\n [child.type]: nestedChildren,\n titleAttributes: { ...newChildProps }\n };\n case \"body\" /* BODY */:\n return {\n ...newProps,\n bodyAttributes: { ...newChildProps }\n };\n case \"html\" /* HTML */:\n return {\n ...newProps,\n htmlAttributes: { ...newChildProps }\n };\n default:\n return {\n ...newProps,\n [child.type]: { ...newChildProps }\n };\n }\n }\n mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n let newFlattenedProps = { ...newProps };\n Object.keys(arrayTypeChildren).forEach((arrayChildName) => {\n newFlattenedProps = {\n ...newFlattenedProps,\n [arrayChildName]: arrayTypeChildren[arrayChildName]\n };\n });\n return newFlattenedProps;\n }\n warnOnInvalidChildren(child, nestedChildren) {\n invariant(\n VALID_TAG_NAMES.some((name) => child.type === name),\n typeof child.type === \"function\" ? `You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.` : `Only elements types ${VALID_TAG_NAMES.join(\n \", \"\n )} are allowed. Helmet does not support rendering <${child.type}> elements. Refer to our API for more information.`\n );\n invariant(\n !nestedChildren || typeof nestedChildren === \"string\" || Array.isArray(nestedChildren) && !nestedChildren.some((nestedChild) => typeof nestedChild !== \"string\"),\n `Helmet expects a string as a child of <${child.type}>. Did you forget to wrap your children in braces? ( <${child.type}>{\\`\\`} ) Refer to our API for more information.`\n );\n return true;\n }\n mapChildrenToProps(children, newProps) {\n let arrayTypeChildren = {};\n React3.Children.forEach(children, (child) => {\n if (!child || !child.props) {\n return;\n }\n const { children: nestedChildren, ...childProps } = child.props;\n const newChildProps = Object.keys(childProps).reduce((obj, key) => {\n obj[HTML_TAG_MAP[key] || key] = childProps[key];\n return obj;\n }, {});\n let { type } = child;\n if (typeof type === \"symbol\") {\n type = type.toString();\n } else {\n this.warnOnInvalidChildren(child, nestedChildren);\n }\n switch (type) {\n case \"Symbol(react.fragment)\" /* FRAGMENT */:\n newProps = this.mapChildrenToProps(nestedChildren, newProps);\n break;\n case \"link\" /* LINK */:\n case \"meta\" /* META */:\n case \"noscript\" /* NOSCRIPT */:\n case \"script\" /* SCRIPT */:\n case \"style\" /* STYLE */:\n arrayTypeChildren = this.flattenArrayTypeChildren(\n child,\n arrayTypeChildren,\n newChildProps,\n nestedChildren\n );\n break;\n default:\n newProps = this.mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren);\n break;\n }\n });\n return this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n }\n render() {\n const { children, ...props } = this.props;\n let newProps = { ...props };\n let { helmetData } = props;\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n if (helmetData && !(helmetData instanceof HelmetData)) {\n const data = helmetData;\n helmetData = new HelmetData(data.context, true);\n delete newProps.helmetData;\n }\n return helmetData ? /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context: helmetData.value }) : /* @__PURE__ */ React3.createElement(Context.Consumer, null, (context) => /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context }));\n }\n};\nexport {\n Helmet,\n HelmetData,\n HelmetProvider\n};\n","// TYPES\n// FUNCTIONS\nvar logger = console;\nexport function getLogger() {\n return logger;\n}\nexport function setLogger(newLogger) {\n logger = newLogger;\n}","import { scheduleMicrotask } from './utils'; // TYPES\n\n// CLASS\nexport var NotifyManager = /*#__PURE__*/function () {\n function NotifyManager() {\n this.queue = [];\n this.transactions = 0;\n\n this.notifyFn = function (callback) {\n callback();\n };\n\n this.batchNotifyFn = function (callback) {\n callback();\n };\n }\n\n var _proto = NotifyManager.prototype;\n\n _proto.batch = function batch(callback) {\n var result;\n this.transactions++;\n\n try {\n result = callback();\n } finally {\n this.transactions--;\n\n if (!this.transactions) {\n this.flush();\n }\n }\n\n return result;\n };\n\n _proto.schedule = function schedule(callback) {\n var _this = this;\n\n if (this.transactions) {\n this.queue.push(callback);\n } else {\n scheduleMicrotask(function () {\n _this.notifyFn(callback);\n });\n }\n }\n /**\n * All calls to the wrapped function will be batched.\n */\n ;\n\n _proto.batchCalls = function batchCalls(callback) {\n var _this2 = this;\n\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2.schedule(function () {\n callback.apply(void 0, args);\n });\n };\n };\n\n _proto.flush = function flush() {\n var _this3 = this;\n\n var queue = this.queue;\n this.queue = [];\n\n if (queue.length) {\n scheduleMicrotask(function () {\n _this3.batchNotifyFn(function () {\n queue.forEach(function (callback) {\n _this3.notifyFn(callback);\n });\n });\n });\n }\n }\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n ;\n\n _proto.setNotifyFunction = function setNotifyFunction(fn) {\n this.notifyFn = fn;\n }\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n ;\n\n _proto.setBatchNotifyFunction = function setBatchNotifyFunction(fn) {\n this.batchNotifyFn = fn;\n };\n\n return NotifyManager;\n}(); // SINGLETON\n\nexport var notifyManager = new NotifyManager();","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export var Subscribable = /*#__PURE__*/function () {\n function Subscribable() {\n this.listeners = [];\n }\n\n var _proto = Subscribable.prototype;\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n var callback = listener || function () {\n return undefined;\n };\n\n this.listeners.push(callback);\n this.onSubscribe();\n return function () {\n _this.listeners = _this.listeners.filter(function (x) {\n return x !== callback;\n });\n\n _this.onUnsubscribe();\n };\n };\n\n _proto.hasListeners = function hasListeners() {\n return this.listeners.length > 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var FocusManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(FocusManager, _Subscribable);\n\n function FocusManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onFocus) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onFocus();\n }; // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = FocusManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (focused) {\n if (typeof focused === 'boolean') {\n _this2.setFocused(focused);\n } else {\n _this2.onFocus();\n }\n });\n };\n\n _proto.setFocused = function setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n };\n\n _proto.onFocus = function onFocus() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isFocused = function isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n };\n\n return FocusManager;\n}(Subscribable);\nexport var focusManager = new FocusManager();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var OnlineManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(OnlineManager, _Subscribable);\n\n function OnlineManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onOnline) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onOnline();\n }; // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = OnlineManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (online) {\n if (typeof online === 'boolean') {\n _this2.setOnline(online);\n } else {\n _this2.onOnline();\n }\n });\n };\n\n _proto.setOnline = function setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n };\n\n _proto.onOnline = function onOnline() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isOnline = function isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n };\n\n return OnlineManager;\n}(Subscribable);\nexport var onlineManager = new OnlineManager();","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getAbortController, functionalUpdate, isValidTimeout, noop, replaceEqualDeep, timeUntilStale, ensureQueryKeyArray } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { getLogger } from './logger';\nimport { Retryer, isCancelledError } from './retryer'; // TYPES\n\n// CLASS\nexport var Query = /*#__PURE__*/function () {\n function Query(config) {\n this.abortSignalConsumed = false;\n this.hadObservers = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || this.getDefaultState(this.options);\n this.state = this.initialState;\n this.meta = config.meta;\n this.scheduleGc();\n }\n\n var _proto = Query.prototype;\n\n _proto.setOptions = function setOptions(options) {\n var _this$options$cacheTi;\n\n this.options = _extends({}, this.defaultOptions, options);\n this.meta = options == null ? void 0 : options.meta; // Default to 5 minutes if not cache time is set\n\n this.cacheTime = Math.max(this.cacheTime || 0, (_this$options$cacheTi = this.options.cacheTime) != null ? _this$options$cacheTi : 5 * 60 * 1000);\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.scheduleGc = function scheduleGc() {\n var _this = this;\n\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(function () {\n _this.optionalRemove();\n }, this.cacheTime);\n }\n };\n\n _proto.clearGcTimeout = function clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n };\n\n _proto.optionalRemove = function optionalRemove() {\n if (!this.observers.length) {\n if (this.state.isFetching) {\n if (this.hadObservers) {\n this.scheduleGc();\n }\n } else {\n this.cache.remove(this);\n }\n }\n };\n\n _proto.setData = function setData(updater, options) {\n var _this$options$isDataE, _this$options;\n\n var prevData = this.state.data; // Get the new data\n\n var data = functionalUpdate(updater, prevData); // Use prev data if an isDataEqual function is defined and returns `true`\n\n if ((_this$options$isDataE = (_this$options = this.options).isDataEqual) == null ? void 0 : _this$options$isDataE.call(_this$options, prevData, data)) {\n data = prevData;\n } else if (this.options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n data = replaceEqualDeep(prevData, data);\n } // Set data and mark it as cached\n\n\n this.dispatch({\n data: data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt\n });\n return data;\n };\n\n _proto.setState = function setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state: state,\n setStateOptions: setStateOptions\n });\n };\n\n _proto.cancel = function cancel(options) {\n var _this$retryer;\n\n var promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n };\n\n _proto.destroy = function destroy() {\n this.clearGcTimeout();\n this.cancel({\n silent: true\n });\n };\n\n _proto.reset = function reset() {\n this.destroy();\n this.setState(this.initialState);\n };\n\n _proto.isActive = function isActive() {\n return this.observers.some(function (observer) {\n return observer.options.enabled !== false;\n });\n };\n\n _proto.isFetching = function isFetching() {\n return this.state.isFetching;\n };\n\n _proto.isStale = function isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(function (observer) {\n return observer.getCurrentResult().isStale;\n });\n };\n\n _proto.isStaleByTime = function isStaleByTime(staleTime) {\n if (staleTime === void 0) {\n staleTime = 0;\n }\n\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n };\n\n _proto.onFocus = function onFocus() {\n var _this$retryer2;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnWindowFocus();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n };\n\n _proto.onOnline = function onOnline() {\n var _this$retryer3;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnReconnect();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n this.hadObservers = true; // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.retryer.isTransportCancelable || this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n if (this.cacheTime) {\n this.scheduleGc();\n } else {\n this.cache.remove(this);\n }\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.getObserversCount = function getObserversCount() {\n return this.observers.length;\n };\n\n _proto.invalidate = function invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n };\n\n _proto.fetch = function fetch(options, fetchOptions) {\n var _this2 = this,\n _this$options$behavio,\n _context$fetchOptions,\n _abortController$abor;\n\n if (this.state.isFetching) {\n if (this.state.dataUpdatedAt && (fetchOptions == null ? void 0 : fetchOptions.cancelRefetch)) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n var observer = this.observers.find(function (x) {\n return x.options.queryFn;\n });\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n var queryKey = ensureQueryKeyArray(this.queryKey);\n var abortController = getAbortController(); // Create query function context\n\n var queryFnContext = {\n queryKey: queryKey,\n pageParam: undefined,\n meta: this.meta\n };\n Object.defineProperty(queryFnContext, 'signal', {\n enumerable: true,\n get: function get() {\n if (abortController) {\n _this2.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n }); // Create fetch function\n\n var fetchFn = function fetchFn() {\n if (!_this2.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n _this2.abortSignalConsumed = false;\n return _this2.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n var context = {\n fetchOptions: fetchOptions,\n options: this.options,\n queryKey: queryKey,\n state: this.state,\n fetchFn: fetchFn,\n meta: this.meta\n };\n\n if ((_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch) {\n var _this$options$behavio2;\n\n (_this$options$behavio2 = this.options.behavior) == null ? void 0 : _this$options$behavio2.onFetch(context);\n } // Store state in case the current fetch needs to be reverted\n\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (!this.state.isFetching || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n } // Try to fetch the data\n\n\n this.retryer = new Retryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : (_abortController$abor = abortController.abort) == null ? void 0 : _abortController$abor.bind(abortController),\n onSuccess: function onSuccess(data) {\n _this2.setData(data); // Notify cache callback\n\n\n _this2.cache.config.onSuccess == null ? void 0 : _this2.cache.config.onSuccess(data, _this2); // Remove query after fetching if cache time is 0\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onError: function onError(error) {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n _this2.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n _this2.cache.config.onError == null ? void 0 : _this2.cache.config.onError(error, _this2); // Log error\n\n getLogger().error(error);\n } // Remove query after fetching if cache time is 0\n\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay\n });\n this.promise = this.retryer.promise;\n return this.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = this.reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onQueryUpdate(action);\n });\n\n _this3.cache.notify({\n query: _this3,\n type: 'queryUpdated',\n action: action\n });\n });\n };\n\n _proto.getDefaultState = function getDefaultState(options) {\n var data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n var hasInitialData = typeof options.initialData !== 'undefined';\n var initialDataUpdatedAt = hasInitialData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n var hasData = typeof data !== 'undefined';\n return {\n data: data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchMeta: null,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: hasData ? 'success' : 'idle'\n };\n };\n\n _proto.reducer = function reducer(state, action) {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n fetchFailureCount: state.fetchFailureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'fetch':\n return _extends({}, state, {\n fetchFailureCount: 0,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n isFetching: true,\n isPaused: false\n }, !state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n fetchFailureCount: 0,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: 'success'\n });\n\n case 'error':\n var error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return _extends({}, this.revertState);\n }\n\n return _extends({}, state, {\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n isFetching: false,\n isPaused: false,\n status: 'error'\n });\n\n case 'invalidate':\n return _extends({}, state, {\n isInvalidated: true\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n };\n\n return Query;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils';\nimport { Query } from './query';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var QueryCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryCache, _Subscribable);\n\n function QueryCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.queries = [];\n _this.queriesMap = {};\n return _this;\n }\n\n var _proto = QueryCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var _options$queryHash;\n\n var queryKey = options.queryKey;\n var queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n var query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey: queryKey,\n queryHash: queryHash,\n options: client.defaultQueryOptions(options),\n state: state,\n defaultOptions: client.getQueryDefaults(queryKey),\n meta: options.meta\n });\n this.add(query);\n }\n\n return query;\n };\n\n _proto.add = function add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'queryAdded',\n query: query\n });\n }\n };\n\n _proto.remove = function remove(query) {\n var queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(function (x) {\n return x !== query;\n });\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'queryRemoved',\n query: query\n });\n }\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.queries.forEach(function (query) {\n _this2.remove(query);\n });\n });\n };\n\n _proto.get = function get(queryHash) {\n return this.queriesMap[queryHash];\n };\n\n _proto.getAll = function getAll() {\n return this.queries;\n };\n\n _proto.find = function find(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(function (query) {\n return matchQuery(filters, query);\n });\n };\n\n _proto.findAll = function findAll(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n return Object.keys(filters).length > 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n}","import ReactDOM from 'react-dom';\nexport var unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;","import { notifyManager } from '../core';\nimport { unstable_batchedUpdates } from './reactBatchedUpdates';\nnotifyManager.setBatchNotifyFunction(unstable_batchedUpdates);","export var logger = console;","import { setLogger } from '../core';\nimport { logger } from './logger';\nsetLogger(logger);","import React from 'react';\nvar defaultContext = /*#__PURE__*/React.createContext(undefined);\nvar QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(contextSharing) {\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nexport var useQueryClient = function useQueryClient() {\n var queryClient = React.useContext(getQueryClientContext(React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nexport var QueryClientProvider = function QueryClientProvider(_ref) {\n var client = _ref.client,\n _ref$contextSharing = _ref.contextSharing,\n contextSharing = _ref$contextSharing === void 0 ? false : _ref$contextSharing,\n children = _ref.children;\n React.useEffect(function () {\n client.mount();\n return function () {\n client.unmount();\n };\n }, [client]);\n var Context = getQueryClientContext(contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\nexport interface SubmitOptions {\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 * 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 * 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 * 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 navigation's state updates\n */\n unstable_flushSync?: 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