{"version":3,"file":"static/js/react-components-react-router-e44ca198843db623b722.js","mappings":"yyBAGMA,G,yBAAqB,SAAAC,G,IACnBC,GAAUC,EAAAA,EAAAA,K,OAChBD,EAAQE,YAAcH,EAEfC,ICLHG,EAA+BL,EAAmB,kBCClDA,EAAqB,SAAAC,G,IACnBC,GAAUC,EAAAA,EAAAA,K,OAChBD,EAAQE,YAAcH,EAEfC,GAGHA,EAAwBF,EAAmB,UCA3CM,E,uBAKQC,G,2BACJA,IAAN,MAEKC,MAAQ,CACXC,SAAUF,EAAMG,QAAQD,U,EAQrBE,YAAa,E,EACbC,iBAAmB,KAEnBL,EAAMM,gB,EACJC,SAAWP,EAAMG,QAAQK,QAAO,SAAAN,GAC/B,EAAKE,W,EACFK,SAAS,CAAEP,SAAAA,I,EAEXG,iBAAmBH,M,iBAxBzBQ,iBAAP,SAAwBC,G,MACf,CAAEC,KAAM,IAAKC,IAAK,IAAKC,OAAQ,GAAIC,QAAsB,MAAbJ,I,2BA6BrDK,kBAAA,W,KACOZ,YAAa,EAEda,KAAKZ,kB,KACFI,SAAS,CAAEP,SAAUe,KAAKZ,oB,EAInCa,qBAAA,WACMD,KAAKV,UAAUU,KAAKV,Y,EAG1BY,OAAA,W,OAEI,gBAACC,EAAcC,SAAf,CACEC,MAAO,CACLnB,QAASc,KAAKjB,MAAMG,QACpBD,SAAUe,KAAKhB,MAAMC,SACrBqB,MAAOxB,EAAOW,iBAAiBO,KAAKhB,MAAMC,SAASS,UACnDL,cAAeW,KAAKjB,MAAMM,gBAG5B,gBAACkB,EAAeH,SAAhB,CACEI,SAAUR,KAAKjB,MAAMyB,UAAY,KACjCH,MAAOL,KAAKjB,MAAMG,Y,GAvDPuB,EAAAA,W,ICRfC,E,sGACJX,kBAAA,WACMC,KAAKjB,MAAM4B,SAASX,KAAKjB,MAAM4B,QAAQC,KAAKZ,KAAMA,O,EAGxDa,mBAAA,SAAmBC,GACbd,KAAKjB,MAAMgC,UAAUf,KAAKjB,MAAMgC,SAASH,KAAKZ,KAAMA,KAAMc,I,EAGhEb,qBAAA,WACMD,KAAKjB,MAAMiC,WAAWhB,KAAKjB,MAAMiC,UAAUJ,KAAKZ,KAAMA,O,EAG5DE,OAAA,W,OACS,M,GAdaO,EAAAA,WCAxB,IAAMQ,EAAQ,GAEVC,EAAa,EAkBjB,SAASC,EAAaxB,EAAYE,G,YAAa,IAAzBF,IAAAA,EAAO,UAAkB,IAAbE,IAAAA,EAAS,IACzB,MAATF,EAAeA,EAjBxB,SAAqBA,G,GACfsB,EAAMtB,GAAO,OAAOsB,EAAMtB,G,IAExByB,EAAYC,IAAAA,QAAqB1B,G,OANtB,IAQbuB,IACFD,EAAMtB,GAAQyB,EACdF,KAGKE,EAOsBE,CAAY3B,EAAZ2B,CAAkBzB,EAAQ,CAAE0B,QAAQ,ICXnE,SAASC,EAAT,G,IAAoBC,EAAmC,EAAnCA,cAAeC,EAAoB,EAApBA,G,IAAIC,KAAAA,OAAgB,S,OAEnD,gBAACxB,EAAcyB,SAAf,MACG,SAAAlD,GACWA,IAAVmD,EAAAA,EAAAA,IAAU,G,IAEF3C,EAA2BR,EAA3BQ,QAASG,EAAkBX,EAAlBW,cAEXyC,EAASH,EAAOzC,EAAQyC,KAAOzC,EAAQ6C,QACvC9C,GAAW+C,EAAAA,EAAAA,IACfP,EACkB,iBAAPC,EACLP,EAAaO,EAAID,EAAc5B,SADjC,UAGO6B,EAHP,CAIIhC,SAAUyB,EAAaO,EAAGhC,SAAU+B,EAAc5B,UAEtD6B,G,OAKFrC,GACFyC,EAAO7C,GACA,MAIP,gBAACyB,EAAD,CACEC,QAAS,WACPmB,EAAO7C,IAET8B,SAAU,SAACkB,EAAMnB,G,IACToB,GAAeF,EAAAA,EAAAA,IAAelB,EAAUY,KAE3CS,EAAAA,EAAAA,IAAkBD,GAAD,UACbjD,EADa,CAEhBmD,IAAKF,EAAaE,QAGpBN,EAAO7C,IAGXyC,GAAIA,OCrDhB,IAAMT,EAAQ,GAEVC,EAAa,EAuBjB,SAASmB,EAAU3C,EAAU4C,QAAc,IAAdA,IAAAA,EAAU,KACd,iBAAZA,GAAwBC,MAAMC,QAAQF,MAC/CA,EAAU,CAAE3C,KAAM2C,I,MAG+CA,EAArDG,MAAAA,OAL2B,S,EAK0BH,EAAtCI,OAAAA,OALY,S,EAK0BJ,EAAtBK,UAAAA,OALJ,S,MAO3B,GAAGC,OAFkDN,EAA3D3C,MAIKkD,QAAO,SAACC,EAASnD,G,IACvBA,GAAiB,KAATA,EAAa,OAAO,K,GAC7BmD,EAAS,OAAOA,E,MAhCxB,SAAqBnD,EAAM2C,G,IACnBS,EAAW,GAAGT,EAAQU,IAAMV,EAAQI,OAASJ,EAAQK,UACrDM,EAAYhC,EAAM8B,KAAc9B,EAAM8B,GAAY,I,GAEpDE,EAAUtD,GAAO,OAAOsD,EAAUtD,G,IAEhCuD,EAAO,GAEPC,EAAS,CAAEC,OADF/B,GAAAA,CAAa1B,EAAMuD,EAAMZ,GACfY,KAAAA,G,OAXR,IAabhC,IACF+B,EAAUtD,GAAQwD,EAClBjC,KAGKiC,EAmBoB7B,CAAY3B,EAAM,CACzCqD,IAAKP,EACLC,OAAAA,EACAC,UAAAA,IAHcO,EAJqB,EAIrBA,KAKV5C,EAT+B,EAI7B8C,OAKaC,KAAK3D,G,IAErBY,EAAO,OAAO,K,IAEZV,EAAkBU,EAbY,GAatBgD,EAAUhD,EAbY,SAc/BR,EAAUJ,IAAaE,E,OAEzB6C,IAAU3C,EAAgB,KAEvB,CACLH,KAAAA,EACAC,IAAc,MAATD,GAAwB,KAARC,EAAa,IAAMA,EACxCE,QAAAA,EACAD,OAAQqD,EAAKL,QAAO,SAACU,EAAMnB,EAAKoB,G,OAC9BD,EAAKnB,EAAI3D,MAAQ6E,EAAOE,GACjBD,IACN,OAEJ,M,IClCCE,E,6FACJvD,OAAA,W,kBAEI,gBAACC,EAAcyB,SAAf,MACG,SAAAlD,GACWA,IAAVmD,EAAAA,EAAAA,IAAU,G,IAEJ5C,EAAW,EAAKF,MAAME,UAAYP,EAAQO,SAC1CqB,EAAQ,EAAKvB,MAAM0C,cACrB,EAAK1C,MAAM0C,cACX,EAAK1C,MAAMY,KACX0C,EAAUpD,EAASS,SAAU,EAAKX,OAClCL,EAAQ4B,MAENvB,GAAQ,UAAKL,EAAR,CAAiBO,SAAAA,EAAUqB,MAAAA,I,EAEA,EAAKvB,MAArCyB,EAZI,EAYJA,SAAUkD,EAZN,EAYMA,UAAWxD,EAZjB,EAYiBA,O,OAIvBqC,MAAMC,QAAQhC,IAAiC,IAApBA,EAASmD,SACtCnD,EAAW,MAIX,gBAACL,EAAcC,SAAf,CAAwBC,MAAOtB,GAC5BA,EAAMuB,MACHE,EACsB,mBAAbA,EAGHA,EAASzB,GACXyB,EACFkD,EACAjD,EAAAA,cAAoBiD,EAAW3E,GAC/BmB,EACAA,EAAOnB,GACP,KACkB,mBAAbyB,EAGLA,EAASzB,GACX,U,GA1CE0B,EAAAA,W,IClBdmD,E,6FACJ1D,OAAA,W,kBAEI,gBAACC,EAAcyB,SAAf,MACG,SAAAlD,GACWA,IAAVmD,EAAAA,EAAAA,IAAU,G,IAINgC,EAASvD,EAFPrB,EAAW,EAAKF,MAAME,UAAYP,EAAQO,S,OAQhDwB,EAAAA,SAAAA,QAAuB,EAAK1B,MAAMyB,UAAU,SAAAsD,G,GAC7B,MAATxD,GAAiBG,EAAAA,eAAqBqD,GAAQ,CAChDD,EAAUC,E,IAEJnE,EAAOmE,EAAM/E,MAAMY,MAAQmE,EAAM/E,MAAMgF,KAE7CzD,EAAQX,EACJ0C,EAAUpD,EAASS,UAAV,UAAyBoE,EAAM/E,MAA/B,CAAsCY,KAAAA,KAC/CjB,EAAQ4B,UAITA,EACHG,EAAAA,aAAmBoD,EAAS,CAAE5E,SAAAA,EAAUwC,cAAenB,IACvD,S,GA7BOG,EAAAA,WCJrB,IAAMuD,EAAavD,EAAAA,WAEnB,SAAgBwD,I,OAQPD,EAAWzD,GAGpB,SAAgB2D,I,OAQPF,EAAWG,GAASlF,SAG7B,SAAgBmF,I,IAQR9D,EAAQ0D,EAAWG,GAAS7D,M,OAC3BA,EAAQA,EAAMT,OAAS,GAGhC,SAAgBwE,EAAc1E,G,IAQtBV,EAAWiF,IACX5D,EAAQ0D,EAAWG,GAAS7D,M,OAE3BX,EAAO0C,EAAUpD,EAASS,SAAUC,GAAQW,I,yICpDrD,IAAMW,EAAQ,GAEVC,EAAa,EAuBjB,SAASmB,EAAU3C,EAAU4C,QAAc,IAAdA,IAAAA,EAAU,KACd,iBAAZA,GAAwBC,MAAMC,QAAQF,MAC/CA,EAAU,CAAE3C,KAAM2C,I,MAG+CA,EAArDG,MAAAA,OAL2B,S,EAK0BH,EAAtCI,OAAAA,OALY,S,EAK0BJ,EAAtBK,UAAAA,OALJ,S,MAO3B,GAAGC,OAFkDN,EAA3D3C,MAIKkD,QAAO,SAACC,EAASnD,G,IACvBA,GAAiB,KAATA,EAAa,OAAO,K,GAC7BmD,EAAS,OAAOA,E,MAhCxB,SAAqBnD,EAAM2C,G,IACnBS,EAAW,GAAGT,EAAQU,IAAMV,EAAQI,OAASJ,EAAQK,UACrDM,EAAYhC,EAAM8B,KAAc9B,EAAM8B,GAAY,I,GAEpDE,EAAUtD,GAAO,OAAOsD,EAAUtD,G,IAEhCuD,EAAO,GAEPC,EAAS,CAAEC,OADF/B,GAAAA,CAAa1B,EAAMuD,EAAMZ,GACfY,KAAAA,G,OAXR,IAabhC,IACF+B,EAAUtD,GAAQwD,EAClBjC,KAGKiC,EAmBoB7B,CAAY3B,EAAM,CACzCqD,IAAKP,EACLC,OAAAA,EACAC,UAAAA,IAHcO,EAJqB,EAIrBA,KAKV5C,EAT+B,EAI7B8C,OAKaC,KAAK3D,G,IAErBY,EAAO,OAAO,K,IAEZV,EAAkBU,EAbY,GAatBgD,EAAUhD,EAbY,SAc/BR,EAAUJ,IAAaE,E,OAEzB6C,IAAU3C,EAAgB,KAEvB,CACLH,KAAAA,EACAC,IAAc,MAATD,GAAwB,KAARC,EAAa,IAAMA,EACxCE,QAAAA,EACAD,OAAQqD,EAAKL,QAAO,SAACU,EAAMnB,EAAKoB,G,OAC9BD,EAAKnB,EAAI3D,MAAQ6E,EAAOE,GACjBD,IACN,OAEJ","sources":["webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/createNameContext.js","webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/HistoryContext.js","webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/RouterContext.js","webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/Router.js","webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/Lifecycle.js","webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/generatePath.js","webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/Redirect.js","webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/matchPath.js","webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/Route.js","webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/Switch.js","webpack://leadsbridge/./node_modules/react-router-dom/node_modules/react-router/modules/hooks.js","webpack://leadsbridge/./node_modules/react-router/modules/matchPath.js"],"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\";\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    <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 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 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","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"],"names":["createNamedContext","name","context","createContext","displayName","historyContext","Router","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","setState","computeRootMatch","pathname","path","url","params","isExact","componentDidMount","this","componentWillUnmount","render","RouterContext","Provider","value","match","HistoryContext","children","React","Lifecycle","onMount","call","componentDidUpdate","prevProps","onUpdate","onUnmount","cache","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","to","push","Consumer","invariant","method","replace","createLocation","self","prevLocation","locationsAreEqual","key","matchPath","options","Array","isArray","exact","strict","sensitive","concat","reduce","matched","cacheKey","end","pathCache","keys","result","regexp","exec","values","memo","index","Route","component","length","Switch","element","child","from","useContext","useHistory","useLocation","Context","useParams","useRouteMatch"],"sourceRoot":""}