import _pt from "prop-types";

function _extends() { _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; }; return _extends.apply(this, arguments); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

import * as React from 'react';
import { css, getModifier } from '@patternfly/react-styles';
import styles from "../../@patternfly/patternfly/components/Alert/alert.css.js";
import accessibleStyles from "../../@patternfly/patternfly/utilities/Accessibility/accessibility.css.js";
import { AlertIcon } from './AlertIcon';
import { capitalize } from '../../helpers/util';
export var AlertVariant;

(function (AlertVariant) {
  AlertVariant["success"] = "success";
  AlertVariant["danger"] = "danger";
  AlertVariant["warning"] = "warning";
  AlertVariant["info"] = "info";
})(AlertVariant || (AlertVariant = {}));

;
export var Alert = function Alert(_ref) {
  var variant = _ref.variant,
      _ref$variantLabel = _ref.variantLabel,
      variantLabel = _ref$variantLabel === void 0 ? "".concat(capitalize(variant), " alert:") : _ref$variantLabel,
      _ref$ariaLabel = _ref['aria-label'],
      ariaLabel = _ref$ariaLabel === void 0 ? "".concat(capitalize(variant), " Alert") : _ref$ariaLabel,
      _ref$action = _ref.action,
      action = _ref$action === void 0 ? null : _ref$action,
      title = _ref.title,
      _ref$children = _ref.children,
      children = _ref$children === void 0 ? '' : _ref$children,
      _ref$className = _ref.className,
      className = _ref$className === void 0 ? '' : _ref$className,
      props = _objectWithoutProperties(_ref, ["variant", "variantLabel", "aria-label", "action", "title", "children", "className"]);

  var readerTitle = React.createElement(React.Fragment, null, React.createElement("span", {
    className: css(accessibleStyles.screenReader)
  }, variantLabel), title);
  var customClassName = css(styles.alert, getModifier(styles, variant, styles.modifiers.info), className);
  return React.createElement("div", _extends({}, props, {
    className: customClassName,
    "aria-label": ariaLabel
  }), React.createElement(AlertIcon, {
    variant: variant
  }), React.createElement("h4", {
    className: css(styles.alertTitle)
  }, readerTitle), children && React.createElement("div", {
    className: css(styles.alertDescription)
  }, React.createElement("p", null, children)), action && React.createElement("div", {
    className: css(styles.alertAction)
  }, React.cloneElement(action, {
    title: title,
    variantLabel: variantLabel
  })));
};
Alert.propTypes = {
  variant: _pt.oneOf(['success', 'danger', 'warning', 'info']).isRequired,
  title: _pt.node.isRequired,
  action: _pt.node,
  children: _pt.node,
  className: _pt.string,
  'aria-label': _pt.string,
  variantLabel: _pt.string
};