@wix/design-system
Version:
@wix/design-system
162 lines (161 loc) • 6.6 kB
JavaScript
"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;