import "core-js/modules/es6.object.assign";
import "core-js/modules/web.dom.iterable";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.object.keys";

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 _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 React from 'react';
import PropTypes from 'prop-types';
import { Button, Icon } from "./..";

var CollapseButton = function CollapseButton(props) {
  var collapse = props.collapse,
      alignment = props.alignment,
      onClick = props.onClick,
      className = props.className,
      otherProps = _objectWithoutPropertiesLoose(props, ["collapse", "alignment", "onClick", "className"]);

  var handleClick = function handleClick() {
    onClick && onClick();
  };

  var getIconName = function getIconName() {
    return collapse ? 'arrow-right-optical_14' : 'arrow-left-optical_14';
  };

  return React.createElement(Button, _extends({
    ariaLabel: collapse ? 'expand' : 'collapse',
    className: 'cui-collapse-button' + (" cui-collapse-button--" + alignment) + ("" + (className && " " + className || '')),
    children: React.createElement(Icon, {
      name: getIconName()
    }),
    onClick: function onClick() {
      return handleClick();
    }
  }, otherProps));
};

CollapseButton.displayName = 'CollapseButton';
CollapseButton.defaultProps = {
  collapse: true,
  alignment: 'left',
  onClick: null,
  className: ''
};
CollapseButton.propTypes = {
  /** @prop Sets the collapse css styling | true */
  collapse: PropTypes.bool,

  /** @prop Sets the positioning of the CollapseButton | 'left' */
  alignment: PropTypes.oneOf(['left', 'right', 'top', 'bottom']),

  /** @prop Handler to be called when the user taps the CollapseButton | null */
  onClick: PropTypes.func,

  /** @prop Optional css class string | '' */
  className: PropTypes.string
};
export default CollapseButton;