wix-style-react
Version:
wix-style-react
107 lines (106 loc) • 4.01 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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _SideContent = _interopRequireDefault(require("./core/SideContent"));
var _TabItems = _interopRequireDefault(require("./core/TabItems"));
var _TabsSt = require("./Tabs.st.css");
var _excluded = ["sideContent", "dataHook"];
var _jsxFileName = "/home/builduser/work/a9c1ac8876d5057c/packages/wix-style-react/dist/cjs/Tabs/Tabs.js";
class Tabs extends _react.default.Component {
constructor() {
super(...arguments);
this._getTabItemsProps = () => {
/* eslint-disable no-unused-vars */
var _this$props = this.props,
{
sideContent,
dataHook
} = _this$props,
tabItemsProps = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
return tabItemsProps;
};
}
render() {
var {
sideContent,
hasDivider,
dataHook,
size,
className
} = this.props;
var tabItemsProps = this._getTabItemsProps();
return /*#__PURE__*/_react.default.createElement("div", {
"data-divider": hasDivider,
"data-hook": dataHook,
className: (0, _TabsSt.st)(_TabsSt.classes.container, {
hasDivider,
size
}, className),
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 26,
columnNumber: 7
}
}, /*#__PURE__*/_react.default.createElement(_TabItems.default, (0, _extends2.default)({}, tabItemsProps, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 38,
columnNumber: 9
}
})), /*#__PURE__*/_react.default.createElement(_SideContent.default, {
content: sideContent,
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 39,
columnNumber: 9
}
}));
}
}
Tabs.displayName = 'Tabs';
Tabs.defaultProps = {
hasDivider: true,
size: 'medium'
};
Tabs.propTypes = {
/** Applied as data-hook HTML attribute that can be used in the tests */
dataHook: _propTypes.default.string,
/** A css class to be applied to the component's root element */
className: _propTypes.default.string,
/** A selected tab id */
activeId: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
/** Places a divider on bottom */
hasDivider: _propTypes.default.bool,
/** An array of tabs */
items: _propTypes.default.arrayOf(_propTypes.default.shape({
id: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
title: _propTypes.default.node,
minWidth: _propTypes.default.number,
maxWidth: _propTypes.default.number,
dataHook: _propTypes.default.string
})).isRequired,
/** A minimum width of the container */
minWidth: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
/** One of: '', compact, compactSide, uniformSide, uniformFull */
type: _propTypes.default.oneOf(['', 'compact', 'compactSide', 'uniformSide', 'uniformFull']),
/** One of: medium, small*/
size: _propTypes.default.oneOf(['medium', 'small']),
/** Can be either string or renderable node */
sideContent: _propTypes.default.node,
/** A specific width of a tab (only for uniformSide type) */
width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
/** Control text alignment in tab item */
alignment: _propTypes.default.oneOf(['start', 'center', 'end']),
/** Click event handler */
onClick: _propTypes.default.func
};
var _default = exports.default = Tabs;
//# sourceMappingURL=Tabs.js.map