react-router-dom-v5-compat
Advanced tools
Comparing version 0.0.0-experimental-5bedc168 to 0.0.0-experimental-5df42afed
# `react-router-dom-v5-compat` | ||
## 6.25.1 | ||
### Patch Changes | ||
- Updated dependencies: | ||
- `react-router-dom@6.25.1` | ||
- `react-router@6.25.1` | ||
## 6.25.0 | ||
### Patch Changes | ||
- Updated dependencies: | ||
- `react-router@6.25.0` | ||
- `@remix-run/router@1.18.0` | ||
- `react-router-dom@6.25.0` | ||
## 6.24.1 | ||
### Patch Changes | ||
- Updated dependencies: | ||
- `react-router-dom@6.24.1` | ||
- `@remix-run/router@1.17.1` | ||
- `react-router@6.24.1` | ||
## 6.24.0 | ||
### Patch Changes | ||
- Allow falsy `location.state` values passed to `<StaticRouter>` ([#11495](https://github.com/remix-run/react-router/pull/11495)) | ||
- Updated dependencies: | ||
- `react-router-dom@6.24.0` | ||
- `react-router@6.24.0` | ||
- `@remix-run/router@1.17.0` | ||
## 6.23.1 | ||
### Patch Changes | ||
- Updated dependencies: | ||
- `@remix-run/router@1.16.1` | ||
- `react-router-dom@6.23.1` | ||
- `react-router@6.23.1` | ||
## 6.23.0 | ||
### Minor Changes | ||
- Add a new `unstable_dataStrategy` configuration option ([#11098](https://github.com/remix-run/react-router/pull/11098)) | ||
- This option allows Data Router applications to take control over the approach for executing route loaders and actions | ||
- The default implementation is today's behavior, to fetch all loaders in parallel, but this option allows users to implement more advanced data flows including Remix single-fetch, middleware/context APIs, automatic loader caching, and more | ||
### Patch Changes | ||
- Updated dependencies: | ||
- `@remix-run/router@1.16.0` | ||
- `react-router@6.23.0` | ||
- `react-router-dom@6.23.0` | ||
## 6.22.3 | ||
### Patch Changes | ||
- Updated dependencies: | ||
- `react-router@6.22.3` | ||
- `react-router-dom@6.22.3` | ||
## 6.22.2 | ||
### Patch Changes | ||
- Updated dependencies: | ||
- `react-router@6.22.2` | ||
- `react-router-dom@6.22.2` | ||
## 6.22.1 | ||
### Patch Changes | ||
- Updated dependencies: | ||
- `react-router@6.22.1` | ||
- `react-router-dom@6.22.1` | ||
## 6.22.0 | ||
@@ -4,0 +88,0 @@ |
@@ -49,5 +49,5 @@ /** | ||
*/ | ||
export type { ActionFunction, ActionFunctionArgs, AwaitProps, BrowserRouterProps, DataStrategyFunction, DataStrategyFunctionArgs, DataStrategyMatch, DataRouteMatch, DataRouteObject, DecodedResponse, ErrorResponse, Fetcher, FetcherWithComponents, FormEncType, FormMethod, FormProps, FutureConfig, GetScrollRestorationKeyFunction, Hash, HashRouterProps, HistoryRouterProps, IndexRouteObject, IndexRouteProps, JsonFunction, LayoutRouteProps, LinkProps, LoaderFunction, LoaderFunctionArgs, Location, MemoryRouterProps, NavLinkProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, NonIndexRouteObject, OutletProps, ParamKeyValuePair, ParamParseKey, Params, Path, PathMatch, PathParam, PathPattern, PathRouteProps, Pathname, RedirectFunction, RelativeRoutingType, RouteMatch, RouteObject, RouteProps, RouterProps, RouterProviderProps, RoutesProps, ScrollRestorationProps, Search, ShouldRevalidateFunction, ShouldRevalidateFunctionArgs, SubmitFunction, SubmitOptions, To, URLSearchParamsInit, UIMatch, Blocker, BlockerFunction, } from "./react-router-dom"; | ||
export { AbortedDeferredError, Await, BrowserRouter, Form, HashRouter, Link, MemoryRouter, NavLink, Navigate, NavigationType, Outlet, Route, Router, RouterProvider, Routes, ScrollRestoration, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, createSearchParams, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, unstable_HistoryRouter, useBlocker, unstable_usePrompt, useActionData, useAsyncError, useAsyncValue, useBeforeUnload, useFetcher, useFetchers, useFormAction, useHref, useInRouterContext, useLinkClickHandler, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, useSearchParams, useSubmit, } from "./react-router-dom"; | ||
export type { ActionFunction, ActionFunctionArgs, AwaitProps, BrowserRouterProps, unstable_DataStrategyFunction, unstable_DataStrategyFunctionArgs, unstable_DataStrategyMatch, DataRouteMatch, DataRouteObject, ErrorResponse, Fetcher, FetcherWithComponents, FormEncType, FormMethod, FormProps, FutureConfig, GetScrollRestorationKeyFunction, Hash, HashRouterProps, HistoryRouterProps, IndexRouteObject, IndexRouteProps, JsonFunction, LayoutRouteProps, LinkProps, LoaderFunction, LoaderFunctionArgs, Location, MemoryRouterProps, NavLinkProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, NonIndexRouteObject, OutletProps, ParamKeyValuePair, ParamParseKey, Params, Path, PathMatch, PathParam, PathPattern, PathRouteProps, Pathname, RedirectFunction, RelativeRoutingType, RouteMatch, RouteObject, RouteProps, RouterProps, RouterProviderProps, RoutesProps, ScrollRestorationProps, Search, ShouldRevalidateFunction, ShouldRevalidateFunctionArgs, SubmitFunction, SubmitOptions, To, URLSearchParamsInit, UIMatch, Blocker, BlockerFunction, unstable_HandlerResult, } from "./react-router-dom"; | ||
export { AbortedDeferredError, Await, BrowserRouter, Form, HashRouter, Link, MemoryRouter, NavLink, Navigate, NavigationType, Outlet, Route, Router, RouterProvider, Routes, ScrollRestoration, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, createSearchParams, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, renderMatches, resolvePath, unstable_HistoryRouter, useBlocker, unstable_usePrompt, useActionData, useAsyncError, useAsyncValue, useBeforeUnload, useFetcher, useFetchers, useFormAction, useHref, useInRouterContext, useLinkClickHandler, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, useSearchParams, useSubmit, } from "./react-router-dom"; | ||
export type { StaticRouterProps } from "./lib/components"; | ||
export { CompatRoute, CompatRouter, StaticRouter } from "./lib/components"; |
/** | ||
* React Router DOM v5 Compat v0.0.0-experimental-5bedc168 | ||
* React Router DOM v5 Compat v0.0.0-experimental-5df42afed | ||
* | ||
@@ -14,3 +14,3 @@ * Copyright (c) Remix Software Inc. | ||
import { UNSAFE_mapRouteProperties, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, useBlocker, Routes, Route } from 'react-router'; | ||
export { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router'; | ||
export { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, replace, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router'; | ||
import { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths, IDLE_FETCHER, matchPath } from '@remix-run/router'; | ||
@@ -244,2 +244,3 @@ import { parsePath, Action, createPath as createPath$1 } from 'history'; | ||
unstable_dataStrategy: opts == null ? void 0 : opts.unstable_dataStrategy, | ||
unstable_patchRoutesOnMiss: opts == null ? void 0 : opts.unstable_patchRoutesOnMiss, | ||
window: opts == null ? void 0 : opts.window | ||
@@ -261,2 +262,3 @@ }).initialize(); | ||
unstable_dataStrategy: opts == null ? void 0 : opts.unstable_dataStrategy, | ||
unstable_patchRoutesOnMiss: opts == null ? void 0 : opts.unstable_patchRoutesOnMiss, | ||
window: opts == null ? void 0 : opts.window | ||
@@ -428,3 +430,3 @@ }).initialize(); | ||
}); | ||
let isViewTransitionUnavailable = router.window == null || typeof router.window.document.startViewTransition !== "function"; | ||
let isViewTransitionUnavailable = router.window == null || router.window.document == null || typeof router.window.document.startViewTransition !== "function"; | ||
// If this isn't a view transition or it's not available in this browser, | ||
@@ -577,2 +579,5 @@ // just update and be done with it | ||
}), [router, navigator, basename]); | ||
let routerFuture = React.useMemo(() => ({ | ||
v7_relativeSplatPath: router.future.v7_relativeSplatPath | ||
}), [router.future.v7_relativeSplatPath]); | ||
// The fragment and {null} here are important! We need them to keep React 18's | ||
@@ -597,6 +602,4 @@ // useId happy when we are server-rendering since we may have a <script> here | ||
navigator: navigator, | ||
future: { | ||
v7_relativeSplatPath: router.future.v7_relativeSplatPath | ||
} | ||
}, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(DataRoutes, { | ||
future: routerFuture | ||
}, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(MemoizedDataRoutes, { | ||
routes: router.routes, | ||
@@ -607,2 +610,4 @@ future: router.future, | ||
} | ||
// Memoize to avoid re-renders when updating `ViewTransitionContext` | ||
const MemoizedDataRoutes = /*#__PURE__*/React.memo(DataRoutes); | ||
function DataRoutes(_ref3) { | ||
@@ -1027,3 +1032,3 @@ let { | ||
function useSearchParams(defaultInit) { | ||
process.env.NODE_ENV !== "production" ? UNSAFE_warning(typeof URLSearchParams !== "undefined", "You cannot use the `useSearchParams` hook in a browser that does not " + "support the URLSearchParams API. If you need to support Internet " + "Explorer 11, we recommend you load a polyfill such as " + "https://github.com/ungap/url-search-params\n\n" + "If you're unsure how to load polyfills, we recommend you check out " + "https://polyfill.io/v3/ which provides some recommendations about how " + "to load polyfills only for users that need them, instead of for every " + "user.") : void 0; | ||
process.env.NODE_ENV !== "production" ? UNSAFE_warning(typeof URLSearchParams !== "undefined", "You cannot use the `useSearchParams` hook in a browser that does not " + "support the URLSearchParams API. If you need to support Internet " + "Explorer 11, we recommend you load a polyfill such as " + "https://github.com/ungap/url-search-params.") : void 0; | ||
let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit)); | ||
@@ -1514,3 +1519,3 @@ let hasSetSearchParamsRef = React.useRef(false); | ||
hash: locationProp.hash || "", | ||
state: locationProp.state || null, | ||
state: locationProp.state != null ? locationProp.state : null, | ||
key: locationProp.key || "default" | ||
@@ -1517,0 +1522,0 @@ }; |
/** | ||
* React Router DOM v5 Compat v0.0.0-experimental-5bedc168 | ||
* React Router DOM v5 Compat v0.0.0-experimental-5df42afed | ||
* | ||
@@ -4,0 +4,0 @@ * Copyright (c) Remix Software Inc. |
@@ -43,3 +43,6 @@ import type { FormEncType, HTMLFormMethod, RelativeRoutingType } from "@remix-run/router"; | ||
export type SubmitTarget = HTMLFormElement | HTMLButtonElement | HTMLInputElement | FormData | URLSearchParams | JsonValue | null; | ||
export interface SubmitOptions { | ||
/** | ||
* Submit options shared by both navigations and fetchers | ||
*/ | ||
interface SharedSubmitOptions { | ||
/** | ||
@@ -61,10 +64,27 @@ * The HTTP method used to submit the form. Overrides `<form method>`. | ||
/** | ||
* Indicate a specific fetcherKey to use when using navigate=false | ||
* Determines whether the form action is relative to the route hierarchy or | ||
* the pathname. Use this if you want to opt out of navigating the route | ||
* hierarchy and want to instead route based on /-delimited URL segments | ||
*/ | ||
fetcherKey?: string; | ||
relative?: RelativeRoutingType; | ||
/** | ||
* navigate=false will use a fetcher instead of a navigation | ||
* In browser-based environments, prevent resetting scroll after this | ||
* navigation when using the <ScrollRestoration> component | ||
*/ | ||
navigate?: boolean; | ||
preventScrollReset?: boolean; | ||
/** | ||
* Enable flushSync for this submission's state updates | ||
*/ | ||
unstable_flushSync?: boolean; | ||
} | ||
/** | ||
* Submit options available to fetchers | ||
*/ | ||
export interface FetcherSubmitOptions extends SharedSubmitOptions { | ||
} | ||
/** | ||
* Submit options available to navigations | ||
*/ | ||
export interface SubmitOptions extends FetcherSubmitOptions { | ||
/** | ||
* Set `true` to replace the current entry in the browser's history stack | ||
@@ -80,17 +100,10 @@ * instead of creating a new one (i.e. stay on "the same page"). Defaults | ||
/** | ||
* Determines whether the form action is relative to the route hierarchy or | ||
* the pathname. Use this if you want to opt out of navigating the route | ||
* hierarchy and want to instead route based on /-delimited URL segments | ||
* Indicate a specific fetcherKey to use when using navigate=false | ||
*/ | ||
relative?: RelativeRoutingType; | ||
fetcherKey?: string; | ||
/** | ||
* In browser-based environments, prevent resetting scroll after this | ||
* navigation when using the <ScrollRestoration> component | ||
* navigate=false will use a fetcher instead of a navigation | ||
*/ | ||
preventScrollReset?: boolean; | ||
navigate?: boolean; | ||
/** | ||
* Enable flushSync for this navigation's state updates | ||
*/ | ||
unstable_flushSync?: boolean; | ||
/** | ||
* Enable view transitions on this submission navigation | ||
@@ -97,0 +110,0 @@ */ |
@@ -6,11 +6,11 @@ /** | ||
import * as React from "react"; | ||
import type { FutureConfig, Location, NavigateOptions, RelativeRoutingType, RouteObject, RouterProviderProps, To } from "react-router"; | ||
import type { DataStrategyFunction, DataStrategyFunctionArgs, DataStrategyMatch, Fetcher, FormEncType, FormMethod, FutureConfig as RouterFutureConfig, GetScrollRestorationKeyFunction, History, HTMLFormMethod, HydrationState, Router as RemixRouter, V7_FormMethod, BlockerFunction } from "@remix-run/router"; | ||
import type { FutureConfig, Location, NavigateOptions, RelativeRoutingType, RouteObject, RouterProviderProps, To, unstable_PatchRoutesOnMissFunction } from "react-router"; | ||
import type { unstable_DataStrategyFunction, unstable_DataStrategyFunctionArgs, unstable_DataStrategyMatch, Fetcher, FormEncType, FormMethod, FutureConfig as RouterFutureConfig, GetScrollRestorationKeyFunction, History, HTMLFormMethod, HydrationState, Router as RemixRouter, V7_FormMethod, BlockerFunction } from "@remix-run/router"; | ||
import { UNSAFE_ErrorResponseImpl as ErrorResponseImpl } from "@remix-run/router"; | ||
import type { SubmitOptions, ParamKeyValuePair, URLSearchParamsInit, SubmitTarget } from "./dom"; | ||
import type { SubmitOptions, ParamKeyValuePair, URLSearchParamsInit, SubmitTarget, FetcherSubmitOptions } from "./dom"; | ||
import { createSearchParams } from "./dom"; | ||
export type { DataStrategyFunction, DataStrategyFunctionArgs, DataStrategyMatch, FormEncType, FormMethod, GetScrollRestorationKeyFunction, ParamKeyValuePair, SubmitOptions, URLSearchParamsInit, V7_FormMethod, }; | ||
export type { unstable_DataStrategyFunction, unstable_DataStrategyFunctionArgs, unstable_DataStrategyMatch, FormEncType, FormMethod, GetScrollRestorationKeyFunction, ParamKeyValuePair, SubmitOptions, URLSearchParamsInit, V7_FormMethod, }; | ||
export { createSearchParams, ErrorResponseImpl as UNSAFE_ErrorResponseImpl }; | ||
export type { ActionFunction, ActionFunctionArgs, AwaitProps, Blocker, BlockerFunction, DataRouteMatch, DataRouteObject, DecodedResponse, ErrorResponse, Fetcher, FutureConfig, Hash, IndexRouteObject, IndexRouteProps, JsonFunction, LazyRouteFunction, LayoutRouteProps, LoaderFunction, LoaderFunctionArgs, Location, MemoryRouterProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, NonIndexRouteObject, OutletProps, Params, ParamParseKey, Path, PathMatch, Pathname, PathParam, PathPattern, PathRouteProps, RedirectFunction, RelativeRoutingType, RouteMatch, RouteObject, RouteProps, RouterProps, RouterProviderProps, RoutesProps, Search, ShouldRevalidateFunction, ShouldRevalidateFunctionArgs, To, UIMatch, } from "react-router"; | ||
export { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, isRouteErrorResponse, generatePath, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, } from "react-router"; | ||
export type { ActionFunction, ActionFunctionArgs, AwaitProps, Blocker, BlockerFunction, DataRouteMatch, DataRouteObject, ErrorResponse, Fetcher, FutureConfig, Hash, IndexRouteObject, IndexRouteProps, JsonFunction, LazyRouteFunction, LayoutRouteProps, LoaderFunction, LoaderFunctionArgs, Location, MemoryRouterProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, NonIndexRouteObject, OutletProps, Params, ParamParseKey, Path, PathMatch, Pathname, PathParam, PathPattern, PathRouteProps, RedirectFunction, RelativeRoutingType, RouteMatch, RouteObject, RouteProps, RouterProps, RouterProviderProps, RoutesProps, Search, ShouldRevalidateFunction, ShouldRevalidateFunctionArgs, To, UIMatch, unstable_HandlerResult, unstable_PatchRoutesOnMissFunction, } from "react-router"; | ||
export { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, isRouteErrorResponse, generatePath, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, } from "react-router"; | ||
/** @internal */ | ||
@@ -29,3 +29,4 @@ export { UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_NavigationContext, UNSAFE_LocationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, } from "react-router"; | ||
hydrationData?: HydrationState; | ||
unstable_dataStrategy?: DataStrategyFunction; | ||
unstable_dataStrategy?: unstable_DataStrategyFunction; | ||
unstable_patchRoutesOnMiss?: unstable_PatchRoutesOnMissFunction; | ||
window?: Window; | ||
@@ -109,3 +110,3 @@ } | ||
export declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>; | ||
type NavLinkRenderProps = { | ||
export type NavLinkRenderProps = { | ||
isActive: boolean; | ||
@@ -126,3 +127,6 @@ isPending: boolean; | ||
export declare const NavLink: React.ForwardRefExoticComponent<NavLinkProps & React.RefAttributes<HTMLAnchorElement>>; | ||
export interface FetcherFormProps extends React.FormHTMLAttributes<HTMLFormElement> { | ||
/** | ||
* Form props shared by navigations and fetchers | ||
*/ | ||
interface SharedFormProps extends React.FormHTMLAttributes<HTMLFormElement> { | ||
/** | ||
@@ -159,3 +163,11 @@ * The HTTP verb to use when the form is submit. Supports "get", "post", | ||
} | ||
export interface FormProps extends FetcherFormProps { | ||
/** | ||
* Form props available to fetchers | ||
*/ | ||
export interface FetcherFormProps extends SharedFormProps { | ||
} | ||
/** | ||
* Form props available to navigations | ||
*/ | ||
export interface FormProps extends SharedFormProps { | ||
/** | ||
@@ -250,3 +262,3 @@ * Indicate a specific fetcherKey to use when using navigate=false | ||
export interface FetcherSubmitFunction { | ||
(target: SubmitTarget, options?: Omit<SubmitOptions, "replace" | "state">): void; | ||
(target: SubmitTarget, options?: FetcherSubmitOptions): void; | ||
} | ||
@@ -253,0 +265,0 @@ /** |
/** | ||
* React Router DOM v5 Compat v0.0.0-experimental-5bedc168 | ||
* React Router DOM v5 Compat v0.0.0-experimental-5df42afed | ||
* | ||
@@ -11,3 +11,3 @@ * Copyright (c) Remix Software Inc. | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom"),require("react-router"),require("@remix-run/router"),require("history"),require("react-router-dom")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","react-router","@remix-run/router","history","react-router-dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouterDOMv5Compat={},e.React,e.ReactDOM,e.ReactRouter,e.RemixRouter,e.HistoryLibrary,e.ReactRouterDOM)}(this,(function(e,t,n,r,o,a,i){"use strict";function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var s=u(t),c=u(n);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}function f(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}const d="get",m="application/x-www-form-urlencoded";function p(e){return null!=e&&"string"==typeof e.tagName}function h(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map((e=>[n,e])):[[n,r]])}),[]))}let b=null;const v=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function y(e){return null==e||v.has(e)?e:null}function g(e,t){let n,r,a,i,u;if(p(s=e)&&"form"===s.tagName.toLowerCase()){let u=e.getAttribute("action");r=u?o.stripBasename(u,t):null,n=e.getAttribute("method")||d,a=y(e.getAttribute("enctype"))||m,i=new FormData(e)}else if(function(e){return p(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return p(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let u=e.form;if(null==u)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||u.getAttribute("action");if(r=s?o.stripBasename(s,t):null,n=e.getAttribute("formmethod")||u.getAttribute("method")||d,a=y(e.getAttribute("formenctype"))||y(u.getAttribute("enctype"))||m,i=new FormData(u,e),!function(){if(null===b)try{new FormData(document.createElement("form"),0),b=!1}catch(e){b=!0}return b}()){let{name:t,type:n,value:r}=e;if("image"===n){let e=t?t+".":"";i.append(e+"x","0"),i.append(e+"y","0")}else t&&i.append(t,r)}}else{if(p(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=d,r=null,a=m,u=e}var s;return i&&"text/plain"===a&&(u=i,i=void 0),{action:r,method:n.toLowerCase(),encType:a,formData:i,body:u}}const w=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],R=["aria-current","caseSensitive","className","end","style","to","unstable_viewTransition","children"],S=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","unstable_viewTransition"];try{window.__reactRouterVersion="0"}catch(e){}function E(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=l({},t,{errors:P(t.errors)})),t}function P(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&"RouteErrorResponse"===r.__type)n[e]=new o.UNSAFE_ErrorResponseImpl(r.status,r.statusText,r.data,!0===r.internal);else if(r&&"Error"===r.__type){if(r.__subType){let t=window[r.__subType];if("function"==typeof t)try{let o=new t(r.message);o.stack="",n[e]=o}catch(e){}}if(null==n[e]){let t=new Error(r.message);t.stack="",n[e]=t}}else n[e]=r;return n}const _=s.createContext({isTransitioning:!1}),O=s.createContext(new Map),C=s.startTransition,L=c.flushSync,j=s.useId;function x(e){L?L(e):e()}class A{constructor(){this.status="pending",this.promise=new Promise(((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}}))}}function N(e){let{routes:t,future:n,state:o}=e;return r.UNSAFE_useRoutesImpl(t,void 0,o,n)}const T="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,F=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,U=s.forwardRef((function(e,t){let n,{onClick:a,relative:i,reloadDocument:u,replace:c,state:d,target:m,to:p,preventScrollReset:h,unstable_viewTransition:b}=e,v=f(e,w),{basename:y}=s.useContext(r.UNSAFE_NavigationContext),g=!1;if("string"==typeof p&&F.test(p)&&(n=p,T))try{let e=new URL(window.location.href),t=p.startsWith("//")?new URL(e.protocol+p):new URL(p),n=o.stripBasename(t.pathname,y);t.origin===e.origin&&null!=n?p=n+t.search+t.hash:g=!0}catch(e){}let R=r.useHref(p,{relative:i}),S=I(p,{replace:c,state:d,target:m,preventScrollReset:h,relative:i,unstable_viewTransition:b});return s.createElement("a",l({},v,{href:n||R,onClick:g||u?a:function(e){a&&a(e),e.defaultPrevented||S(e)},ref:t,target:m}))})),D=s.forwardRef((function(e,t){let{"aria-current":n="page",caseSensitive:a=!1,className:i="",end:u=!1,style:c,to:d,unstable_viewTransition:m,children:p}=e,h=f(e,R),b=r.useResolvedPath(d,{relative:h.relative}),v=r.useLocation(),y=s.useContext(r.UNSAFE_DataRouterStateContext),{navigator:g,basename:w}=s.useContext(r.UNSAFE_NavigationContext),S=null!=y&&function(e,t){void 0===t&&(t={});let n=s.useContext(_);null==n&&o.UNSAFE_invariant(!1);let{basename:a}=B(M.useViewTransitionState),i=r.useResolvedPath(e,{relative:t.relative});if(!n.isTransitioning)return!1;let u=o.stripBasename(n.currentLocation.pathname,a)||n.currentLocation.pathname,c=o.stripBasename(n.nextLocation.pathname,a)||n.nextLocation.pathname;return null!=o.matchPath(i.pathname,c)||null!=o.matchPath(i.pathname,u)}(b)&&!0===m,E=g.encodeLocation?g.encodeLocation(b).pathname:b.pathname,P=v.pathname,O=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;a||(P=P.toLowerCase(),O=O?O.toLowerCase():null,E=E.toLowerCase()),O&&w&&(O=o.stripBasename(O,w)||O);const C="/"!==E&&E.endsWith("/")?E.length-1:E.length;let L,j=P===E||!u&&P.startsWith(E)&&"/"===P.charAt(C),x=null!=O&&(O===E||!u&&O.startsWith(E)&&"/"===O.charAt(E.length)),A={isActive:j,isPending:x,isTransitioning:S},N=j?n:void 0;L="function"==typeof i?i(A):[i,j?"active":null,x?"pending":null,S?"transitioning":null].filter(Boolean).join(" ");let T="function"==typeof c?c(A):c;return s.createElement(U,l({},h,{"aria-current":N,className:L,ref:t,style:T,to:d,unstable_viewTransition:m}),"function"==typeof p?p(A):p)})),k=s.forwardRef(((e,t)=>{let{fetcherKey:n,navigate:r,reloadDocument:o,replace:a,state:i,method:u=d,action:c,onSubmit:m,relative:p,preventScrollReset:h,unstable_viewTransition:b}=e,v=f(e,S),y=Y(),g=q(c,{relative:p}),w="get"===u.toLowerCase()?"get":"post";return s.createElement("form",l({ref:t,method:w,action:g,onSubmit:o?m:e=>{if(m&&m(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,o=(null==t?void 0:t.getAttribute("formmethod"))||u;y(t||e.currentTarget,{fetcherKey:n,method:o,navigate:r,replace:a,state:i,relative:p,preventScrollReset:h,unstable_viewTransition:b})}},v))}));var M=function(e){return e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState",e}(M||{}),H=function(e){return e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration",e}(H||{});function B(e){let t=s.useContext(r.UNSAFE_DataRouterContext);return t||o.UNSAFE_invariant(!1),t}function K(e){let t=s.useContext(r.UNSAFE_DataRouterStateContext);return t||o.UNSAFE_invariant(!1),t}function I(e,t){let{target:n,replace:o,state:a,preventScrollReset:i,relative:u,unstable_viewTransition:c}=void 0===t?{}:t,l=r.useNavigate(),f=r.useLocation(),d=r.useResolvedPath(e,{relative:u});return s.useCallback((t=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(t,n)){t.preventDefault();let n=void 0!==o?o:r.createPath(f)===r.createPath(d);l(e,{replace:n,state:a,preventScrollReset:i,relative:u,unstable_viewTransition:c})}}),[f,l,d,o,a,n,e,i,u,c])}let V=0,z=()=>"__"+String(++V)+"__";function Y(){let{router:e}=B(M.UseSubmit),{basename:t}=s.useContext(r.UNSAFE_NavigationContext),n=r.UNSAFE_useRouteId();return s.useCallback((function(r,o){void 0===o&&(o={}),function(){if("undefined"==typeof document)throw new Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.")}();let{action:a,method:i,encType:u,formData:s,body:c}=g(r,t);if(!1===o.navigate){let t=o.fetcherKey||z();e.fetch(t,n,o.action||a,{preventScrollReset:o.preventScrollReset,formData:s,body:c,formMethod:o.method||i,formEncType:o.encType||u,unstable_flushSync:o.unstable_flushSync})}else e.navigate(o.action||a,{preventScrollReset:o.preventScrollReset,formData:s,body:c,formMethod:o.method||i,formEncType:o.encType||u,replace:o.replace,state:o.state,fromRouteId:n,unstable_flushSync:o.unstable_flushSync,unstable_viewTransition:o.unstable_viewTransition})}),[e,t,n])}function q(e,t){let{relative:n}=void 0===t?{}:t,{basename:a}=s.useContext(r.UNSAFE_NavigationContext),i=s.useContext(r.UNSAFE_RouteContext);i||o.UNSAFE_invariant(!1);let[u]=i.matches.slice(-1),c=l({},r.useResolvedPath(e||".",{relative:n})),f=r.useLocation();if(null==e){c.search=f.search;let e=new URLSearchParams(c.search);e.has("index")&&""===e.get("index")&&(e.delete("index"),c.search=e.toString()?"?"+e.toString():"")}return e&&"."!==e||!u.route.index||(c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index"),"/"!==a&&(c.pathname="/"===c.pathname?a:o.joinPaths([a,c.pathname])),r.createPath(c)}const J="react-router-scroll-positions";let W={};function $(e){let{getKey:t,storageKey:n}=void 0===e?{}:e,{router:a}=B(M.UseScrollRestoration),{restoreScrollPosition:i,preventScrollReset:u}=K(H.UseScrollRestoration),{basename:c}=s.useContext(r.UNSAFE_NavigationContext),f=r.useLocation(),d=r.useMatches(),m=r.useNavigation();s.useEffect((()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"})),[]),function(e,t){let{capture:n}=t||{};s.useEffect((()=>{let t=null!=n?{capture:n}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}}),[e,n])}(s.useCallback((()=>{if("idle"===m.state){let e=(t?t(f,d):null)||f.key;W[e]=window.scrollY}try{sessionStorage.setItem(n||J,JSON.stringify(W))}catch(e){}window.history.scrollRestoration="auto"}),[n,t,m.state,f,d])),"undefined"!=typeof document&&(s.useLayoutEffect((()=>{try{let e=sessionStorage.getItem(n||J);e&&(W=JSON.parse(e))}catch(e){}}),[n]),s.useLayoutEffect((()=>{let e=t&&"/"!==c?(e,n)=>t(l({},e,{pathname:o.stripBasename(e.pathname,c)||e.pathname}),n):t,n=null==a?void 0:a.enableScrollRestoration(W,(()=>window.scrollY),e);return()=>n&&n()}),[a,c,t]),s.useLayoutEffect((()=>{if(!1!==i)if("number"!=typeof i){if(f.hash){let e=document.getElementById(decodeURIComponent(f.hash.slice(1)));if(e)return void e.scrollIntoView()}!0!==u&&window.scrollTo(0,0)}else window.scrollTo(0,i)}),[f,i,u]))}const G=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?s.useLayoutEffect:()=>{};const Q=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;Object.defineProperty(e,"AbortedDeferredError",{enumerable:!0,get:function(){return r.AbortedDeferredError}}),Object.defineProperty(e,"Await",{enumerable:!0,get:function(){return r.Await}}),Object.defineProperty(e,"MemoryRouter",{enumerable:!0,get:function(){return r.MemoryRouter}}),Object.defineProperty(e,"Navigate",{enumerable:!0,get:function(){return r.Navigate}}),Object.defineProperty(e,"NavigationType",{enumerable:!0,get:function(){return r.NavigationType}}),Object.defineProperty(e,"Outlet",{enumerable:!0,get:function(){return r.Outlet}}),Object.defineProperty(e,"Route",{enumerable:!0,get:function(){return r.Route}}),Object.defineProperty(e,"Router",{enumerable:!0,get:function(){return r.Router}}),Object.defineProperty(e,"Routes",{enumerable:!0,get:function(){return r.Routes}}),Object.defineProperty(e,"UNSAFE_DataRouterContext",{enumerable:!0,get:function(){return r.UNSAFE_DataRouterContext}}),Object.defineProperty(e,"UNSAFE_DataRouterStateContext",{enumerable:!0,get:function(){return r.UNSAFE_DataRouterStateContext}}),Object.defineProperty(e,"UNSAFE_LocationContext",{enumerable:!0,get:function(){return r.UNSAFE_LocationContext}}),Object.defineProperty(e,"UNSAFE_NavigationContext",{enumerable:!0,get:function(){return r.UNSAFE_NavigationContext}}),Object.defineProperty(e,"UNSAFE_RouteContext",{enumerable:!0,get:function(){return r.UNSAFE_RouteContext}}),Object.defineProperty(e,"UNSAFE_useRouteId",{enumerable:!0,get:function(){return r.UNSAFE_useRouteId}}),Object.defineProperty(e,"createMemoryRouter",{enumerable:!0,get:function(){return r.createMemoryRouter}}),Object.defineProperty(e,"createPath",{enumerable:!0,get:function(){return r.createPath}}),Object.defineProperty(e,"createRoutesFromChildren",{enumerable:!0,get:function(){return r.createRoutesFromChildren}}),Object.defineProperty(e,"createRoutesFromElements",{enumerable:!0,get:function(){return r.createRoutesFromElements}}),Object.defineProperty(e,"defer",{enumerable:!0,get:function(){return r.defer}}),Object.defineProperty(e,"generatePath",{enumerable:!0,get:function(){return r.generatePath}}),Object.defineProperty(e,"isRouteErrorResponse",{enumerable:!0,get:function(){return r.isRouteErrorResponse}}),Object.defineProperty(e,"json",{enumerable:!0,get:function(){return r.json}}),Object.defineProperty(e,"matchPath",{enumerable:!0,get:function(){return r.matchPath}}),Object.defineProperty(e,"matchRoutes",{enumerable:!0,get:function(){return r.matchRoutes}}),Object.defineProperty(e,"parsePath",{enumerable:!0,get:function(){return r.parsePath}}),Object.defineProperty(e,"redirect",{enumerable:!0,get:function(){return r.redirect}}),Object.defineProperty(e,"redirectDocument",{enumerable:!0,get:function(){return r.redirectDocument}}),Object.defineProperty(e,"renderMatches",{enumerable:!0,get:function(){return r.renderMatches}}),Object.defineProperty(e,"resolvePath",{enumerable:!0,get:function(){return r.resolvePath}}),Object.defineProperty(e,"useActionData",{enumerable:!0,get:function(){return r.useActionData}}),Object.defineProperty(e,"useAsyncError",{enumerable:!0,get:function(){return r.useAsyncError}}),Object.defineProperty(e,"useAsyncValue",{enumerable:!0,get:function(){return r.useAsyncValue}}),Object.defineProperty(e,"useBlocker",{enumerable:!0,get:function(){return r.useBlocker}}),Object.defineProperty(e,"useHref",{enumerable:!0,get:function(){return r.useHref}}),Object.defineProperty(e,"useInRouterContext",{enumerable:!0,get:function(){return r.useInRouterContext}}),Object.defineProperty(e,"useLoaderData",{enumerable:!0,get:function(){return r.useLoaderData}}),Object.defineProperty(e,"useLocation",{enumerable:!0,get:function(){return r.useLocation}}),Object.defineProperty(e,"useMatch",{enumerable:!0,get:function(){return r.useMatch}}),Object.defineProperty(e,"useMatches",{enumerable:!0,get:function(){return r.useMatches}}),Object.defineProperty(e,"useNavigate",{enumerable:!0,get:function(){return r.useNavigate}}),Object.defineProperty(e,"useNavigation",{enumerable:!0,get:function(){return r.useNavigation}}),Object.defineProperty(e,"useNavigationType",{enumerable:!0,get:function(){return r.useNavigationType}}),Object.defineProperty(e,"useOutlet",{enumerable:!0,get:function(){return r.useOutlet}}),Object.defineProperty(e,"useOutletContext",{enumerable:!0,get:function(){return r.useOutletContext}}),Object.defineProperty(e,"useParams",{enumerable:!0,get:function(){return r.useParams}}),Object.defineProperty(e,"useResolvedPath",{enumerable:!0,get:function(){return r.useResolvedPath}}),Object.defineProperty(e,"useRevalidator",{enumerable:!0,get:function(){return r.useRevalidator}}),Object.defineProperty(e,"useRouteError",{enumerable:!0,get:function(){return r.useRouteError}}),Object.defineProperty(e,"useRouteLoaderData",{enumerable:!0,get:function(){return r.useRouteLoaderData}}),Object.defineProperty(e,"useRoutes",{enumerable:!0,get:function(){return r.useRoutes}}),e.BrowserRouter=function(e){let{basename:t,children:n,future:a,window:i}=e,u=s.useRef();null==u.current&&(u.current=o.createBrowserHistory({window:i,v5Compat:!0}));let c=u.current,[l,f]=s.useState({action:c.action,location:c.location}),{v7_startTransition:d}=a||{},m=s.useCallback((e=>{d&&C?C((()=>f(e))):f(e)}),[f,d]);return s.useLayoutEffect((()=>c.listen(m)),[c,m]),s.createElement(r.Router,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:c,future:a})},e.CompatRoute=function(e){let{location:t,path:n}=e;return e.exact||(n+="/*"),s.createElement(r.Routes,{location:t},s.createElement(r.Route,{path:n,element:s.createElement(i.Route,e)}))},e.CompatRouter=function(e){let{children:t}=e,n=i.useHistory(),[o,a]=s.useState((()=>({location:n.location,action:n.action})));return G((()=>{n.listen(((e,t)=>a({location:e,action:t})))}),[n]),s.createElement(r.Router,{navigationType:o.action,location:o.location,navigator:n},s.createElement(r.Routes,null,s.createElement(r.Route,{path:"*",element:t})))},e.Form=k,e.HashRouter=function(e){let{basename:t,children:n,future:a,window:i}=e,u=s.useRef();null==u.current&&(u.current=o.createHashHistory({window:i,v5Compat:!0}));let c=u.current,[l,f]=s.useState({action:c.action,location:c.location}),{v7_startTransition:d}=a||{},m=s.useCallback((e=>{d&&C?C((()=>f(e))):f(e)}),[f,d]);return s.useLayoutEffect((()=>c.listen(m)),[c,m]),s.createElement(r.Router,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:c,future:a})},e.Link=U,e.NavLink=D,e.RouterProvider=function(e){let{fallbackElement:t,router:n,future:o}=e,[a,i]=s.useState(n.state),[u,c]=s.useState(),[l,f]=s.useState({isTransitioning:!1}),[d,m]=s.useState(),[p,h]=s.useState(),[b,v]=s.useState(),y=s.useRef(new Map),{v7_startTransition:g}=o||{},w=s.useCallback((e=>{g?function(e){C?C(e):e()}(e):e()}),[g]),R=s.useCallback(((e,t)=>{let{deletedFetchers:r,unstable_flushSync:o,unstable_viewTransitionOpts:a}=t;r.forEach((e=>y.current.delete(e))),e.fetchers.forEach(((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)}));let u=null==n.window||"function"!=typeof n.window.document.startViewTransition;if(a&&!u){if(o){x((()=>{p&&(d&&d.resolve(),p.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:a.currentLocation,nextLocation:a.nextLocation})}));let t=n.window.document.startViewTransition((()=>{x((()=>i(e)))}));return t.finished.finally((()=>{x((()=>{m(void 0),h(void 0),c(void 0),f({isTransitioning:!1})}))})),void x((()=>h(t)))}p?(d&&d.resolve(),p.skipTransition(),v({state:e,currentLocation:a.currentLocation,nextLocation:a.nextLocation})):(c(e),f({isTransitioning:!0,flushSync:!1,currentLocation:a.currentLocation,nextLocation:a.nextLocation}))}else o?x((()=>i(e))):w((()=>i(e)))}),[n.window,p,d,y,w]);s.useLayoutEffect((()=>n.subscribe(R)),[n,R]),s.useEffect((()=>{l.isTransitioning&&!l.flushSync&&m(new A)}),[l]),s.useEffect((()=>{if(d&&u&&n.window){let e=u,t=d.promise,r=n.window.document.startViewTransition((async()=>{w((()=>i(e))),await t}));r.finished.finally((()=>{m(void 0),h(void 0),c(void 0),f({isTransitioning:!1})})),h(r)}}),[w,u,d,n.window]),s.useEffect((()=>{d&&u&&a.location.key===u.location.key&&d.resolve()}),[d,p,a.location,u]),s.useEffect((()=>{!l.isTransitioning&&b&&(c(b.state),f({isTransitioning:!0,flushSync:!1,currentLocation:b.currentLocation,nextLocation:b.nextLocation}),v(void 0))}),[l.isTransitioning,b]),s.useEffect((()=>{}),[]);let S=s.useMemo((()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:e=>n.navigate(e),push:(e,t,r)=>n.navigate(e,{state:t,preventScrollReset:null==r?void 0:r.preventScrollReset}),replace:(e,t,r)=>n.navigate(e,{replace:!0,state:t,preventScrollReset:null==r?void 0:r.preventScrollReset})})),[n]),E=n.basename||"/",P=s.useMemo((()=>({router:n,navigator:S,static:!1,basename:E})),[n,S,E]);return s.createElement(s.Fragment,null,s.createElement(r.UNSAFE_DataRouterContext.Provider,{value:P},s.createElement(r.UNSAFE_DataRouterStateContext.Provider,{value:a},s.createElement(O.Provider,{value:y.current},s.createElement(_.Provider,{value:l},s.createElement(r.Router,{basename:E,location:a.location,navigationType:a.historyAction,navigator:S,future:{v7_relativeSplatPath:n.future.v7_relativeSplatPath}},a.initialized||n.future.v7_partialHydration?s.createElement(N,{routes:n.routes,future:n.future,state:a}):t))))),null)},e.ScrollRestoration=function(e){let{getKey:t,storageKey:n}=e;return $({getKey:t,storageKey:n}),null},e.StaticRouter=function(e){let{basename:t,children:n,location:o="/"}=e;"string"==typeof o&&(o=a.parsePath(o));let i=a.Action.Pop,u={pathname:o.pathname||"/",search:o.search||"",hash:o.hash||"",state:o.state||null,key:o.key||"default"},c={createHref:e=>"string"==typeof e?e:a.createPath(e),encodeLocation(e){let t="string"==typeof e?e:a.createPath(e);t=t.replace(/ $/,"%20");let n=Q.test(t)?new URL(t):new URL(t,"http://localhost");return{pathname:n.pathname,search:n.search,hash:n.hash}},push(e){throw new Error("You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+")` somewhere in your app.")},replace(e){throw new Error("You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+", { replace: true })` somewhere in your app.")},go(e){throw new Error("You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+e+")` somewhere in your app.")},back(){throw new Error("You cannot use navigator.back() on the server because it is a stateless environment.")},forward(){throw new Error("You cannot use navigator.forward() on the server because it is a stateless environment.")}};return s.createElement(r.Router,{basename:t,children:n,location:u,navigationType:i,navigator:c,static:!0})},e.UNSAFE_useScrollRestoration=$,e.createBrowserRouter=function(e,t){return o.createRouter({basename:null==t?void 0:t.basename,future:l({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:o.createBrowserHistory({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||E(),routes:e,mapRouteProperties:r.UNSAFE_mapRouteProperties,unstable_dataStrategy:null==t?void 0:t.unstable_dataStrategy,window:null==t?void 0:t.window}).initialize()},e.createHashRouter=function(e,t){return o.createRouter({basename:null==t?void 0:t.basename,future:l({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:o.createHashHistory({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||E(),routes:e,mapRouteProperties:r.UNSAFE_mapRouteProperties,unstable_dataStrategy:null==t?void 0:t.unstable_dataStrategy,window:null==t?void 0:t.window}).initialize()},e.createSearchParams=h,e.unstable_HistoryRouter=function(e){let{basename:t,children:n,future:o,history:a}=e,[i,u]=s.useState({action:a.action,location:a.location}),{v7_startTransition:c}=o||{},l=s.useCallback((e=>{c&&C?C((()=>u(e))):u(e)}),[u,c]);return s.useLayoutEffect((()=>a.listen(l)),[a,l]),s.createElement(r.Router,{basename:t,children:n,location:i.location,navigationType:i.action,navigator:a,future:o})},e.unstable_usePrompt=function(e){let{when:t,message:n}=e,o=r.useBlocker(t);s.useEffect((()=>{if("blocked"===o.state){window.confirm(n)?setTimeout(o.proceed,0):o.reset()}}),[o,n]),s.useEffect((()=>{"blocked"!==o.state||t||o.reset()}),[o,t])},e.useBeforeUnload=function(e,t){let{capture:n}=t||{};s.useEffect((()=>{let t=null!=n?{capture:n}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}}),[e,n])},e.useFetcher=function(e){var t;let{key:n}=void 0===e?{}:e,{router:a}=B(M.UseFetcher),i=K(H.UseFetcher),u=s.useContext(O),c=s.useContext(r.UNSAFE_RouteContext),f=null==(t=c.matches[c.matches.length-1])?void 0:t.route.id;u||o.UNSAFE_invariant(!1),c||o.UNSAFE_invariant(!1),null==f&&o.UNSAFE_invariant(!1);let d=j?j():"",[m,p]=s.useState(n||d);n&&n!==m?p(n):m||p(z()),s.useEffect((()=>(a.getFetcher(m),()=>{a.deleteFetcher(m)})),[a,m]);let h=s.useCallback(((e,t)=>{f||o.UNSAFE_invariant(!1),a.fetch(m,f,e,t)}),[m,f,a]),b=Y(),v=s.useCallback(((e,t)=>{b(e,l({},t,{navigate:!1,fetcherKey:m}))}),[m,b]),y=s.useMemo((()=>s.forwardRef(((e,t)=>s.createElement(k,l({},e,{navigate:!1,fetcherKey:m,ref:t}))))),[m]),g=i.fetchers.get(m)||o.IDLE_FETCHER,w=u.get(m);return s.useMemo((()=>l({Form:y,submit:v,load:h},g,{data:w})),[y,v,h,g,w])},e.useFetchers=function(){let e=K(H.UseFetchers);return Array.from(e.fetchers.entries()).map((e=>{let[t,n]=e;return l({},n,{key:t})}))},e.useFormAction=q,e.useLinkClickHandler=I,e.useSearchParams=function(e){let t=s.useRef(h(e)),n=s.useRef(!1),o=r.useLocation(),a=s.useMemo((()=>function(e,t){let n=h(e);return t&&t.forEach(((e,r)=>{n.has(r)||t.getAll(r).forEach((e=>{n.append(r,e)}))})),n}(o.search,n.current?null:t.current)),[o.search]),i=r.useNavigate(),u=s.useCallback(((e,t)=>{const r=h("function"==typeof e?e(a):e);n.current=!0,i("?"+r,t)}),[i,a]);return[a,u]},e.useSubmit=Y,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom"),require("react-router"),require("@remix-run/router"),require("history"),require("react-router-dom")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","react-router","@remix-run/router","history","react-router-dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouterDOMv5Compat={},e.React,e.ReactDOM,e.ReactRouter,e.RemixRouter,e.HistoryLibrary,e.ReactRouterDOM)}(this,(function(e,t,n,r,o,a,i){"use strict";function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var s=u(t),c=u(n);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}function f(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}const d="get",m="application/x-www-form-urlencoded";function p(e){return null!=e&&"string"==typeof e.tagName}function h(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map((e=>[n,e])):[[n,r]])}),[]))}let b=null;const v=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function y(e){return null==e||v.has(e)?e:null}function g(e,t){let n,r,a,i,u;if(p(s=e)&&"form"===s.tagName.toLowerCase()){let u=e.getAttribute("action");r=u?o.stripBasename(u,t):null,n=e.getAttribute("method")||d,a=y(e.getAttribute("enctype"))||m,i=new FormData(e)}else if(function(e){return p(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return p(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let u=e.form;if(null==u)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||u.getAttribute("action");if(r=s?o.stripBasename(s,t):null,n=e.getAttribute("formmethod")||u.getAttribute("method")||d,a=y(e.getAttribute("formenctype"))||y(u.getAttribute("enctype"))||m,i=new FormData(u,e),!function(){if(null===b)try{new FormData(document.createElement("form"),0),b=!1}catch(e){b=!0}return b}()){let{name:t,type:n,value:r}=e;if("image"===n){let e=t?t+".":"";i.append(e+"x","0"),i.append(e+"y","0")}else t&&i.append(t,r)}}else{if(p(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=d,r=null,a=m,u=e}var s;return i&&"text/plain"===a&&(u=i,i=void 0),{action:r,method:n.toLowerCase(),encType:a,formData:i,body:u}}const w=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],R=["aria-current","caseSensitive","className","end","style","to","unstable_viewTransition","children"],S=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","unstable_viewTransition"];try{window.__reactRouterVersion="0"}catch(e){}function E(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=l({},t,{errors:P(t.errors)})),t}function P(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&"RouteErrorResponse"===r.__type)n[e]=new o.UNSAFE_ErrorResponseImpl(r.status,r.statusText,r.data,!0===r.internal);else if(r&&"Error"===r.__type){if(r.__subType){let t=window[r.__subType];if("function"==typeof t)try{let o=new t(r.message);o.stack="",n[e]=o}catch(e){}}if(null==n[e]){let t=new Error(r.message);t.stack="",n[e]=t}}else n[e]=r;return n}const _=s.createContext({isTransitioning:!1}),O=s.createContext(new Map),C=s.startTransition,j=c.flushSync,L=s.useId;function x(e){j?j(e):e()}class A{constructor(){this.status="pending",this.promise=new Promise(((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}}))}}const N=s.memo(T);function T(e){let{routes:t,future:n,state:o}=e;return r.UNSAFE_useRoutesImpl(t,void 0,o,n)}const F="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,U=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,D=s.forwardRef((function(e,t){let n,{onClick:a,relative:i,reloadDocument:u,replace:c,state:d,target:m,to:p,preventScrollReset:h,unstable_viewTransition:b}=e,v=f(e,w),{basename:y}=s.useContext(r.UNSAFE_NavigationContext),g=!1;if("string"==typeof p&&U.test(p)&&(n=p,F))try{let e=new URL(window.location.href),t=p.startsWith("//")?new URL(e.protocol+p):new URL(p),n=o.stripBasename(t.pathname,y);t.origin===e.origin&&null!=n?p=n+t.search+t.hash:g=!0}catch(e){}let R=r.useHref(p,{relative:i}),S=V(p,{replace:c,state:d,target:m,preventScrollReset:h,relative:i,unstable_viewTransition:b});return s.createElement("a",l({},v,{href:n||R,onClick:g||u?a:function(e){a&&a(e),e.defaultPrevented||S(e)},ref:t,target:m}))})),k=s.forwardRef((function(e,t){let{"aria-current":n="page",caseSensitive:a=!1,className:i="",end:u=!1,style:c,to:d,unstable_viewTransition:m,children:p}=e,h=f(e,R),b=r.useResolvedPath(d,{relative:h.relative}),v=r.useLocation(),y=s.useContext(r.UNSAFE_DataRouterStateContext),{navigator:g,basename:w}=s.useContext(r.UNSAFE_NavigationContext),S=null!=y&&function(e,t){void 0===t&&(t={});let n=s.useContext(_);null==n&&o.UNSAFE_invariant(!1);let{basename:a}=K(H.useViewTransitionState),i=r.useResolvedPath(e,{relative:t.relative});if(!n.isTransitioning)return!1;let u=o.stripBasename(n.currentLocation.pathname,a)||n.currentLocation.pathname,c=o.stripBasename(n.nextLocation.pathname,a)||n.nextLocation.pathname;return null!=o.matchPath(i.pathname,c)||null!=o.matchPath(i.pathname,u)}(b)&&!0===m,E=g.encodeLocation?g.encodeLocation(b).pathname:b.pathname,P=v.pathname,O=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;a||(P=P.toLowerCase(),O=O?O.toLowerCase():null,E=E.toLowerCase()),O&&w&&(O=o.stripBasename(O,w)||O);const C="/"!==E&&E.endsWith("/")?E.length-1:E.length;let j,L=P===E||!u&&P.startsWith(E)&&"/"===P.charAt(C),x=null!=O&&(O===E||!u&&O.startsWith(E)&&"/"===O.charAt(E.length)),A={isActive:L,isPending:x,isTransitioning:S},N=L?n:void 0;j="function"==typeof i?i(A):[i,L?"active":null,x?"pending":null,S?"transitioning":null].filter(Boolean).join(" ");let T="function"==typeof c?c(A):c;return s.createElement(D,l({},h,{"aria-current":N,className:j,ref:t,style:T,to:d,unstable_viewTransition:m}),"function"==typeof p?p(A):p)})),M=s.forwardRef(((e,t)=>{let{fetcherKey:n,navigate:r,reloadDocument:o,replace:a,state:i,method:u=d,action:c,onSubmit:m,relative:p,preventScrollReset:h,unstable_viewTransition:b}=e,v=f(e,S),y=q(),g=J(c,{relative:p}),w="get"===u.toLowerCase()?"get":"post";return s.createElement("form",l({ref:t,method:w,action:g,onSubmit:o?m:e=>{if(m&&m(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,o=(null==t?void 0:t.getAttribute("formmethod"))||u;y(t||e.currentTarget,{fetcherKey:n,method:o,navigate:r,replace:a,state:i,relative:p,preventScrollReset:h,unstable_viewTransition:b})}},v))}));var H=function(e){return e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState",e}(H||{}),B=function(e){return e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration",e}(B||{});function K(e){let t=s.useContext(r.UNSAFE_DataRouterContext);return t||o.UNSAFE_invariant(!1),t}function I(e){let t=s.useContext(r.UNSAFE_DataRouterStateContext);return t||o.UNSAFE_invariant(!1),t}function V(e,t){let{target:n,replace:o,state:a,preventScrollReset:i,relative:u,unstable_viewTransition:c}=void 0===t?{}:t,l=r.useNavigate(),f=r.useLocation(),d=r.useResolvedPath(e,{relative:u});return s.useCallback((t=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(t,n)){t.preventDefault();let n=void 0!==o?o:r.createPath(f)===r.createPath(d);l(e,{replace:n,state:a,preventScrollReset:i,relative:u,unstable_viewTransition:c})}}),[f,l,d,o,a,n,e,i,u,c])}let z=0,Y=()=>"__"+String(++z)+"__";function q(){let{router:e}=K(H.UseSubmit),{basename:t}=s.useContext(r.UNSAFE_NavigationContext),n=r.UNSAFE_useRouteId();return s.useCallback((function(r,o){void 0===o&&(o={}),function(){if("undefined"==typeof document)throw new Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.")}();let{action:a,method:i,encType:u,formData:s,body:c}=g(r,t);if(!1===o.navigate){let t=o.fetcherKey||Y();e.fetch(t,n,o.action||a,{preventScrollReset:o.preventScrollReset,formData:s,body:c,formMethod:o.method||i,formEncType:o.encType||u,unstable_flushSync:o.unstable_flushSync})}else e.navigate(o.action||a,{preventScrollReset:o.preventScrollReset,formData:s,body:c,formMethod:o.method||i,formEncType:o.encType||u,replace:o.replace,state:o.state,fromRouteId:n,unstable_flushSync:o.unstable_flushSync,unstable_viewTransition:o.unstable_viewTransition})}),[e,t,n])}function J(e,t){let{relative:n}=void 0===t?{}:t,{basename:a}=s.useContext(r.UNSAFE_NavigationContext),i=s.useContext(r.UNSAFE_RouteContext);i||o.UNSAFE_invariant(!1);let[u]=i.matches.slice(-1),c=l({},r.useResolvedPath(e||".",{relative:n})),f=r.useLocation();if(null==e){c.search=f.search;let e=new URLSearchParams(c.search);e.has("index")&&""===e.get("index")&&(e.delete("index"),c.search=e.toString()?"?"+e.toString():"")}return e&&"."!==e||!u.route.index||(c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index"),"/"!==a&&(c.pathname="/"===c.pathname?a:o.joinPaths([a,c.pathname])),r.createPath(c)}const W="react-router-scroll-positions";let $={};function G(e){let{getKey:t,storageKey:n}=void 0===e?{}:e,{router:a}=K(H.UseScrollRestoration),{restoreScrollPosition:i,preventScrollReset:u}=I(B.UseScrollRestoration),{basename:c}=s.useContext(r.UNSAFE_NavigationContext),f=r.useLocation(),d=r.useMatches(),m=r.useNavigation();s.useEffect((()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"})),[]),function(e,t){let{capture:n}=t||{};s.useEffect((()=>{let t=null!=n?{capture:n}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}}),[e,n])}(s.useCallback((()=>{if("idle"===m.state){let e=(t?t(f,d):null)||f.key;$[e]=window.scrollY}try{sessionStorage.setItem(n||W,JSON.stringify($))}catch(e){}window.history.scrollRestoration="auto"}),[n,t,m.state,f,d])),"undefined"!=typeof document&&(s.useLayoutEffect((()=>{try{let e=sessionStorage.getItem(n||W);e&&($=JSON.parse(e))}catch(e){}}),[n]),s.useLayoutEffect((()=>{let e=t&&"/"!==c?(e,n)=>t(l({},e,{pathname:o.stripBasename(e.pathname,c)||e.pathname}),n):t,n=null==a?void 0:a.enableScrollRestoration($,(()=>window.scrollY),e);return()=>n&&n()}),[a,c,t]),s.useLayoutEffect((()=>{if(!1!==i)if("number"!=typeof i){if(f.hash){let e=document.getElementById(decodeURIComponent(f.hash.slice(1)));if(e)return void e.scrollIntoView()}!0!==u&&window.scrollTo(0,0)}else window.scrollTo(0,i)}),[f,i,u]))}const Q=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?s.useLayoutEffect:()=>{};const X=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;Object.defineProperty(e,"AbortedDeferredError",{enumerable:!0,get:function(){return r.AbortedDeferredError}}),Object.defineProperty(e,"Await",{enumerable:!0,get:function(){return r.Await}}),Object.defineProperty(e,"MemoryRouter",{enumerable:!0,get:function(){return r.MemoryRouter}}),Object.defineProperty(e,"Navigate",{enumerable:!0,get:function(){return r.Navigate}}),Object.defineProperty(e,"NavigationType",{enumerable:!0,get:function(){return r.NavigationType}}),Object.defineProperty(e,"Outlet",{enumerable:!0,get:function(){return r.Outlet}}),Object.defineProperty(e,"Route",{enumerable:!0,get:function(){return r.Route}}),Object.defineProperty(e,"Router",{enumerable:!0,get:function(){return r.Router}}),Object.defineProperty(e,"Routes",{enumerable:!0,get:function(){return r.Routes}}),Object.defineProperty(e,"UNSAFE_DataRouterContext",{enumerable:!0,get:function(){return r.UNSAFE_DataRouterContext}}),Object.defineProperty(e,"UNSAFE_DataRouterStateContext",{enumerable:!0,get:function(){return r.UNSAFE_DataRouterStateContext}}),Object.defineProperty(e,"UNSAFE_LocationContext",{enumerable:!0,get:function(){return r.UNSAFE_LocationContext}}),Object.defineProperty(e,"UNSAFE_NavigationContext",{enumerable:!0,get:function(){return r.UNSAFE_NavigationContext}}),Object.defineProperty(e,"UNSAFE_RouteContext",{enumerable:!0,get:function(){return r.UNSAFE_RouteContext}}),Object.defineProperty(e,"UNSAFE_useRouteId",{enumerable:!0,get:function(){return r.UNSAFE_useRouteId}}),Object.defineProperty(e,"createMemoryRouter",{enumerable:!0,get:function(){return r.createMemoryRouter}}),Object.defineProperty(e,"createPath",{enumerable:!0,get:function(){return r.createPath}}),Object.defineProperty(e,"createRoutesFromChildren",{enumerable:!0,get:function(){return r.createRoutesFromChildren}}),Object.defineProperty(e,"createRoutesFromElements",{enumerable:!0,get:function(){return r.createRoutesFromElements}}),Object.defineProperty(e,"defer",{enumerable:!0,get:function(){return r.defer}}),Object.defineProperty(e,"generatePath",{enumerable:!0,get:function(){return r.generatePath}}),Object.defineProperty(e,"isRouteErrorResponse",{enumerable:!0,get:function(){return r.isRouteErrorResponse}}),Object.defineProperty(e,"json",{enumerable:!0,get:function(){return r.json}}),Object.defineProperty(e,"matchPath",{enumerable:!0,get:function(){return r.matchPath}}),Object.defineProperty(e,"matchRoutes",{enumerable:!0,get:function(){return r.matchRoutes}}),Object.defineProperty(e,"parsePath",{enumerable:!0,get:function(){return r.parsePath}}),Object.defineProperty(e,"redirect",{enumerable:!0,get:function(){return r.redirect}}),Object.defineProperty(e,"redirectDocument",{enumerable:!0,get:function(){return r.redirectDocument}}),Object.defineProperty(e,"renderMatches",{enumerable:!0,get:function(){return r.renderMatches}}),Object.defineProperty(e,"replace",{enumerable:!0,get:function(){return r.replace}}),Object.defineProperty(e,"resolvePath",{enumerable:!0,get:function(){return r.resolvePath}}),Object.defineProperty(e,"useActionData",{enumerable:!0,get:function(){return r.useActionData}}),Object.defineProperty(e,"useAsyncError",{enumerable:!0,get:function(){return r.useAsyncError}}),Object.defineProperty(e,"useAsyncValue",{enumerable:!0,get:function(){return r.useAsyncValue}}),Object.defineProperty(e,"useBlocker",{enumerable:!0,get:function(){return r.useBlocker}}),Object.defineProperty(e,"useHref",{enumerable:!0,get:function(){return r.useHref}}),Object.defineProperty(e,"useInRouterContext",{enumerable:!0,get:function(){return r.useInRouterContext}}),Object.defineProperty(e,"useLoaderData",{enumerable:!0,get:function(){return r.useLoaderData}}),Object.defineProperty(e,"useLocation",{enumerable:!0,get:function(){return r.useLocation}}),Object.defineProperty(e,"useMatch",{enumerable:!0,get:function(){return r.useMatch}}),Object.defineProperty(e,"useMatches",{enumerable:!0,get:function(){return r.useMatches}}),Object.defineProperty(e,"useNavigate",{enumerable:!0,get:function(){return r.useNavigate}}),Object.defineProperty(e,"useNavigation",{enumerable:!0,get:function(){return r.useNavigation}}),Object.defineProperty(e,"useNavigationType",{enumerable:!0,get:function(){return r.useNavigationType}}),Object.defineProperty(e,"useOutlet",{enumerable:!0,get:function(){return r.useOutlet}}),Object.defineProperty(e,"useOutletContext",{enumerable:!0,get:function(){return r.useOutletContext}}),Object.defineProperty(e,"useParams",{enumerable:!0,get:function(){return r.useParams}}),Object.defineProperty(e,"useResolvedPath",{enumerable:!0,get:function(){return r.useResolvedPath}}),Object.defineProperty(e,"useRevalidator",{enumerable:!0,get:function(){return r.useRevalidator}}),Object.defineProperty(e,"useRouteError",{enumerable:!0,get:function(){return r.useRouteError}}),Object.defineProperty(e,"useRouteLoaderData",{enumerable:!0,get:function(){return r.useRouteLoaderData}}),Object.defineProperty(e,"useRoutes",{enumerable:!0,get:function(){return r.useRoutes}}),e.BrowserRouter=function(e){let{basename:t,children:n,future:a,window:i}=e,u=s.useRef();null==u.current&&(u.current=o.createBrowserHistory({window:i,v5Compat:!0}));let c=u.current,[l,f]=s.useState({action:c.action,location:c.location}),{v7_startTransition:d}=a||{},m=s.useCallback((e=>{d&&C?C((()=>f(e))):f(e)}),[f,d]);return s.useLayoutEffect((()=>c.listen(m)),[c,m]),s.createElement(r.Router,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:c,future:a})},e.CompatRoute=function(e){let{location:t,path:n}=e;return e.exact||(n+="/*"),s.createElement(r.Routes,{location:t},s.createElement(r.Route,{path:n,element:s.createElement(i.Route,e)}))},e.CompatRouter=function(e){let{children:t}=e,n=i.useHistory(),[o,a]=s.useState((()=>({location:n.location,action:n.action})));return Q((()=>{n.listen(((e,t)=>a({location:e,action:t})))}),[n]),s.createElement(r.Router,{navigationType:o.action,location:o.location,navigator:n},s.createElement(r.Routes,null,s.createElement(r.Route,{path:"*",element:t})))},e.Form=M,e.HashRouter=function(e){let{basename:t,children:n,future:a,window:i}=e,u=s.useRef();null==u.current&&(u.current=o.createHashHistory({window:i,v5Compat:!0}));let c=u.current,[l,f]=s.useState({action:c.action,location:c.location}),{v7_startTransition:d}=a||{},m=s.useCallback((e=>{d&&C?C((()=>f(e))):f(e)}),[f,d]);return s.useLayoutEffect((()=>c.listen(m)),[c,m]),s.createElement(r.Router,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:c,future:a})},e.Link=D,e.NavLink=k,e.RouterProvider=function(e){let{fallbackElement:t,router:n,future:o}=e,[a,i]=s.useState(n.state),[u,c]=s.useState(),[l,f]=s.useState({isTransitioning:!1}),[d,m]=s.useState(),[p,h]=s.useState(),[b,v]=s.useState(),y=s.useRef(new Map),{v7_startTransition:g}=o||{},w=s.useCallback((e=>{g?function(e){C?C(e):e()}(e):e()}),[g]),R=s.useCallback(((e,t)=>{let{deletedFetchers:r,unstable_flushSync:o,unstable_viewTransitionOpts:a}=t;r.forEach((e=>y.current.delete(e))),e.fetchers.forEach(((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)}));let u=null==n.window||null==n.window.document||"function"!=typeof n.window.document.startViewTransition;if(a&&!u){if(o){x((()=>{p&&(d&&d.resolve(),p.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:a.currentLocation,nextLocation:a.nextLocation})}));let t=n.window.document.startViewTransition((()=>{x((()=>i(e)))}));return t.finished.finally((()=>{x((()=>{m(void 0),h(void 0),c(void 0),f({isTransitioning:!1})}))})),void x((()=>h(t)))}p?(d&&d.resolve(),p.skipTransition(),v({state:e,currentLocation:a.currentLocation,nextLocation:a.nextLocation})):(c(e),f({isTransitioning:!0,flushSync:!1,currentLocation:a.currentLocation,nextLocation:a.nextLocation}))}else o?x((()=>i(e))):w((()=>i(e)))}),[n.window,p,d,y,w]);s.useLayoutEffect((()=>n.subscribe(R)),[n,R]),s.useEffect((()=>{l.isTransitioning&&!l.flushSync&&m(new A)}),[l]),s.useEffect((()=>{if(d&&u&&n.window){let e=u,t=d.promise,r=n.window.document.startViewTransition((async()=>{w((()=>i(e))),await t}));r.finished.finally((()=>{m(void 0),h(void 0),c(void 0),f({isTransitioning:!1})})),h(r)}}),[w,u,d,n.window]),s.useEffect((()=>{d&&u&&a.location.key===u.location.key&&d.resolve()}),[d,p,a.location,u]),s.useEffect((()=>{!l.isTransitioning&&b&&(c(b.state),f({isTransitioning:!0,flushSync:!1,currentLocation:b.currentLocation,nextLocation:b.nextLocation}),v(void 0))}),[l.isTransitioning,b]),s.useEffect((()=>{}),[]);let S=s.useMemo((()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:e=>n.navigate(e),push:(e,t,r)=>n.navigate(e,{state:t,preventScrollReset:null==r?void 0:r.preventScrollReset}),replace:(e,t,r)=>n.navigate(e,{replace:!0,state:t,preventScrollReset:null==r?void 0:r.preventScrollReset})})),[n]),E=n.basename||"/",P=s.useMemo((()=>({router:n,navigator:S,static:!1,basename:E})),[n,S,E]),j=s.useMemo((()=>({v7_relativeSplatPath:n.future.v7_relativeSplatPath})),[n.future.v7_relativeSplatPath]);return s.createElement(s.Fragment,null,s.createElement(r.UNSAFE_DataRouterContext.Provider,{value:P},s.createElement(r.UNSAFE_DataRouterStateContext.Provider,{value:a},s.createElement(O.Provider,{value:y.current},s.createElement(_.Provider,{value:l},s.createElement(r.Router,{basename:E,location:a.location,navigationType:a.historyAction,navigator:S,future:j},a.initialized||n.future.v7_partialHydration?s.createElement(N,{routes:n.routes,future:n.future,state:a}):t))))),null)},e.ScrollRestoration=function(e){let{getKey:t,storageKey:n}=e;return G({getKey:t,storageKey:n}),null},e.StaticRouter=function(e){let{basename:t,children:n,location:o="/"}=e;"string"==typeof o&&(o=a.parsePath(o));let i=a.Action.Pop,u={pathname:o.pathname||"/",search:o.search||"",hash:o.hash||"",state:null!=o.state?o.state:null,key:o.key||"default"},c={createHref:e=>"string"==typeof e?e:a.createPath(e),encodeLocation(e){let t="string"==typeof e?e:a.createPath(e);t=t.replace(/ $/,"%20");let n=X.test(t)?new URL(t):new URL(t,"http://localhost");return{pathname:n.pathname,search:n.search,hash:n.hash}},push(e){throw new Error("You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+")` somewhere in your app.")},replace(e){throw new Error("You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+", { replace: true })` somewhere in your app.")},go(e){throw new Error("You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+e+")` somewhere in your app.")},back(){throw new Error("You cannot use navigator.back() on the server because it is a stateless environment.")},forward(){throw new Error("You cannot use navigator.forward() on the server because it is a stateless environment.")}};return s.createElement(r.Router,{basename:t,children:n,location:u,navigationType:i,navigator:c,static:!0})},e.UNSAFE_useScrollRestoration=G,e.createBrowserRouter=function(e,t){return o.createRouter({basename:null==t?void 0:t.basename,future:l({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:o.createBrowserHistory({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||E(),routes:e,mapRouteProperties:r.UNSAFE_mapRouteProperties,unstable_dataStrategy:null==t?void 0:t.unstable_dataStrategy,unstable_patchRoutesOnMiss:null==t?void 0:t.unstable_patchRoutesOnMiss,window:null==t?void 0:t.window}).initialize()},e.createHashRouter=function(e,t){return o.createRouter({basename:null==t?void 0:t.basename,future:l({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:o.createHashHistory({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||E(),routes:e,mapRouteProperties:r.UNSAFE_mapRouteProperties,unstable_dataStrategy:null==t?void 0:t.unstable_dataStrategy,unstable_patchRoutesOnMiss:null==t?void 0:t.unstable_patchRoutesOnMiss,window:null==t?void 0:t.window}).initialize()},e.createSearchParams=h,e.unstable_HistoryRouter=function(e){let{basename:t,children:n,future:o,history:a}=e,[i,u]=s.useState({action:a.action,location:a.location}),{v7_startTransition:c}=o||{},l=s.useCallback((e=>{c&&C?C((()=>u(e))):u(e)}),[u,c]);return s.useLayoutEffect((()=>a.listen(l)),[a,l]),s.createElement(r.Router,{basename:t,children:n,location:i.location,navigationType:i.action,navigator:a,future:o})},e.unstable_usePrompt=function(e){let{when:t,message:n}=e,o=r.useBlocker(t);s.useEffect((()=>{if("blocked"===o.state){window.confirm(n)?setTimeout(o.proceed,0):o.reset()}}),[o,n]),s.useEffect((()=>{"blocked"!==o.state||t||o.reset()}),[o,t])},e.useBeforeUnload=function(e,t){let{capture:n}=t||{};s.useEffect((()=>{let t=null!=n?{capture:n}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}}),[e,n])},e.useFetcher=function(e){var t;let{key:n}=void 0===e?{}:e,{router:a}=K(H.UseFetcher),i=I(B.UseFetcher),u=s.useContext(O),c=s.useContext(r.UNSAFE_RouteContext),f=null==(t=c.matches[c.matches.length-1])?void 0:t.route.id;u||o.UNSAFE_invariant(!1),c||o.UNSAFE_invariant(!1),null==f&&o.UNSAFE_invariant(!1);let d=L?L():"",[m,p]=s.useState(n||d);n&&n!==m?p(n):m||p(Y()),s.useEffect((()=>(a.getFetcher(m),()=>{a.deleteFetcher(m)})),[a,m]);let h=s.useCallback(((e,t)=>{f||o.UNSAFE_invariant(!1),a.fetch(m,f,e,t)}),[m,f,a]),b=q(),v=s.useCallback(((e,t)=>{b(e,l({},t,{navigate:!1,fetcherKey:m}))}),[m,b]),y=s.useMemo((()=>s.forwardRef(((e,t)=>s.createElement(M,l({},e,{navigate:!1,fetcherKey:m,ref:t}))))),[m]),g=i.fetchers.get(m)||o.IDLE_FETCHER,w=u.get(m);return s.useMemo((()=>l({Form:y,submit:v,load:h},g,{data:w})),[y,v,h,g,w])},e.useFetchers=function(){let e=I(B.UseFetchers);return Array.from(e.fetchers.entries()).map((e=>{let[t,n]=e;return l({},n,{key:t})}))},e.useFormAction=J,e.useLinkClickHandler=V,e.useSearchParams=function(e){let t=s.useRef(h(e)),n=s.useRef(!1),o=r.useLocation(),a=s.useMemo((()=>function(e,t){let n=h(e);return t&&t.forEach(((e,r)=>{n.has(r)||t.getAll(r).forEach((e=>{n.append(r,e)}))})),n}(o.search,n.current?null:t.current)),[o.search]),i=r.useNavigate(),u=s.useCallback(((e,t)=>{const r=h("function"==typeof e?e(a):e);n.current=!0,i("?"+r,t)}),[i,a]);return[a,u]},e.useSubmit=q,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=react-router-dom-v5-compat.production.min.js.map |
{ | ||
"name": "react-router-dom-v5-compat", | ||
"version": "0.0.0-experimental-5bedc168", | ||
"version": "0.0.0-experimental-5df42afed", | ||
"description": "Migration path to React Router v6 from v4/5", | ||
@@ -27,3 +27,4 @@ "keywords": [ | ||
"history": "^5.3.0", | ||
"react-router": "0.0.0-experimental-5bedc168" | ||
"react-router": "0.0.0-experimental-5df42afed", | ||
"@remix-run/router": "0.0.0-experimental-5df42afed" | ||
}, | ||
@@ -44,2 +45,2 @@ "peerDependencies": { | ||
} | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
587503
4049
6
+ Added@remix-run/router@0.0.0-experimental-5df42afed(transitive)
+ Addedreact-router@0.0.0-experimental-5df42afed(transitive)
- Removed@remix-run/router@0.0.0-experimental-5bedc168(transitive)
- Removedreact-router@0.0.0-experimental-5bedc168(transitive)