@flexis/ui
Version:
Styleless React Components
83 lines (73 loc) • 5.35 kB
JavaScript
import _extends from "@babel/runtime-corejs3/helpers/extends";
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/objectWithoutProperties";
import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck";
import _createClass from "@babel/runtime-corejs3/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime-corejs3/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime-corejs3/helpers/getPrototypeOf";
import _inherits from "@babel/runtime-corejs3/helpers/inherits";
import React from 'react';
var _createElement = React.createElement;
var PureComponent = React.PureComponent,
Children = React.Children,
cloneElement = React.cloneElement;
import PropTypes from 'prop-types';
import { AlignSideVariant, AlignSideValues } from '../common/types';
import { style, classes } from './Button.st.css';
var Button =
/** @class */
function () {
var Button = /*#__PURE__*/function (_PureComponent) {
_inherits(Button, _PureComponent);
function Button() {
_classCallCheck(this, Button);
return _possibleConstructorReturn(this, _getPrototypeOf(Button).apply(this, arguments));
}
_createClass(Button, [{
key: "render",
value: function render() {
var _this$props = this.props,
className = _this$props.className,
elementRef = _this$props.elementRef,
icon = _this$props.icon,
flexIcon = _this$props.flexIcon,
alignIcon = _this$props.alignIcon,
children = _this$props.children,
props = _objectWithoutProperties(_this$props, ["className", "elementRef", "icon", "flexIcon", "alignIcon", "children"]);
var iconOnly = !Children.count(children);
var leftAligned = alignIcon === AlignSideVariant.Left;
var buttonIcon = null;
if (typeof icon !== 'undefined') {
buttonIcon = cloneElement(icon, {
className: style(classes.icon, _defineProperty({}, "".concat(alignIcon, "Align"), Boolean(alignIcon) && !iconOnly), icon.props.className)
});
}
return _createElement("button", _extends({
ref: elementRef
}, props, {
className: style(classes.root, {
withIcon: Boolean(buttonIcon),
flexIcon: flexIcon
}, className)
}), buttonIcon ? _createElement("div", {
className: classes.iconContainer
}, leftAligned && buttonIcon, !iconOnly && _createElement("span", null, children), !leftAligned && buttonIcon) : children);
}
}]);
return Button;
}(PureComponent);
process.env.NODE_ENV !== "production" ? Button.propTypes = {
elementRef: PropTypes.func,
icon: PropTypes.element,
flexIcon: PropTypes.bool,
alignIcon: PropTypes.oneOf(AlignSideValues),
children: PropTypes.node
} : void 0;
Button.defaultProps = {
flexIcon: false,
alignIcon: AlignSideVariant.Left
};
return Button;
}();
export default Button;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFQLE1BUU8sT0FSUDs7Ozs7QUFTQSxPQUFPLFNBQVAsTUFBc0IsWUFBdEI7QUFJQSxTQUVDLGdCQUZELEVBR0MsZUFIRCxRQUlPLGlCQUpQO0FBS0EsU0FDQyxLQURELEVBRUMsT0FGRCxRQUdPLGlCQUhQOztBQWtCQSxJQUFBLE1BQUE7QUFBQTtBQUFBLFlBQUE7QUFBQSxNQUFxQixNQUFyQjtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsK0JBZU87QUFBQSwwQkFVRCxLQUFLLEtBVko7QUFBQSxZQUdKLFNBSEksZUFHSixTQUhJO0FBQUEsWUFJSixVQUpJLGVBSUosVUFKSTtBQUFBLFlBS0osSUFMSSxlQUtKLElBTEk7QUFBQSxZQU1KLFFBTkksZUFNSixRQU5JO0FBQUEsWUFPSixTQVBJLGVBT0osU0FQSTtBQUFBLFlBUUosUUFSSSxlQVFKLFFBUkk7QUFBQSxZQVNELEtBVEM7O0FBV0wsWUFBTSxRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBVCxDQUFlLFFBQWYsQ0FBbEI7QUFDQSxZQUFNLFdBQVcsR0FBRyxTQUFTLEtBQUssZ0JBQWdCLENBQUMsSUFBbkQ7QUFDQSxZQUFJLFVBQVUsR0FBc0IsSUFBcEM7O0FBRUEsWUFBSSxPQUFPLElBQVAsS0FBZ0IsV0FBcEIsRUFBaUM7QUFDaEMsVUFBQSxVQUFVLEdBQUcsWUFBWSxDQUN4QixJQUR3QixFQUV4QjtBQUNDLFlBQUEsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBVCxnQ0FDWCxTQURXLFlBQ1EsT0FBTyxDQUFDLFNBQUQsQ0FBUCxJQUFzQixDQUFDLFFBRC9CLEdBRWIsSUFBSSxDQUFDLEtBQUwsQ0FBVyxTQUZFO0FBRGpCLFdBRndCLENBQXpCO0FBUUE7O0FBRUQsZUFDQztBQUNDLFVBQUEsR0FBRyxFQUFFO0FBRE4sV0FFSyxLQUZMO0FBR0MsVUFBQSxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFULEVBQWU7QUFDOUIsWUFBQSxRQUFRLEVBQUUsT0FBTyxDQUFDLFVBQUQsQ0FEYTtBQUU5QixZQUFBLFFBQVEsRUFBUjtBQUY4QixXQUFmLEVBR2IsU0FIYTtBQUhqQixZQVFFLFVBQVUsR0FDVjtBQUNDLFVBQUEsU0FBUyxFQUFFLE9BQU8sQ0FBQztBQURwQixXQUdFLFdBQVcsSUFBSSxVQUhqQixFQUlFLENBQUMsUUFBRCxJQUNBLDZCQUFPLFFBQVAsQ0FMRixFQU9FLENBQUMsV0FBRCxJQUFnQixVQVBsQixDQURVLEdBVVAsUUFsQkwsQ0FERDtBQXNCQTtBQS9ERjs7QUFBQTtBQUFBLElBQW9DLGFBQXBDOztBQUVRLDBDQUFBLE1BQUEsQ0FBQSxTQUFBLEdBQVk7QUFDbEIsSUFBQSxVQUFVLEVBQUUsU0FBUyxDQUFDLElBREo7QUFFbEIsSUFBQSxJQUFJLEVBQVEsU0FBUyxDQUFDLE9BRko7QUFHbEIsSUFBQSxRQUFRLEVBQUksU0FBUyxDQUFDLElBSEo7QUFJbEIsSUFBQSxTQUFTLEVBQUcsU0FBUyxDQUFDLEtBQVYsQ0FBZ0IsZUFBaEIsQ0FKTTtBQUtsQixJQUFBLFFBQVEsRUFBSSxTQUFTLENBQUM7QUFMSixHQUFaO0FBUUEsRUFBQSxNQUFBLENBQUEsWUFBQSxHQUFlO0FBQ3JCLElBQUEsUUFBUSxFQUFJLEtBRFM7QUFFckIsSUFBQSxTQUFTLEVBQUcsZ0JBQWdCLENBQUM7QUFGUixHQUFmO0FBc0RSLFNBQUEsTUFBQTtBQUFDLENBaEVELEVBQUE7O2VBQXFCLE0iLCJzb3VyY2VSb290IjoiIn0=