Liferay.Loader.define('data-engine-taglib$react-router-dom@5.3.4/esm/react-router-dom', ['module', 'exports', 'require'], function (module, exports, require) {
  var define = undefined;
  var global = window;
  {
    import { Router, __RouterContext, matchPath } from 'react-router';
    export { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';
    import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';
    import React from 'react';
    import { createBrowserHistory, createHashHistory, createLocation, createPath } from 'history';
    import PropTypes from 'prop-types';
    import warning from 'tiny-warning';
    import _extends from '@babel/runtime/helpers/esm/extends';
    import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';
    import invariant from 'tiny-invariant';

    /**
     * The public API for a <Router> that uses HTML5 history.
     */

    var BrowserRouter = /*#__PURE__*/function (_React$Component) {
      _inheritsLoose(BrowserRouter, _React$Component);

      function BrowserRouter() {
        var _this;

        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
          args[_key] = arguments[_key];
        }

        _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
        _this.history = createBrowserHistory(_this.props);
        return _this;
      }

      var _proto = BrowserRouter.prototype;

      _proto.render = function render() {
        return (/*#__PURE__*/React.createElement(Router, {
            history: this.history,
            children: this.props.children
          })
        );
      };

      return BrowserRouter;
    }(React.Component);

    /**
     * The public API for a <Router> that uses window.location.hash.
     */

    var HashRouter = /*#__PURE__*/function (_React$Component) {
      _inheritsLoose(HashRouter, _React$Component);

      function HashRouter() {
        var _this;

        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
          args[_key] = arguments[_key];
        }

        _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
        _this.history = createHashHistory(_this.props);
        return _this;
      }

      var _proto = HashRouter.prototype;

      _proto.render = function render() {
        return (/*#__PURE__*/React.createElement(Router, {
            history: this.history,
            children: this.props.children
          })
        );
      };

      return HashRouter;
    }(React.Component);

    var resolveToLocation = function resolveToLocation(to, currentLocation) {
      return typeof to === "function" ? to(currentLocation) : to;
    };
    var normalizeToLocation = function normalizeToLocation(to, currentLocation) {
      return typeof to === "string" ? createLocation(to, null, null, currentLocation) : to;
    };

    var forwardRefShim = function forwardRefShim(C) {
      return C;
    };

    var forwardRef = React.forwardRef;

    if (typeof forwardRef === "undefined") {
      forwardRef = forwardRefShim;
    }

    function isModifiedEvent(event) {
      return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
    }

    var LinkAnchor = forwardRef(function (_ref, forwardedRef) {
      var innerRef = _ref.innerRef,
          navigate = _ref.navigate,
          _onClick = _ref.onClick,
          rest = _objectWithoutPropertiesLoose(_ref, ["innerRef", "navigate", "onClick"]);

      var target = rest.target;

      var props = _extends({}, rest, {
        onClick: function onClick(event) {
          try {
            if (_onClick) _onClick(event);
          } catch (ex) {
            event.preventDefault();
            throw ex;
          }

          if (!event.defaultPrevented && // onClick prevented default
          event.button === 0 && ( // ignore everything but left clicks
          !target || target === "_self") && // let browser handle "target=_blank" etc.
          !isModifiedEvent(event) // ignore clicks with modifier keys
          ) {
              event.preventDefault();
              navigate();
            }
        }
      }); // React 15 compat


      if (forwardRefShim !== forwardRef) {
        props.ref = forwardedRef || innerRef;
      } else {
        props.ref = innerRef;
      }
      /* eslint-disable-next-line jsx-a11y/anchor-has-content */

      return (/*#__PURE__*/React.createElement("a", props)
      );
    });

    /**
     * The public API for rendering a history-aware <a>.
     */

    var Link = forwardRef(function (_ref2, forwardedRef) {
      var _ref2$component = _ref2.component,
          component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,
          replace = _ref2.replace,
          to = _ref2.to,
          innerRef = _ref2.innerRef,
          rest = _objectWithoutPropertiesLoose(_ref2, ["component", "replace", "to", "innerRef"]);

      return (/*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {
          !context ? invariant(false) : void 0;
          var history = context.history;
          var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);
          var href = location ? history.createHref(location) : "";

          var props = _extends({}, rest, {
            href: href,
            navigate: function navigate() {
              var location = resolveToLocation(to, context.location);
              var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));
              var method = replace || isDuplicateNavigation ? history.replace : history.push;
              method(location);
            }
          }); // React 15 compat


          if (forwardRefShim !== forwardRef) {
            props.ref = forwardedRef || innerRef;
          } else {
            props.innerRef = innerRef;
          }

          return (/*#__PURE__*/React.createElement(component, props)
          );
        })
      );
    });

    var toType, refType;


    var forwardRefShim$1 = function forwardRefShim(C) {
      return C;
    };

    var forwardRef$1 = React.forwardRef;

    if (typeof forwardRef$1 === "undefined") {
      forwardRef$1 = forwardRefShim$1;
    }

    function joinClassnames() {
      for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {
        classnames[_key] = arguments[_key];
      }

      return classnames.filter(function (i) {
        return i;
      }).join(" ");
    }
    /**
     * A <Link> wrapper that knows if it's "active" or not.
     */

    var NavLink = forwardRef$1(function (_ref, forwardedRef) {
      var _ref$ariaCurrent = _ref["aria-current"],
          ariaCurrent = _ref$ariaCurrent === void 0 ? "page" : _ref$ariaCurrent,
          _ref$activeClassName = _ref.activeClassName,
          activeClassName = _ref$activeClassName === void 0 ? "active" : _ref$activeClassName,
          activeStyle = _ref.activeStyle,
          classNameProp = _ref.className,
          exact = _ref.exact,
          isActiveProp = _ref.isActive,
          locationProp = _ref.location,
          sensitive = _ref.sensitive,
          strict = _ref.strict,
          styleProp = _ref.style,
          to = _ref.to,
          innerRef = _ref.innerRef,
          rest = _objectWithoutPropertiesLoose(_ref, ["aria-current", "activeClassName", "activeStyle", "className", "exact", "isActive", "location", "sensitive", "strict", "style", "to", "innerRef"]);

      return (/*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {
          !context ? invariant(false) : void 0;
          var currentLocation = locationProp || context.location;
          var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);
          var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202

          var escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1");
          var match = escapedPath ? matchPath(currentLocation.pathname, {
            path: escapedPath,
            exact: exact,
            sensitive: sensitive,
            strict: strict
          }) : null;
          var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);
          var className = typeof classNameProp === "function" ? classNameProp(isActive) : classNameProp;
          var style = typeof styleProp === "function" ? styleProp(isActive) : styleProp;

          if (isActive) {
            className = joinClassnames(className, activeClassName);
            style = _extends({}, style, activeStyle);
          }

          var props = _extends({
            "aria-current": isActive && ariaCurrent || null,
            className: className,
            style: style,
            to: toLocation
          }, rest); // React 15 compat


          if (forwardRefShim$1 !== forwardRef$1) {
            props.ref = forwardedRef || innerRef;
          } else {
            props.innerRef = innerRef;
          }

          return (/*#__PURE__*/React.createElement(Link, props)
          );
        })
      );
    });

    var ariaCurrentType;


    export { BrowserRouter, HashRouter, Link, NavLink };
    //# sourceMappingURL=react-router-dom.js.map
  }
});
//# sourceMappingURL=react-router-dom.js.map