'use strict';

exports.__esModule = true;

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _react = require('react');

var _react2 = _interopRequireDefault(_react);

var _propTypes = require('prop-types');

var _propTypes2 = _interopRequireDefault(_propTypes);

var _classnames = require('classnames');

var _classnames2 = _interopRequireDefault(_classnames);

var _CTooltipPopoverWrapper = require('./CTooltipPopoverWrapper');

var _CTooltipPopoverWrapper2 = _interopRequireDefault(_CTooltipPopoverWrapper);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

//component - CoreUI / CPopover

var CPopover = function CPopover(props) {
  var custom = props.custom,
      toggle = props.toggle,
      show = props.show,
      defaultOpen = props.defaultOpen,
      attributes = _objectWithoutProperties(props, ['custom', 'toggle', 'show', 'defaultOpen']);

  var _useState = (0, _react.useState)(defaultOpen || false),
      isOpen = _useState[0],
      setIsOpen = _useState[1];

  if (!custom) {
    var userToggle = toggle;
    toggle = function toggle(e) {
      setIsOpen(!isOpen);
      if (userToggle) userToggle(e);
    };
    show = isOpen;
  }

  //render

  var popperClasses = (0, _classnames2.default)('popover', 'show', props.className);

  var classes = (0, _classnames2.default)('popover-inner', props.innerClassName);

  return _react2.default.createElement(_CTooltipPopoverWrapper2.default, _extends({}, attributes, {
    toggle: toggle,
    show: show,
    className: popperClasses,
    innerClassName: classes
  }));
};

CPopover.propTypes = process.env.NODE_ENV !== "production" ? _extends({}, _CTooltipPopoverWrapper2.default.propTypes, {
  custom: _propTypes2.default.bool,
  //
  innerRef: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func, _propTypes2.default.string]),
  defaultOpen: _propTypes2.default.bool
}) : {};

CPopover.defaultProps = {
  placement: 'right',
  placementPrefix: 'bs-popover',
  trigger: 'click'
};

exports.default = CPopover;
module.exports = exports['default'];