react-router 5.0.0 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,14 +1,12 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
4
 
7
- var createContext = _interopDefault(require('create-react-context'));
8
5
  var React = _interopDefault(require('react'));
9
6
  var PropTypes = _interopDefault(require('prop-types'));
10
- var warning = _interopDefault(require('tiny-warning'));
11
7
  var history = require('history');
8
+ var warning = _interopDefault(require('tiny-warning'));
9
+ var createContext = _interopDefault(require('mini-create-react-context'));
12
10
  var invariant = _interopDefault(require('tiny-invariant'));
13
11
  var pathToRegexp = _interopDefault(require('path-to-regexp'));
14
12
  var reactIs = require('react-is');
@@ -57,14 +55,13 @@ function _objectWithoutPropertiesLoose(source, excluded) {
57
55
 
58
56
  var createNamedContext = function createNamedContext(name) {
59
57
  var context = createContext();
60
- context.Provider.displayName = name + ".Provider";
61
- context.Consumer.displayName = name + ".Consumer";
58
+ context.displayName = name;
62
59
  return context;
63
60
  };
64
61
 
65
62
  var context =
66
63
  /*#__PURE__*/
67
- createNamedContext('Router');
64
+ createNamedContext("Router");
68
65
 
69
66
  /**
70
67
  * The public API for putting history on context.
@@ -153,7 +150,7 @@ function (_React$Component) {
153
150
  };
154
151
 
155
152
  Router.prototype.componentDidUpdate = function (prevProps) {
156
- warning(prevProps.history === this.props.history, "You cannot change <Router history>");
153
+ warning(prevProps.history === this.props.history, "You cannot change <Router history>") ;
157
154
  };
158
155
  }
159
156
 
@@ -200,7 +197,7 @@ function (_React$Component) {
200
197
  };
201
198
 
202
199
  MemoryRouter.prototype.componentDidMount = function () {
203
- warning(!this.props.history, "<MemoryRouter> ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.");
200
+ warning(!this.props.history, "<MemoryRouter> ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.") ;
204
201
  };
205
202
  }
206
203
 
@@ -242,10 +239,10 @@ function Prompt(_ref) {
242
239
  var message = _ref.message,
243
240
  _ref$when = _ref.when,
244
241
  when = _ref$when === void 0 ? true : _ref$when;
245
- return React.createElement(context.Consumer, null, function (context$$1) {
246
- !context$$1 ? invariant(false, "You should not use <Prompt> outside a <Router>") : void 0;
247
- if (!when || context$$1.staticContext) return null;
248
- var method = context$$1.history.block;
242
+ return React.createElement(context.Consumer, null, function (context) {
243
+ !context ? invariant(false, "You should not use <Prompt> outside a <Router>") : void 0;
244
+ if (!when || context.staticContext) return null;
245
+ var method = context.history.block;
249
246
  return React.createElement(Lifecycle, {
250
247
  onMount: function onMount(self) {
251
248
  self.release = method(message);
@@ -315,11 +312,11 @@ function Redirect(_ref) {
315
312
  to = _ref.to,
316
313
  _ref$push = _ref.push,
317
314
  push = _ref$push === void 0 ? false : _ref$push;
318
- return React.createElement(context.Consumer, null, function (context$$1) {
319
- !context$$1 ? invariant(false, "You should not use <Redirect> outside a <Router>") : void 0;
320
- var history$$1 = context$$1.history,
321
- staticContext = context$$1.staticContext;
322
- var method = push ? history$$1.push : history$$1.replace;
315
+ return React.createElement(context.Consumer, null, function (context) {
316
+ !context ? invariant(false, "You should not use <Redirect> outside a <Router>") : void 0;
317
+ var history$1 = context.history,
318
+ staticContext = context.staticContext;
319
+ var method = push ? history$1.push : history$1.replace;
323
320
  var location = history.createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, {
324
321
  pathname: generatePath(to.pathname, computedMatch.params)
325
322
  }) : to); // When rendering in a static context,
@@ -335,7 +332,11 @@ function Redirect(_ref) {
335
332
  method(location);
336
333
  },
337
334
  onUpdate: function onUpdate(self, prevProps) {
338
- if (!history.locationsAreEqual(prevProps.to, location)) {
335
+ var prevLocation = history.createLocation(prevProps.to);
336
+
337
+ if (!history.locationsAreEqual(prevLocation, _extends({}, location, {
338
+ key: prevLocation.key
339
+ }))) {
339
340
  method(location);
340
341
  }
341
342
  },
@@ -384,9 +385,12 @@ function matchPath(pathname, options) {
384
385
  options = {};
385
386
  }
386
387
 
387
- if (typeof options === "string") options = {
388
- path: options
389
- };
388
+ if (typeof options === "string" || Array.isArray(options)) {
389
+ options = {
390
+ path: options
391
+ };
392
+ }
393
+
390
394
  var _options = options,
391
395
  path = _options.path,
392
396
  _options$exact = _options.exact,
@@ -397,6 +401,7 @@ function matchPath(pathname, options) {
397
401
  sensitive = _options$sensitive === void 0 ? false : _options$sensitive;
398
402
  var paths = [].concat(path);
399
403
  return paths.reduce(function (matched, path) {
404
+ if (!path && path !== "") return null;
400
405
  if (matched) return matched;
401
406
 
402
407
  var _compilePath = compilePath$1(path, {
@@ -431,6 +436,12 @@ function matchPath(pathname, options) {
431
436
  function isEmptyChildren(children) {
432
437
  return React.Children.count(children) === 0;
433
438
  }
439
+
440
+ function evalChildrenDev(children, props, path) {
441
+ var value = children(props);
442
+ 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`") ;
443
+ return value || null;
444
+ }
434
445
  /**
435
446
  * The public API for matching a single path and rendering.
436
447
  */
@@ -450,13 +461,13 @@ function (_React$Component) {
450
461
  _proto.render = function render() {
451
462
  var _this = this;
452
463
 
453
- return React.createElement(context.Consumer, null, function (context$$1) {
454
- !context$$1 ? invariant(false, "You should not use <Route> outside a <Router>") : void 0;
455
- var location = _this.props.location || context$$1.location;
464
+ return React.createElement(context.Consumer, null, function (context$1) {
465
+ !context$1 ? invariant(false, "You should not use <Route> outside a <Router>") : void 0;
466
+ var location = _this.props.location || context$1.location;
456
467
  var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us
457
- : _this.props.path ? matchPath(location.pathname, _this.props) : context$$1.match;
468
+ : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;
458
469
 
459
- var props = _extends({}, context$$1, {
470
+ var props = _extends({}, context$1, {
460
471
  location: location,
461
472
  match: match
462
473
  });
@@ -471,22 +482,9 @@ function (_React$Component) {
471
482
  children = null;
472
483
  }
473
484
 
474
- if (typeof children === "function") {
475
- children = children(props);
476
-
477
- if (children === undefined) {
478
- {
479
- var path = _this.props.path;
480
- warning(false, "You returned `undefined` from the `children` function of " + ("<Route" + (path ? " path=\"" + path + "\"" : "") + ">, but you ") + "should have returned a React element or `null`");
481
- }
482
-
483
- children = null;
484
- }
485
- }
486
-
487
485
  return React.createElement(context.Provider, {
488
486
  value: props
489
- }, children && !isEmptyChildren(children) ? children : props.match ? component ? React.createElement(component, props) : render ? render(props) : null : null);
487
+ }, props.match ? children ? typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : null);
490
488
  });
491
489
  };
492
490
 
@@ -510,14 +508,14 @@ function (_React$Component) {
510
508
  };
511
509
 
512
510
  Route.prototype.componentDidMount = function () {
513
- 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");
514
- 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");
515
- 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");
511
+ 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") ;
512
+ 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") ;
513
+ 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") ;
516
514
  };
517
515
 
518
516
  Route.prototype.componentDidUpdate = function (prevProps) {
519
- 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.');
520
- 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.');
517
+ 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.') ;
518
+ 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.') ;
521
519
  };
522
520
  }
523
521
 
@@ -547,7 +545,7 @@ function createURL(location) {
547
545
 
548
546
  function staticHandler(methodName) {
549
547
  return function () {
550
- invariant(false, "You cannot %s with <StaticRouter>", methodName);
548
+ invariant(false, "You cannot %s with <StaticRouter>", methodName) ;
551
549
  };
552
550
  }
553
551
 
@@ -599,7 +597,8 @@ function (_React$Component) {
599
597
  var _this$props = this.props,
600
598
  _this$props$basename = _this$props.basename,
601
599
  basename = _this$props$basename === void 0 ? "" : _this$props$basename,
602
- context = _this$props.context;
600
+ _this$props$context = _this$props.context,
601
+ context = _this$props$context === void 0 ? {} : _this$props$context;
603
602
  context.action = action;
604
603
  context.location = addBasename(basename, history.createLocation(location));
605
604
  context.url = createURL(context.location);
@@ -615,7 +614,7 @@ function (_React$Component) {
615
614
  location = _this$props2$location === void 0 ? "/" : _this$props2$location,
616
615
  rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]);
617
616
 
618
- var history$$1 = {
617
+ var history$1 = {
619
618
  createHref: function createHref(path) {
620
619
  return addLeadingSlash(basename + createURL(path));
621
620
  },
@@ -630,7 +629,7 @@ function (_React$Component) {
630
629
  block: this.handleBlock
631
630
  };
632
631
  return React.createElement(Router, _extends({}, rest, {
633
- history: history$$1,
632
+ history: history$1,
634
633
  staticContext: context
635
634
  }));
636
635
  };
@@ -646,7 +645,7 @@ function (_React$Component) {
646
645
  };
647
646
 
648
647
  StaticRouter.prototype.componentDidMount = function () {
649
- warning(!this.props.history, "<StaticRouter> ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.");
648
+ warning(!this.props.history, "<StaticRouter> ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.") ;
650
649
  };
651
650
  }
652
651
 
@@ -668,9 +667,9 @@ function (_React$Component) {
668
667
  _proto.render = function render() {
669
668
  var _this = this;
670
669
 
671
- return React.createElement(context.Consumer, null, function (context$$1) {
672
- !context$$1 ? invariant(false, "You should not use <Switch> outside a <Router>") : void 0;
673
- var location = _this.props.location || context$$1.location;
670
+ return React.createElement(context.Consumer, null, function (context) {
671
+ !context ? invariant(false, "You should not use <Switch> outside a <Router>") : void 0;
672
+ var location = _this.props.location || context.location;
674
673
  var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()
675
674
  // here because toArray adds keys to all child elements and we do not want
676
675
  // to trigger an unmount/remount for two <Route>s that render the same
@@ -682,7 +681,7 @@ function (_React$Component) {
682
681
  var path = child.props.path || child.props.from;
683
682
  match = path ? matchPath(location.pathname, _extends({}, child.props, {
684
683
  path: path
685
- })) : context$$1.match;
684
+ })) : context.match;
686
685
  }
687
686
  });
688
687
  return match ? React.cloneElement(element, {
@@ -702,8 +701,8 @@ function (_React$Component) {
702
701
  };
703
702
 
704
703
  Switch.prototype.componentDidUpdate = function (prevProps) {
705
- 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.');
706
- 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.');
704
+ 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.') ;
705
+ 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.') ;
707
706
  };
708
707
  }
709
708
 
@@ -712,31 +711,63 @@ function (_React$Component) {
712
711
  */
713
712
 
714
713
  function withRouter(Component) {
714
+ var displayName = "withRouter(" + (Component.displayName || Component.name) + ")";
715
+
715
716
  var C = function C(props) {
716
717
  var wrappedComponentRef = props.wrappedComponentRef,
717
718
  remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]);
718
719
 
719
- return React.createElement(Route, {
720
- children: function children(routeComponentProps) {
721
- return React.createElement(Component, _extends({}, remainingProps, routeComponentProps, {
722
- ref: wrappedComponentRef
723
- }));
724
- }
720
+ return React.createElement(context.Consumer, null, function (context) {
721
+ !context ? invariant(false, "You should not use <" + displayName + " /> outside a <Router>") : void 0;
722
+ return React.createElement(Component, _extends({}, remainingProps, context, {
723
+ ref: wrappedComponentRef
724
+ }));
725
725
  });
726
726
  };
727
727
 
728
- C.displayName = "withRouter(" + (Component.displayName || Component.name) + ")";
728
+ C.displayName = displayName;
729
729
  C.WrappedComponent = Component;
730
730
 
731
731
  {
732
732
  C.propTypes = {
733
- wrappedComponentRef: PropTypes.func
733
+ wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])
734
734
  };
735
735
  }
736
736
 
737
737
  return hoistStatics(C, Component);
738
738
  }
739
739
 
740
+ var useContext = React.useContext;
741
+ function useHistory() {
742
+ {
743
+ !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useHistory()") : void 0;
744
+ }
745
+
746
+ return useContext(context).history;
747
+ }
748
+ function useLocation() {
749
+ {
750
+ !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useLocation()") : void 0;
751
+ }
752
+
753
+ return useContext(context).location;
754
+ }
755
+ function useParams() {
756
+ {
757
+ !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useParams()") : void 0;
758
+ }
759
+
760
+ var match = useContext(context).match;
761
+ return match ? match.params : {};
762
+ }
763
+ function useRouteMatch(path) {
764
+ {
765
+ !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useRouteMatch()") : void 0;
766
+ }
767
+
768
+ return path ? matchPath(useLocation().pathname, path) : useContext(context).match;
769
+ }
770
+
740
771
  {
741
772
  if (typeof window !== "undefined") {
742
773
  var global = window;
@@ -766,7 +797,12 @@ exports.Route = Route;
766
797
  exports.Router = Router;
767
798
  exports.StaticRouter = StaticRouter;
768
799
  exports.Switch = Switch;
800
+ exports.__RouterContext = context;
769
801
  exports.generatePath = generatePath;
770
802
  exports.matchPath = matchPath;
803
+ exports.useHistory = useHistory;
804
+ exports.useLocation = useLocation;
805
+ exports.useParams = useParams;
806
+ exports.useRouteMatch = useRouteMatch;
771
807
  exports.withRouter = withRouter;
772
- exports.__RouterContext = context;
808
+ //# sourceMappingURL=react-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-router.js","sources":["../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"],"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\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 RouterContext from \"./RouterContext\";\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 children={this.props.children || null}\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 );\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\";\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\";\nimport RouterContext from \"./RouterContext\";\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\";\nimport RouterContext from \"./RouterContext\";\nimport generatePath from \"./generatePath\";\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\";\nimport matchPath from \"./matchPath\";\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\";\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\";\nimport matchPath from \"./matchPath\";\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 RouterContext from \"./RouterContext\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\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 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(Context).history;\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 return path\n ? matchPath(useLocation().pathname, path)\n : useContext(Context).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\";\nexport { default as Prompt } from \"./Prompt\";\nexport { default as Redirect } from \"./Redirect\";\nexport { default as Route } from \"./Route\";\nexport { default as Router } from \"./Router\";\nexport { default as StaticRouter } from \"./StaticRouter\";\nexport { default as Switch } from \"./Switch\";\nexport { default as generatePath } from \"./generatePath\";\nexport { default as matchPath } from \"./matchPath\";\nexport { default as withRouter } from \"./withRouter\";\n\nimport { useHistory, useLocation, useParams, useRouteMatch } from \"./hooks.js\";\nexport { useHistory, useLocation, useParams, useRouteMatch };\n\nexport { default as __RouterContext } from \"./RouterContext\";\n"],"names":["createNamedContext","name","context","createContext","displayName","Router","computeRootMatch","pathname","path","url","params","isExact","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","setState","componentDidMount","componentWillUnmount","render","RouterContext","children","match","React","Component","propTypes","PropTypes","node","object","isRequired","prototype","componentDidUpdate","prevProps","warning","MemoryRouter","createHistory","initialEntries","array","initialIndex","number","getUserConfirmation","func","keyLength","Lifecycle","onMount","call","onUpdate","onUnmount","Prompt","message","when","invariant","method","block","self","release","messageType","oneOfType","string","bool","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","from","options","cacheKey","end","strict","sensitive","pathCache","keys","regexp","result","matchPath","Array","isArray","exact","paths","concat","reduce","matched","exec","values","memo","index","isEmptyChildren","Children","count","evalChildrenDev","value","undefined","Route","component","length","createElement","propName","isValidElementType","Error","arrayOf","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","forEach","child","isValidElement","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useContext","useHistory","Context","useLocation","useParams","useRouteMatch","window","global","buildNames","cjs","esm","umd","process","initialBuildName","secondaryBuildName"],"mappings":"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"}
@@ -1 +1,2 @@
1
- "use strict";function _interopDefault(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var createContext=_interopDefault(require("create-react-context")),React=_interopDefault(require("react"));require("prop-types"),require("tiny-warning");var history=require("history"),invariant=_interopDefault(require("tiny-invariant")),pathToRegexp=_interopDefault(require("path-to-regexp"));require("react-is");var hoistStatics=_interopDefault(require("hoist-non-react-statics"));function _extends(){return(_extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function _inheritsLoose(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function _objectWithoutPropertiesLoose(t,e){if(null==t)return{};var n,o,r={},a=Object.keys(t);for(o=0;o<a.length;o++)n=a[o],0<=e.indexOf(n)||(r[n]=t[n]);return r}var createNamedContext=function(t){var e=createContext();return e.Provider.displayName=t+".Provider",e.Consumer.displayName=t+".Consumer",e},context=createNamedContext("Router"),Router=function(n){function t(t){var e;return(e=n.call(this,t)||this).state={location:t.history.location},e._isMounted=!1,e._pendingLocation=null,t.staticContext||(e.unlisten=t.history.listen(function(t){e._isMounted?e.setState({location:t}):e._pendingLocation=t})),e}_inheritsLoose(t,n),t.computeRootMatch=function(t){return{path:"/",url:"/",params:{},isExact:"/"===t}};var e=t.prototype;return e.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},e.componentWillUnmount=function(){this.unlisten&&this.unlisten()},e.render=function(){return React.createElement(context.Provider,{children:this.props.children||null,value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}})},t}(React.Component),MemoryRouter=function(r){function t(){for(var t,e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];return(t=r.call.apply(r,[this].concat(n))||this).history=history.createMemoryHistory(t.props),t}return _inheritsLoose(t,r),t.prototype.render=function(){return React.createElement(Router,{history:this.history,children:this.props.children})},t}(React.Component),Lifecycle=function(t){function e(){return t.apply(this,arguments)||this}_inheritsLoose(e,t);var n=e.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(t){this.props.onUpdate&&this.props.onUpdate.call(this,this,t)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},e}(React.Component);function Prompt(t){var o=t.message,e=t.when,r=void 0===e||e;return React.createElement(context.Consumer,null,function(t){if(t||invariant(!1),!r||t.staticContext)return null;var n=t.history.block;return React.createElement(Lifecycle,{onMount:function(t){t.release=n(o)},onUpdate:function(t,e){e.message!==o&&(t.release(),t.release=n(o))},onUnmount:function(t){t.release()},message:o})})}var cache={},cacheLimit=1e4,cacheCount=0;function compilePath(t){if(cache[t])return cache[t];var e=pathToRegexp.compile(t);return cacheCount<cacheLimit&&(cache[t]=e,cacheCount++),e}function generatePath(t,e){return void 0===t&&(t="/"),void 0===e&&(e={}),"/"===t?t:compilePath(t)(e,{pretty:!0})}function Redirect(t){var a=t.computedMatch,i=t.to,e=t.push,c=void 0!==e&&e;return React.createElement(context.Consumer,null,function(t){t||invariant(!1);var e=t.history,n=t.staticContext,o=c?e.push:e.replace,r=history.createLocation(a?"string"==typeof i?generatePath(i,a.params):_extends({},i,{pathname:generatePath(i.pathname,a.params)}):i);return n?(o(r),null):React.createElement(Lifecycle,{onMount:function(){o(r)},onUpdate:function(t,e){history.locationsAreEqual(e.to,r)||o(r)},to:i})})}var cache$1={},cacheLimit$1=1e4,cacheCount$1=0;function compilePath$1(t,e){var n=""+e.end+e.strict+e.sensitive,o=cache$1[n]||(cache$1[n]={});if(o[t])return o[t];var r=[],a={regexp:pathToRegexp(t,r,e),keys:r};return cacheCount$1<cacheLimit$1&&(o[t]=a,cacheCount$1++),a}function matchPath(u,t){void 0===t&&(t={}),"string"==typeof t&&(t={path:t});var e=t,n=e.path,o=e.exact,p=void 0!==o&&o,r=e.strict,h=void 0!==r&&r,a=e.sensitive,l=void 0!==a&&a;return[].concat(n).reduce(function(t,e){if(t)return t;var n=compilePath$1(e,{end:p,strict:h,sensitive:l}),o=n.regexp,r=n.keys,a=o.exec(u);if(!a)return null;var i=a[0],c=a.slice(1),s=u===i;return p&&!s?null:{path:e,url:"/"===e&&""===i?"/":i,isExact:s,params:r.reduce(function(t,e,n){return t[e.name]=c[n],t},{})}},null)}function isEmptyChildren(t){return 0===React.Children.count(t)}var Route=function(t){function e(){return t.apply(this,arguments)||this}return _inheritsLoose(e,t),e.prototype.render=function(){var c=this;return React.createElement(context.Consumer,null,function(t){t||invariant(!1);var e=c.props.location||t.location,n=_extends({},t,{location:e,match:c.props.computedMatch?c.props.computedMatch:c.props.path?matchPath(e.pathname,c.props):t.match}),o=c.props,r=o.children,a=o.component,i=o.render;return Array.isArray(r)&&0===r.length&&(r=null),"function"==typeof r&&void 0===(r=r(n))&&(r=null),React.createElement(context.Provider,{value:n},r&&!isEmptyChildren(r)?r:n.match?a?React.createElement(a,n):i?i(n):null:null)})},e}(React.Component);function addLeadingSlash(t){return"/"===t.charAt(0)?t:"/"+t}function addBasename(t,e){return t?_extends({},e,{pathname:addLeadingSlash(t)+e.pathname}):e}function stripBasename(t,e){if(!t)return e;var n=addLeadingSlash(t);return 0!==e.pathname.indexOf(n)?e:_extends({},e,{pathname:e.pathname.substr(n.length)})}function createURL(t){return"string"==typeof t?t:history.createPath(t)}function staticHandler(t){return function(){invariant(!1)}}function noop(){}var StaticRouter=function(r){function t(){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return(e=r.call.apply(r,[this].concat(n))||this).handlePush=function(t){return e.navigateTo(t,"PUSH")},e.handleReplace=function(t){return e.navigateTo(t,"REPLACE")},e.handleListen=function(){return noop},e.handleBlock=function(){return noop},e}_inheritsLoose(t,r);var e=t.prototype;return e.navigateTo=function(t,e){var n=this.props,o=n.basename,r=void 0===o?"":o,a=n.context;a.action=e,a.location=addBasename(r,history.createLocation(t)),a.url=createURL(a.location)},e.render=function(){var t=this.props,e=t.basename,n=void 0===e?"":e,o=t.context,r=void 0===o?{}:o,a=t.location,i=void 0===a?"/":a,c=_objectWithoutPropertiesLoose(t,["basename","context","location"]),s={createHref:function(t){return addLeadingSlash(n+createURL(t))},action:"POP",location:stripBasename(n,history.createLocation(i)),push:this.handlePush,replace:this.handleReplace,go:staticHandler("go"),goBack:staticHandler("goBack"),goForward:staticHandler("goForward"),listen:this.handleListen,block:this.handleBlock};return React.createElement(Router,_extends({},c,{history:s,staticContext:r}))},t}(React.Component),Switch=function(t){function e(){return t.apply(this,arguments)||this}return _inheritsLoose(e,t),e.prototype.render=function(){var t=this;return React.createElement(context.Consumer,null,function(n){n||invariant(!1);var o,r,a=t.props.location||n.location;return React.Children.forEach(t.props.children,function(t){if(null==r&&React.isValidElement(t)){var e=(o=t).props.path||t.props.from;r=e?matchPath(a.pathname,_extends({},t.props,{path:e})):n.match}}),r?React.cloneElement(o,{location:a,computedMatch:r}):null})},e}(React.Component);function withRouter(o){var t=function(t){var e=t.wrappedComponentRef,n=_objectWithoutPropertiesLoose(t,["wrappedComponentRef"]);return React.createElement(Route,{children:function(t){return React.createElement(o,_extends({},n,t,{ref:e}))}})};return t.displayName="withRouter("+(o.displayName||o.name)+")",t.WrappedComponent=o,hoistStatics(t,o)}exports.MemoryRouter=MemoryRouter,exports.Prompt=Prompt,exports.Redirect=Redirect,exports.Route=Route,exports.Router=Router,exports.StaticRouter=StaticRouter,exports.Switch=Switch,exports.generatePath=generatePath,exports.matchPath=matchPath,exports.withRouter=withRouter,exports.__RouterContext=context;
1
+ "use strict";function _interopDefault(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var React=_interopDefault(require("react"));require("prop-types");var history=require("history");require("tiny-warning");var createContext=_interopDefault(require("mini-create-react-context")),invariant=_interopDefault(require("tiny-invariant")),pathToRegexp=_interopDefault(require("path-to-regexp"));require("react-is");var hoistStatics=_interopDefault(require("hoist-non-react-statics"));function _extends(){return(_extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function _inheritsLoose(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function _objectWithoutPropertiesLoose(t,e){if(null==t)return{};var n,o,r={},a=Object.keys(t);for(o=0;o<a.length;o++)n=a[o],0<=e.indexOf(n)||(r[n]=t[n]);return r}var createNamedContext=function(t){var e=createContext();return e.displayName=t,e},context=createNamedContext("Router"),Router=function(n){function t(t){var e;return(e=n.call(this,t)||this).state={location:t.history.location},e._isMounted=!1,e._pendingLocation=null,t.staticContext||(e.unlisten=t.history.listen(function(t){e._isMounted?e.setState({location:t}):e._pendingLocation=t})),e}_inheritsLoose(t,n),t.computeRootMatch=function(t){return{path:"/",url:"/",params:{},isExact:"/"===t}};var e=t.prototype;return e.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},e.componentWillUnmount=function(){this.unlisten&&this.unlisten()},e.render=function(){return React.createElement(context.Provider,{children:this.props.children||null,value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}})},t}(React.Component),MemoryRouter=function(r){function t(){for(var t,e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];return(t=r.call.apply(r,[this].concat(n))||this).history=history.createMemoryHistory(t.props),t}return _inheritsLoose(t,r),t.prototype.render=function(){return React.createElement(Router,{history:this.history,children:this.props.children})},t}(React.Component),Lifecycle=function(t){function e(){return t.apply(this,arguments)||this}_inheritsLoose(e,t);var n=e.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(t){this.props.onUpdate&&this.props.onUpdate.call(this,this,t)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},e}(React.Component);function Prompt(t){var o=t.message,e=t.when,r=void 0===e||e;return React.createElement(context.Consumer,null,function(t){if(t||invariant(!1),!r||t.staticContext)return null;var n=t.history.block;return React.createElement(Lifecycle,{onMount:function(t){t.release=n(o)},onUpdate:function(t,e){e.message!==o&&(t.release(),t.release=n(o))},onUnmount:function(t){t.release()},message:o})})}var cache={},cacheLimit=1e4,cacheCount=0;function compilePath(t){if(cache[t])return cache[t];var e=pathToRegexp.compile(t);return cacheCount<cacheLimit&&(cache[t]=e,cacheCount++),e}function generatePath(t,e){return void 0===t&&(t="/"),void 0===e&&(e={}),"/"===t?t:compilePath(t)(e,{pretty:!0})}function Redirect(t){var a=t.computedMatch,i=t.to,e=t.push,c=void 0!==e&&e;return React.createElement(context.Consumer,null,function(t){t||invariant(!1);var e=t.history,n=t.staticContext,o=c?e.push:e.replace,r=history.createLocation(a?"string"==typeof i?generatePath(i,a.params):_extends({},i,{pathname:generatePath(i.pathname,a.params)}):i);return n?(o(r),null):React.createElement(Lifecycle,{onMount:function(){o(r)},onUpdate:function(t,e){var n=history.createLocation(e.to);history.locationsAreEqual(n,_extends({},r,{key:n.key}))||o(r)},to:i})})}var cache$1={},cacheLimit$1=1e4,cacheCount$1=0;function compilePath$1(t,e){var n=""+e.end+e.strict+e.sensitive,o=cache$1[n]||(cache$1[n]={});if(o[t])return o[t];var r=[],a={regexp:pathToRegexp(t,r,e),keys:r};return cacheCount$1<cacheLimit$1&&(o[t]=a,cacheCount$1++),a}function matchPath(u,t){void 0===t&&(t={}),"string"!=typeof t&&!Array.isArray(t)||(t={path:t});var e=t,n=e.path,o=e.exact,p=void 0!==o&&o,r=e.strict,h=void 0!==r&&r,a=e.sensitive,l=void 0!==a&&a;return[].concat(n).reduce(function(t,e){if(!e&&""!==e)return null;if(t)return t;var n=compilePath$1(e,{end:p,strict:h,sensitive:l}),o=n.regexp,r=n.keys,a=o.exec(u);if(!a)return null;var i=a[0],c=a.slice(1),s=u===i;return p&&!s?null:{path:e,url:"/"===e&&""===i?"/":i,isExact:s,params:r.reduce(function(t,e,n){return t[e.name]=c[n],t},{})}},null)}var Route=function(t){function e(){return t.apply(this,arguments)||this}return _inheritsLoose(e,t),e.prototype.render=function(){var c=this;return React.createElement(context.Consumer,null,function(t){t||invariant(!1);var e=c.props.location||t.location,n=_extends({},t,{location:e,match:c.props.computedMatch?c.props.computedMatch:c.props.path?matchPath(e.pathname,c.props):t.match}),o=c.props,r=o.children,a=o.component,i=o.render;return Array.isArray(r)&&0===r.length&&(r=null),React.createElement(context.Provider,{value:n},n.match?r?"function"==typeof r?r(n):r:a?React.createElement(a,n):i?i(n):null:"function"==typeof r?r(n):null)})},e}(React.Component);function addLeadingSlash(t){return"/"===t.charAt(0)?t:"/"+t}function addBasename(t,e){return t?_extends({},e,{pathname:addLeadingSlash(t)+e.pathname}):e}function stripBasename(t,e){if(!t)return e;var n=addLeadingSlash(t);return 0!==e.pathname.indexOf(n)?e:_extends({},e,{pathname:e.pathname.substr(n.length)})}function createURL(t){return"string"==typeof t?t:history.createPath(t)}function staticHandler(t){return function(){invariant(!1)}}function noop(){}var StaticRouter=function(r){function t(){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return(e=r.call.apply(r,[this].concat(n))||this).handlePush=function(t){return e.navigateTo(t,"PUSH")},e.handleReplace=function(t){return e.navigateTo(t,"REPLACE")},e.handleListen=function(){return noop},e.handleBlock=function(){return noop},e}_inheritsLoose(t,r);var e=t.prototype;return e.navigateTo=function(t,e){var n=this.props,o=n.basename,r=void 0===o?"":o,a=n.context,i=void 0===a?{}:a;i.action=e,i.location=addBasename(r,history.createLocation(t)),i.url=createURL(i.location)},e.render=function(){var t=this.props,e=t.basename,n=void 0===e?"":e,o=t.context,r=void 0===o?{}:o,a=t.location,i=void 0===a?"/":a,c=_objectWithoutPropertiesLoose(t,["basename","context","location"]),s={createHref:function(t){return addLeadingSlash(n+createURL(t))},action:"POP",location:stripBasename(n,history.createLocation(i)),push:this.handlePush,replace:this.handleReplace,go:staticHandler(),goBack:staticHandler(),goForward:staticHandler(),listen:this.handleListen,block:this.handleBlock};return React.createElement(Router,_extends({},c,{history:s,staticContext:r}))},t}(React.Component),Switch=function(t){function e(){return t.apply(this,arguments)||this}return _inheritsLoose(e,t),e.prototype.render=function(){var t=this;return React.createElement(context.Consumer,null,function(n){n||invariant(!1);var o,r,a=t.props.location||n.location;return React.Children.forEach(t.props.children,function(t){if(null==r&&React.isValidElement(t)){var e=(o=t).props.path||t.props.from;r=e?matchPath(a.pathname,_extends({},t.props,{path:e})):n.match}}),r?React.cloneElement(o,{location:a,computedMatch:r}):null})},e}(React.Component);function withRouter(o){function t(t){var e=t.wrappedComponentRef,n=_objectWithoutPropertiesLoose(t,["wrappedComponentRef"]);return React.createElement(context.Consumer,null,function(t){return t||invariant(!1),React.createElement(o,_extends({},n,t,{ref:e}))})}var e="withRouter("+(o.displayName||o.name)+")";return t.displayName=e,t.WrappedComponent=o,hoistStatics(t,o)}var useContext=React.useContext;function useHistory(){return useContext(context).history}function useLocation(){return useContext(context).location}function useParams(){var t=useContext(context).match;return t?t.params:{}}function useRouteMatch(t){return t?matchPath(useLocation().pathname,t):useContext(context).match}exports.MemoryRouter=MemoryRouter,exports.Prompt=Prompt,exports.Redirect=Redirect,exports.Route=Route,exports.Router=Router,exports.StaticRouter=StaticRouter,exports.Switch=Switch,exports.__RouterContext=context,exports.generatePath=generatePath,exports.matchPath=matchPath,exports.useHistory=useHistory,exports.useLocation=useLocation,exports.useParams=useParams,exports.useRouteMatch=useRouteMatch,exports.withRouter=withRouter;
2
+ //# sourceMappingURL=react-router.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-router.min.js","sources":["../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"],"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\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 RouterContext from \"./RouterContext\";\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 children={this.props.children || null}\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 );\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\";\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\";\nimport RouterContext from \"./RouterContext\";\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\";\nimport RouterContext from \"./RouterContext\";\nimport generatePath from \"./generatePath\";\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\";\nimport matchPath from \"./matchPath\";\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\";\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\";\nimport matchPath from \"./matchPath\";\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 RouterContext from \"./RouterContext\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\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 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(Context).history;\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 return path\n ? matchPath(useLocation().pathname, path)\n : useContext(Context).match;\n}\n"],"names":["createNamedContext","name","context","createContext","displayName","Router","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","_this","setState","computeRootMatch","pathname","path","url","params","isExact","componentDidMount","this","componentWillUnmount","render","React","RouterContext","Provider","children","value","match","Component","MemoryRouter","createHistory","Lifecycle","onMount","call","componentDidUpdate","prevProps","onUpdate","onUnmount","Prompt","message","when","Consumer","invariant","method","block","self","release","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","options","cacheKey","end","strict","sensitive","pathCache","keys","result","regexp","matchPath","Array","isArray","exact","concat","reduce","matched","exec","values","memo","index","Route","component","length","createElement","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","Children","forEach","child","isValidElement","from","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","ref","WrappedComponent","hoistStatics","useContext","useHistory","Context","useLocation","useParams","useRouteMatch"],"mappings":"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"}