UNPKG

@wix/design-system

Version:

@wix/design-system

162 lines (161 loc) 6.6 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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _Text = _interopRequireDefault(require("../Text")); var _constants = require("./constants"); var _Tab = _interopRequireDefault(require("./Tab")); var _CardFolderTabsSt = require("./CardFolderTabs.st.css.js"); var _Focusable = require("../common/Focusable"); var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/CardFolderTabs/CardFolderTabs.jsx", _this = void 0; function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var tabButton = function tabButton(_ref) { var className = _ref.className, id = _ref.id, name = _ref.name, disabled = _ref.disabled, selected = _ref.selected, maxTabWidth = _ref.maxTabWidth, onTabChange = _ref.onTabChange, focusableOnFocus = _ref.focusableOnFocus, focusableOnBlur = _ref.focusableOnBlur, fluid = _ref.fluid, ellipsis = _ref.ellipsis, size = _ref.size, beforeSelected = _ref.beforeSelected, afterSelected = _ref.afterSelected; return /*#__PURE__*/_react["default"].createElement("button", { "data-hook": _constants.dataHooks.tabButton(id), className: (0, _CardFolderTabsSt.st)(_CardFolderTabsSt.classes.button, { selected: selected, disabled: disabled, fluid: fluid, beforeSelected: beforeSelected, afterSelected: afterSelected }, className), style: fluid ? {} : (0, _defineProperty2["default"])({}, _CardFolderTabsSt.vars['maxWidth'], maxTabWidth), onClick: function onClick() { return onTabChange(id); }, disabled: disabled, key: id, onFocus: focusableOnFocus, onBlur: focusableOnBlur, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 25, columnNumber: 5 } }, /*#__PURE__*/_react["default"].createElement(_Text["default"], { dataHook: _constants.dataHooks.tabText(id), ellipsis: ellipsis, className: _CardFolderTabsSt.classes.buttonText, size: size, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 45, columnNumber: 7 } }, name)); }; var TabButton = (0, _Focusable.withFocusable)(tabButton); var CardFolderTabs = /*#__PURE__*/function (_React$PureComponent) { function CardFolderTabs() { (0, _classCallCheck2["default"])(this, CardFolderTabs); return _callSuper(this, CardFolderTabs, arguments); } (0, _inherits2["default"])(CardFolderTabs, _React$PureComponent); return (0, _createClass2["default"])(CardFolderTabs, [{ key: "render", value: function render() { var _this2 = this; var _this$props = this.props, dataHook = _this$props.dataHook, className = _this$props.className, children = _this$props.children, activeId = _this$props.activeId, maxTabWidth = _this$props.maxTabWidth, onTabChange = _this$props.onTabChange, fluid = _this$props.fluid, ellipsis = _this$props.ellipsis, size = _this$props.size; var cardFolderTabs = Array.isArray(children) ? children : [children]; var selectedTabIndex = cardFolderTabs.findIndex(function (tab) { return activeId === tab.props.id; }); return /*#__PURE__*/_react["default"].createElement("div", { className: (0, _CardFolderTabsSt.st)(_CardFolderTabsSt.classes.root, { fluid: fluid }, className), "data-hook": dataHook, __self: this, __source: { fileName: _jsxFileName, lineNumber: 77, columnNumber: 7 } }, /*#__PURE__*/_react["default"].createElement("div", { "data-hook": _constants.dataHooks.header, className: _CardFolderTabsSt.classes.headerWrapper, __self: this, __source: { fileName: _jsxFileName, lineNumber: 81, columnNumber: 9 } }, cardFolderTabs.map(function (_ref3, index) { var props = _ref3.props; return /*#__PURE__*/_react["default"].createElement(TabButton, (0, _extends2["default"])({ key: props.id }, props, { selected: activeId === props.id, beforeSelected: index === selectedTabIndex - 1, afterSelected: index === selectedTabIndex + 1, maxTabWidth: maxTabWidth, fluid: fluid, ellipsis: ellipsis, size: size, onTabChange: typeof onTabChange === 'function' ? onTabChange : undefined, __self: _this2, __source: { fileName: _jsxFileName, lineNumber: 83, columnNumber: 13 } })); })), /*#__PURE__*/_react["default"].createElement("div", { "data-hook": _constants.dataHooks.content, className: _CardFolderTabsSt.classes.tabContentWrapper, __self: this, __source: { fileName: _jsxFileName, lineNumber: 99, columnNumber: 9 } }, cardFolderTabs.filter(function (tab) { return activeId === tab.props.id; }))); } }]); }(_react["default"].PureComponent); CardFolderTabs.displayName = 'CardFolderTabs'; CardFolderTabs.defaultProps = { maxTabWidth: '138px', ellipsis: true, size: 'medium', fluid: false }; CardFolderTabs.Tab = _Tab["default"]; var _default = exports["default"] = CardFolderTabs;