UNPKG

@helpscout/hsds-react

Version:

React component library for Help Scout's Design System

90 lines (66 loc) 3.13 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _getValidProps = _interopRequireDefault(require("@helpscout/react-utils/dist/getValidProps")); var _classnames = _interopRequireDefault(require("classnames")); var _ControlGroup = _interopRequireDefault(require("./ControlGroup.Block")); var _ControlGroup2 = _interopRequireDefault(require("./ControlGroup.Item")); var _ControlGroup3 = require("./ControlGroup.css"); var _jsxRuntime = require("react/jsx-runtime"); var ControlGroup = /*#__PURE__*/function (_React$PureComponent) { (0, _inheritsLoose2.default)(ControlGroup, _React$PureComponent); function ControlGroup() { var _this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this; _this.getChildrenMarkup = function () { var children = _this.props.children; if (!children) return null; return _react.default.Children.map(children, function (child, index) { if (child.type !== _ControlGroup2.default && child.type !== _ControlGroup.default) return child; return /*#__PURE__*/_react.default.cloneElement(child, { isFirst: index === 0 && children.length > 1, isNotOnly: index > 0 && index < children.length - 1, isLast: index !== 0 && index === children.length - 1 }); }); }; return _this; } var _proto = ControlGroup.prototype; _proto.render = function render() { var _this$props = this.props, children = _this$props.children, className = _this$props.className, rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, ["children", "className"]); var componentClassName = (0, _classnames.default)('c-ControlGroup', className); var childrenMarkup = this.getChildrenMarkup(); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ControlGroup3.ControlGroupUI, (0, _extends2.default)({ className: componentClassName }, (0, _getValidProps.default)(rest), { children: childrenMarkup })); }; return ControlGroup; }(_react.default.PureComponent); ControlGroup.Block = _ControlGroup.default; ControlGroup.Item = _ControlGroup2.default; ControlGroup.defaultProps = { 'data-cy': 'ControlGroup' }; ControlGroup.propTypes = { /** The className of the component. */ className: _propTypes.default.string, /** Data attr for Cypress tests. */ 'data-cy': _propTypes.default.string }; var _default = ControlGroup; exports.default = _default;