text: "use strict";
  
  var _interopRequireWildcard = require("@babel/runtime-corejs2/helpers/interopRequireWildcard");
  
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
  
  exports.__esModule = true;
  exports.default = void 0;
  
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutPropertiesLoose"));
  
  var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inheritsLoose"));
  
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends"));
  
  var _classnames = _interopRequireDefault(require("classnames"));
  
  var _react = _interopRequireWildcard(require("react"));
  
  var _propTypes = _interopRequireDefault(require("prop-types"));
  
  var _Overlay = _interopRequireDefault(require("react-overlays/lib/Overlay"));
  
  var _elementType = _interopRequireDefault(require("prop-types-extra/lib/elementType"));
  
  var _Fade = _interopRequireDefault(require("./Fade"));
  
  var propTypes = (0, _extends2.default)({}, _Overlay.default.propTypes, {
    /**
     * Set the visibility of the Overlay
     */
    show: _propTypes.default.bool,
  
    /**
     * Specify whether the overlay should trigger onHide when the user clicks outside the overlay
     */
    rootClose: _propTypes.default.bool,
  
    /**
     * A callback invoked by the overlay when it wishes to be hidden. Required if
     * `rootClose` is specified.
     */
    onHide: _propTypes.default.func,
  
    /**
     * Use animation
     */
    animation: _propTypes.default.oneOfType([_propTypes.default.bool, _elementType.default]),
  
    /**
     * Callback fired before the Overlay transitions in
     */
    onEnter: _propTypes.default.func,
  
    /**
     * Callback fired as the Overlay begins to transition in
     */
    onEntering: _propTypes.default.func,
  
    /**
     * Callback fired after the Overlay finishes transitioning in
     */
    onEntered: _propTypes.default.func,
  
    /**
     * Callback fired right before the Overlay transitions out
     */
    onExit: _propTypes.default.func,
  
    /**
     * Callback fired as the Overlay begins to transition out
     */
    onExiting: _propTypes.default.func,
  
    /**
     * Callback fired after the Overlay finishes transitioning out
     */
    onExited: _propTypes.default.func,
  
    /**
     * Sets the direction of the Overlay.
     */
    placement: _propTypes.default.oneOf(['top', 'right', 'bottom', 'left'])
  });
  var defaultProps = {
    animation: _Fade.default,
    rootClose: false,
    show: false,
    placement: 'right'
  };
  
  var Overlay =
  /*#__PURE__*/
  function (_React$Component) {
    (0, _inheritsLoose2.default)(Overlay, _React$Component);
  
    function Overlay() {
      return _React$Component.apply(this, arguments) || this;
    }
  
    var _proto = Overlay.prototype;
  
    _proto.render = function render() {
      var _this$props = this.props,
          animation = _this$props.animation,
          children = _this$props.children,
          props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, ["animation", "children"]);
      var transition = animation === true ? _Fade.default : animation || null;
      var child;
  
      if (!transition) {
        child = (0, _react.cloneElement)(children, {
          className: (0, _classnames.default)(children.props.className, 'in')
        });
      } else {
        child = children;
      }
  
      return _react.default.createElement(_Overlay.default, (0, _extends2.default)({}, props, {
        transition: transition
      }), child);
    };
  
    return Overlay;
  }(_react.default.Component);
  
  Overlay.propTypes = propTypes;
  Overlay.defaultProps = defaultProps;
  var _default = Overlay;
  exports.default = _default;
  module.exports = exports["default"];