{"version":3,"file":"static/js/router.76bad4bb.js","mappings":"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","sources":["../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/react-router/modules/createNameContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js"],"sourcesContent":["import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\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 navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n"],"names":["React","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","props","event","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","ref","Link","component","replace","RouterContext","context","history","location","href","createHref","isDuplicateNavigation","createPath","push","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath","classnames","arguments","filter","i","join","joinClassnames","createNamedContext","name","createContext","displayName","historyContext","Router","state","_isMounted","_pendingLocation","staticContext","unlisten","listen","_this","setState","computeRootMatch","url","params","isExact","componentDidMount","this","componentWillUnmount","render","Provider","value","HistoryContext","children","Lifecycle","onMount","call","componentDidUpdate","prevProps","onUpdate","onUnmount","cache","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","Consumer","method","self","prevLocation","locationsAreEqual","key","options","Array","isArray","concat","reduce","matched","cacheKey","end","pathCache","keys","result","regexp","exec","values","memo","index","Route","isEmptyChildren","addLeadingSlash","charAt","stripBasename","basename","base","indexOf","substr","length","createURL","staticHandler","methodName","invariant","noop","Switch","element","child","from","useContext","useHistory","module","exports","arr","Object","prototype","toString","isarray","require","parse","compile","str","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","m","escaped","offset","slice","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","c","charCodeAt","toUpperCase","matches","flags","obj","opts","data","encode","encodeURIComponent","token","segment","TypeError","JSON","stringify","j","test","attachKeys","re","route","endsWithDelimiter","groups","source","regexpToRegexp","parts","arrayToRegexp","stringToRegexp"],"sourceRoot":""}