{"version":3,"file":"react-router-dom.development.js","sources":["../../../../packages/react-router-dom/index.tsx"],"sourcesContent":["/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\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 React Router!\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\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\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 event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\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"],"names":["warning","cond","message","console","warn","Error","e","BrowserRouter","basename","children","window","historyRef","React","current","createBrowserHistory","history","state","setState","action","location","listen","React.createElement","Router","HashRouter","createHashHistory","HistoryRouter","displayName","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","Link","LinkWithRef","ref","onClick","reloadDocument","replace","target","to","rest","href","useHref","internalOnClick","useLinkClickHandler","handleClick","defaultPrevented","NavLink","NavLinkWithRef","ariaCurrentProp","caseSensitive","className","classNameProp","end","style","styleProp","useLocation","path","useResolvedPath","locationPathname","pathname","toPathname","toLowerCase","isActive","startsWith","charAt","length","ariaCurrent","undefined","filter","Boolean","join","replaceProp","navigate","useNavigate","button","preventDefault","createPath","useSearchParams","defaultInit","URLSearchParams","defaultSearchParamsRef","createSearchParams","searchParams","search","key","keys","has","getAll","forEach","value","append","setSearchParams","nextInit","navigateOptions","init","Array","isArray","Object","reduce","memo","concat","map","v"],"mappings":"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"}