{"ast":null,"code":"import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics'; // TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n  var context = createContext();\n  context.displayName = name;\n  return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\"); // TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext$1 = function createNamedContext(name) {\n  var context = createContext();\n  context.displayName = name;\n  return context;\n};\n\nvar context = /*#__PURE__*/createNamedContext$1(\"Router\");\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(Router, _React$Component);\n\n  Router.computeRootMatch = function computeRootMatch(pathname) {\n    return {\n      path: \"/\",\n      url: \"/\",\n      params: {},\n      isExact: pathname === \"/\"\n    };\n  };\n\n  function Router(props) {\n    var _this;\n\n    _this = _React$Component.call(this, props) || this;\n    _this.state = {\n      location: props.history.location\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 <Redirect>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 <Router> is mounted.\n\n    _this._isMounted = false;\n    _this._pendingLocation = null;\n\n    if (!props.staticContext) {\n      _this.unlisten = props.history.listen(function (location) {\n        if (_this._isMounted) {\n          _this.setState({\n            location: location\n          });\n        } else {\n          _this._pendingLocation = location;\n        }\n      });\n    }\n\n    return _this;\n  }\n\n  var _proto = Router.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this._isMounted = true;\n\n    if (this._pendingLocation) {\n      this.setState({\n        location: this._pendingLocation\n      });\n    }\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    if (this.unlisten) this.unlisten();\n  };\n\n  _proto.render = function render() {\n    return React.createElement(context.Provider, {\n      value: {\n        history: this.props.history,\n        location: this.state.location,\n        match: Router.computeRootMatch(this.state.location.pathname),\n        staticContext: this.props.staticContext\n      }\n    }, React.createElement(historyContext.Provider, {\n      children: this.props.children || null,\n      value: this.props.history\n    }));\n  };\n\n  return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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    process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change <Router history>\") : void 0;\n  };\n}\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(MemoryRouter, _React$Component);\n\n  function MemoryRouter() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n    _this.history = createMemoryHistory(_this.props);\n    return _this;\n  }\n\n  var _proto = MemoryRouter.prototype;\n\n  _proto.render = function render() {\n    return React.createElement(Router, {\n      history: this.history,\n      children: this.props.children\n    });\n  };\n\n  return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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    process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<MemoryRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n  };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(Lifecycle, _React$Component);\n\n  function Lifecycle() {\n    return _React$Component.apply(this, arguments) || this;\n  }\n\n  var _proto = Lifecycle.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    if (this.props.onMount) this.props.onMount.call(this, this);\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n  };\n\n  _proto.render = function render() {\n    return null;\n  };\n\n  return Lifecycle;\n}(React.Component);\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\n\nfunction Prompt(_ref) {\n  var message = _ref.message,\n      _ref$when = _ref.when,\n      when = _ref$when === void 0 ? true : _ref$when;\n  return React.createElement(context.Consumer, null, function (context) {\n    !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Prompt> outside a <Router>\") : invariant(false) : void 0;\n    if (!when || context.staticContext) return null;\n    var method = context.history.block;\n    return React.createElement(Lifecycle, {\n      onMount: function onMount(self) {\n        self.release = method(message);\n      },\n      onUpdate: function onUpdate(self, prevProps) {\n        if (prevProps.message !== message) {\n          self.release();\n          self.release = method(message);\n        }\n      },\n      onUnmount: function onUnmount(self) {\n        self.release();\n      },\n      message: message\n    });\n  });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n  var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n  Prompt.propTypes = {\n    when: PropTypes.bool,\n    message: messageType.isRequired\n  };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n  if (cache[path]) return cache[path];\n  var generator = pathToRegexp.compile(path);\n\n  if (cacheCount < cacheLimit) {\n    cache[path] = generator;\n    cacheCount++;\n  }\n\n  return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n  if (path === void 0) {\n    path = \"/\";\n  }\n\n  if (params === void 0) {\n    params = {};\n  }\n\n  return path === \"/\" ? path : compilePath(path)(params, {\n    pretty: true\n  });\n}\n/**\n * The public API for navigating programmatically with a component.\n */\n\n\nfunction Redirect(_ref) {\n  var computedMatch = _ref.computedMatch,\n      to = _ref.to,\n      _ref$push = _ref.push,\n      push = _ref$push === void 0 ? false : _ref$push;\n  return React.createElement(context.Consumer, null, function (context) {\n    !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Redirect> outside a <Router>\") : invariant(false) : void 0;\n    var history = context.history,\n        staticContext = context.staticContext;\n    var method = push ? history.push : history.replace;\n    var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n      pathname: generatePath(to.pathname, computedMatch.params)\n    }) : to); // When rendering in a static context,\n    // set the new location immediately.\n\n    if (staticContext) {\n      method(location);\n      return null;\n    }\n\n    return React.createElement(Lifecycle, {\n      onMount: function onMount() {\n        method(location);\n      },\n      onUpdate: function onUpdate(self, prevProps) {\n        var prevLocation = createLocation(prevProps.to);\n\n        if (!locationsAreEqual(prevLocation, _extends({}, location, {\n          key: prevLocation.key\n        }))) {\n          method(location);\n        }\n      },\n      to: to\n    });\n  });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n  Redirect.propTypes = {\n    push: PropTypes.bool,\n    from: PropTypes.string,\n    to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n  };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n  var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n  var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n  if (pathCache[path]) return pathCache[path];\n  var keys = [];\n  var regexp = pathToRegexp(path, keys, options);\n  var result = {\n    regexp: regexp,\n    keys: keys\n  };\n\n  if (cacheCount$1 < cacheLimit$1) {\n    pathCache[path] = result;\n    cacheCount$1++;\n  }\n\n  return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  if (typeof options === \"string\" || Array.isArray(options)) {\n    options = {\n      path: options\n    };\n  }\n\n  var _options = options,\n      path = _options.path,\n      _options$exact = _options.exact,\n      exact = _options$exact === void 0 ? false : _options$exact,\n      _options$strict = _options.strict,\n      strict = _options$strict === void 0 ? false : _options$strict,\n      _options$sensitive = _options.sensitive,\n      sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n  var paths = [].concat(path);\n  return paths.reduce(function (matched, path) {\n    if (!path && path !== \"\") return null;\n    if (matched) return matched;\n\n    var _compilePath = compilePath$1(path, {\n      end: exact,\n      strict: strict,\n      sensitive: sensitive\n    }),\n        regexp = _compilePath.regexp,\n        keys = _compilePath.keys;\n\n    var match = regexp.exec(pathname);\n    if (!match) return null;\n    var url = match[0],\n        values = match.slice(1);\n    var isExact = pathname === url;\n    if (exact && !isExact) return null;\n    return {\n      path: path,\n      // the path used to match\n      url: path === \"/\" && url === \"\" ? \"/\" : url,\n      // the matched portion of the URL\n      isExact: isExact,\n      // whether or not we matched exactly\n      params: keys.reduce(function (memo, key, index) {\n        memo[key.name] = values[index];\n        return memo;\n      }, {})\n    };\n  }, null);\n}\n\nfunction isEmptyChildren(children) {\n  return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n  var value = children(props);\n  process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\"<Route\" + (path ? \" path=\\\"\" + path + \"\\\"\" : \"\") + \">, but you \") + \"should have returned a React element or `null`\") : void 0;\n  return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(Route, _React$Component);\n\n  function Route() {\n    return _React$Component.apply(this, arguments) || this;\n  }\n\n  var _proto = Route.prototype;\n\n  _proto.render = function render() {\n    var _this = this;\n\n    return React.createElement(context.Consumer, null, function (context$1) {\n      !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Route> outside a <Router>\") : invariant(false) : void 0;\n      var location = _this.props.location || context$1.location;\n      var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us\n      : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n      var props = _extends({}, context$1, {\n        location: location,\n        match: match\n      });\n\n      var _this$props = _this.props,\n          children = _this$props.children,\n          component = _this$props.component,\n          render = _this$props.render; // Preact uses an empty array as children by\n      // default, so use null if that's the case.\n\n      if (Array.isArray(children) && children.length === 0) {\n        children = null;\n      }\n\n      return React.createElement(context.Provider, {\n        value: props\n      }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n    });\n  };\n\n  return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n  Route.propTypes = {\n    children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n    component: function component(props, propName) {\n      if (props[propName] && !isValidElementType(props[propName])) {\n        return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n      }\n    },\n    exact: PropTypes.bool,\n    location: PropTypes.object,\n    path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n    render: PropTypes.func,\n    sensitive: PropTypes.bool,\n    strict: PropTypes.bool\n  };\n\n  Route.prototype.componentDidMount = function () {\n    process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\") : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\") : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\") : void 0;\n  };\n\n  Route.prototype.componentDidUpdate = function (prevProps) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), '<Route> 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.') : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n  };\n}\n\nfunction addLeadingSlash(path) {\n  return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n  if (!basename) return location;\n  return _extends({}, location, {\n    pathname: addLeadingSlash(basename) + location.pathname\n  });\n}\n\nfunction stripBasename(basename, location) {\n  if (!basename) return location;\n  var base = addLeadingSlash(basename);\n  if (location.pathname.indexOf(base) !== 0) return location;\n  return _extends({}, 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 function () {\n    process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with <StaticRouter>\", methodName) : invariant(false);\n  };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" <Router>, 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 */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(StaticRouter, _React$Component);\n\n  function StaticRouter() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n    _this.handlePush = function (location) {\n      return _this.navigateTo(location, \"PUSH\");\n    };\n\n    _this.handleReplace = function (location) {\n      return _this.navigateTo(location, \"REPLACE\");\n    };\n\n    _this.handleListen = function () {\n      return noop;\n    };\n\n    _this.handleBlock = function () {\n      return noop;\n    };\n\n    return _this;\n  }\n\n  var _proto = StaticRouter.prototype;\n\n  _proto.navigateTo = function navigateTo(location, action) {\n    var _this$props = this.props,\n        _this$props$basename = _this$props.basename,\n        basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n        _this$props$context = _this$props.context,\n        context = _this$props$context === void 0 ? {} : _this$props$context;\n    context.action = action;\n    context.location = addBasename(basename, createLocation(location));\n    context.url = createURL(context.location);\n  };\n\n  _proto.render = function render() {\n    var _this$props2 = this.props,\n        _this$props2$basename = _this$props2.basename,\n        basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n        _this$props2$context = _this$props2.context,\n        context = _this$props2$context === void 0 ? {} : _this$props2$context,\n        _this$props2$location = _this$props2.location,\n        location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n        rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n    var history = {\n      createHref: function createHref(path) {\n        return addLeadingSlash(basename + createURL(path));\n      },\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    return React.createElement(Router, _extends({}, rest, {\n      history: history,\n      staticContext: context\n    }));\n  };\n\n  return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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    process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<StaticRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n  };\n}\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(Switch, _React$Component);\n\n  function Switch() {\n    return _React$Component.apply(this, arguments) || this;\n  }\n\n  var _proto = Switch.prototype;\n\n  _proto.render = function render() {\n    var _this = this;\n\n    return React.createElement(context.Consumer, null, function (context) {\n      !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Switch> outside a <Router>\") : invariant(false) : void 0;\n      var location = _this.props.location || context.location;\n      var element, match; // 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 <Route>s that render the same\n      // component at different URLs.\n\n      React.Children.forEach(_this.props.children, function (child) {\n        if (match == null && React.isValidElement(child)) {\n          element = child;\n          var path = child.props.path || child.props.from;\n          match = path ? matchPath(location.pathname, _extends({}, child.props, {\n            path: path\n          })) : context.match;\n        }\n      });\n      return match ? React.cloneElement(element, {\n        location: location,\n        computedMatch: match\n      }) : null;\n    });\n  };\n\n  return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n  Switch.propTypes = {\n    children: PropTypes.node,\n    location: PropTypes.object\n  };\n\n  Switch.prototype.componentDidUpdate = function (prevProps) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), '<Switch> 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.') : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n  };\n}\n/**\n * A public higher-order component to access the imperative API\n */\n\n\nfunction withRouter(Component) {\n  var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n  var C = function C(props) {\n    var wrappedComponentRef = props.wrappedComponentRef,\n        remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n    return React.createElement(context.Consumer, null, function (context) {\n      !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a <Router>\") : invariant(false) : void 0;\n      return React.createElement(Component, _extends({}, remainingProps, context, {\n        ref: wrappedComponentRef\n      }));\n    });\n  };\n\n  C.displayName = displayName;\n  C.WrappedComponent = Component;\n\n  if (process.env.NODE_ENV !== \"production\") {\n    C.propTypes = {\n      wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n    };\n  }\n\n  return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\n\nfunction useHistory() {\n  if (process.env.NODE_ENV !== \"production\") {\n    !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n  }\n\n  return useContext(historyContext);\n}\n\nfunction useLocation() {\n  if (process.env.NODE_ENV !== \"production\") {\n    !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n  }\n\n  return useContext(context).location;\n}\n\nfunction useParams() {\n  if (process.env.NODE_ENV !== \"production\") {\n    !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n  }\n\n  var match = useContext(context).match;\n  return match ? match.params : {};\n}\n\nfunction useRouteMatch(path) {\n  if (process.env.NODE_ENV !== \"production\") {\n    !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n  }\n\n  var location = useLocation();\n  var match = useContext(context).match;\n  return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n  if (typeof window !== \"undefined\") {\n    var global = window;\n    var key = \"__react_router_build__\";\n    var buildNames = {\n      cjs: \"CommonJS\",\n      esm: \"ES modules\",\n      umd: \"UMD\"\n    };\n\n    if (global[key] && global[key] !== \"esm\") {\n      var initialBuildName = buildNames[global[key]];\n      var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n      // loading 2 different builds.\n\n      throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n    }\n\n    global[key] = \"esm\";\n  }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };","map":{"version":3,"sources":["../modules/createNameContext.js","../modules/HistoryContext.js","../modules/RouterContext.js","../modules/Router.js","../modules/MemoryRouter.js","../modules/Lifecycle.js","../modules/Prompt.js","../modules/generatePath.js","../modules/Redirect.js","../modules/matchPath.js","../modules/Route.js","../modules/StaticRouter.js","../modules/Switch.js","../modules/withRouter.js","../modules/hooks.js","../modules/index.js"],"names":["createNamedContext","context","createContext","historyContext","Router","React","Component","computeRootMatch","path","url","params","isExact","pathname","location","props","componentDidMount","_pendingLocation","componentWillUnmount","render","RouterContext","history","match","staticContext","HistoryContext","children","PropTypes","object","warning","prevProps","MemoryRouter","createHistory","initialEntries","initialIndex","getUserConfirmation","keyLength","node","Lifecycle","componentDidUpdate","message","when","method","self","messageType","Prompt","isRequired","cache","cacheLimit","cacheCount","generator","pathToRegexp","pretty","computedMatch","to","push","createLocation","generatePath","prevLocation","locationsAreEqual","key","Redirect","from","cacheKey","options","pathCache","keys","regexp","result","Array","exact","strict","sensitive","paths","compilePath","end","values","memo","value","Route","matchPath","component","evalChildrenDev","isValidElementType","bool","isEmptyChildren","addLeadingSlash","base","createPath","invariant","StaticRouter","navigateTo","basename","addBasename","createURL","handlePush","handleReplace","handleListen","handleBlock","rest","createHref","action","stripBasename","replace","go","staticHandler","goBack","goForward","listen","block","Switch","element","child","displayName","C","wrappedComponentRef","remainingProps","hoistStatics","useContext","useLocation","global","buildNames","cjs","esm","umd","initialBuildName","secondaryBuildName"],"mappings":"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","sourcesContent":["// 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","// 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\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 <Redirect>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 <Router> 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) this.unlisten();\n  }\n\n  render() {\n    return (\n      <RouterContext.Provider\n        value={{\n          history: this.props.history,\n          location: this.state.location,\n          match: Router.computeRootMatch(this.state.location.pathname),\n          staticContext: this.props.staticContext\n        }}\n      >\n        <HistoryContext.Provider\n          children={this.props.children || null}\n          value={this.props.history}\n        />\n      </RouterContext.Provider>\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 <Router history>\"\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 <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n  history = createHistory(this.props);\n\n  render() {\n    return <Router history={this.history} children={this.props.children} />;\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      \"<MemoryRouter> 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 React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n  return (\n    <RouterContext.Consumer>\n      {context => {\n        invariant(context, \"You should not use <Prompt> outside a <Router>\");\n\n        if (!when || context.staticContext) return null;\n\n        const method = context.history.block;\n\n        return (\n          <Lifecycle\n            onMount={self => {\n              self.release = method(message);\n            }}\n            onUpdate={(self, prevProps) => {\n              if (prevProps.message !== message) {\n                self.release();\n                self.release = method(message);\n              }\n            }}\n            onUnmount={self => {\n              self.release();\n            }}\n            message={message}\n          />\n        );\n      }}\n    </RouterContext.Consumer>\n  );\n}\n\nif (__DEV__) {\n  const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n  Prompt.propTypes = {\n    when: PropTypes.bool,\n    message: messageType.isRequired\n  };\n}\n\nexport default Prompt;\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    <RouterContext.Consumer>\n      {context => {\n        invariant(context, \"You should not use <Redirect> outside a <Router>\");\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          <Lifecycle\n            onMount={() => {\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    </RouterContext.Consumer>\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      `<Route${path ? ` path=\"${path}\"` : \"\"}>, 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      <RouterContext.Consumer>\n        {context => {\n          invariant(context, \"You should not use <Route> outside a <Router>\");\n\n          const location = this.props.location || context.location;\n          const match = this.props.computedMatch\n            ? this.props.computedMatch // <Switch> 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) && children.length === 0) {\n            children = null;\n          }\n\n          return (\n            <RouterContext.Provider value={props}>\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            </RouterContext.Provider>\n          );\n        }}\n      </RouterContext.Consumer>\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 <Route component> and <Route children> in the same route; <Route component> 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 <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n    );\n\n    warning(\n      !(this.props.component && this.props.render),\n      \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n    );\n  };\n\n  Route.prototype.componentDidUpdate = function(prevProps) {\n    warning(\n      !(this.props.location && !prevProps.location),\n      '<Route> 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      '<Route> 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 <StaticRouter>\", methodName);\n  };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, 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 <Router {...rest} history={history} staticContext={context} />;\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      \"<StaticRouter> 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 <Route> that matches.\n */\nclass Switch extends React.Component {\n  render() {\n    return (\n      <RouterContext.Consumer>\n        {context => {\n          invariant(context, \"You should not use <Switch> outside a <Router>\");\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 <Route>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      </RouterContext.Consumer>\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      '<Switch> 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      '<Switch> 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 PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n  const displayName = `withRouter(${Component.displayName || Component.name})`;\n  const C = props => {\n    const { wrappedComponentRef, ...remainingProps } = props;\n\n    return (\n      <RouterContext.Consumer>\n        {context => {\n          invariant(\n            context,\n            `You should not use <${displayName} /> outside a <Router>`\n          );\n          return (\n            <Component\n              {...remainingProps}\n              {...context}\n              ref={wrappedComponentRef}\n            />\n          );\n        }}\n      </RouterContext.Consumer>\n    );\n  };\n\n  C.displayName = displayName;\n  C.WrappedComponent = Component;\n\n  if (__DEV__) {\n    C.propTypes = {\n      wrappedComponentRef: PropTypes.oneOfType([\n        PropTypes.string,\n        PropTypes.func,\n        PropTypes.object\n      ])\n    };\n  }\n\n  return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context 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(Context).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(Context).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(Context).match;\n\n  return path ? matchPath(location.pathname, path) : match;\n}\n","if (__DEV__) {\n  if (typeof window !== \"undefined\") {\n    const global = window;\n    const key = \"__react_router_build__\";\n    const buildNames = { cjs: \"CommonJS\", esm: \"ES modules\", umd: \"UMD\" };\n\n    if (global[key] && global[key] !== process.env.BUILD_FORMAT) {\n      const initialBuildName = buildNames[global[key]];\n      const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];\n\n      // TODO: Add link to article that explains in detail how to avoid\n      // loading 2 different builds.\n      throw new Error(\n        `You are loading the ${secondaryBuildName} build of React Router ` +\n          `on a page that is already running the ${initialBuildName} ` +\n          `build, so things won't work right.`\n      );\n    }\n\n    global[key] = process.env.BUILD_FORMAT;\n  }\n}\n\nexport { default as MemoryRouter } from \"./MemoryRouter.js\";\nexport { default as Prompt } from \"./Prompt.js\";\nexport { default as Redirect } from \"./Redirect.js\";\nexport { default as Route } from \"./Route.js\";\nexport { default as Router } from \"./Router.js\";\nexport { default as StaticRouter } from \"./StaticRouter.js\";\nexport { default as Switch } from \"./Switch.js\";\nexport { default as generatePath } from \"./generatePath.js\";\nexport { default as matchPath } from \"./matchPath.js\";\nexport { default as withRouter } from \"./withRouter.js\";\n\nimport { useHistory, useLocation, useParams, useRouteMatch } from \"./hooks.js\";\nexport { useHistory, useLocation, useParams, useRouteMatch };\n\nexport { default as __HistoryContext } from \"./HistoryContext.js\";\nexport { default as __RouterContext } from \"./RouterContext.js\";\n"]},"metadata":{},"sourceType":"module"}