@vtex/styleguide
Version:
> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))
139 lines (106 loc) • 4.49 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _index = require("./Toolbar/index");
var _index2 = _interopRequireDefault(_index);
var _Pagination = require("./Pagination");
var _Pagination2 = _interopRequireDefault(_Pagination);
var _BulkActions = require("./BulkActions");
var _BulkActions2 = _interopRequireDefault(_BulkActions);
var _FilterBar = require("./FilterBar");
var _FilterBar2 = _interopRequireDefault(_FilterBar);
var _useTableMotion = require("./hooks/useTableMotion");
var _useTableMotion2 = _interopRequireDefault(_useTableMotion);
var _Totalizer = require("./Totalizer");
var _Totalizer2 = _interopRequireDefault(_Totalizer);
var _ActionBar = require("./ActionBar");
var _ActionBar2 = _interopRequireDefault(_ActionBar);
var _Sections = require("./Sections");
var _Sections2 = _interopRequireDefault(_Sections);
var _measures = require("./context/measures");
var _testing = require("./context/testing");
var _loading = require("./context/loading");
var _data = require("./context/data");
var _head = require("./context/head");
var _body = require("./context/body");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function Table(_ref, ref) {
var children = _ref.children,
measures = _ref.measures,
isRowActive = _ref.isRowActive,
loading = _ref.loading,
emptyState = _ref.emptyState,
onRowClick = _ref.onRowClick,
items = _ref.items,
empty = _ref.empty,
rowKey = _ref.rowKey,
highlightOnHover = _ref.highlightOnHover,
columns = _ref.columns,
sorting = _ref.sorting,
testId = _ref.testId,
stickyHeader = _ref.stickyHeader,
composableSections = _ref.composableSections,
disableScroll = _ref.disableScroll;
return _react2.default.createElement(_testing.TestingProvider, {
testId: testId
}, _react2.default.createElement(_loading.LoadingProvider, {
empty: empty,
loading: loading,
emptyState: emptyState
}, _react2.default.createElement(_measures.MeasuresProvider, {
measures: measures
}, _react2.default.createElement(_data.DataProvider, {
columns: columns,
items: items
}, _react2.default.createElement(_head.HeadProvider, {
sorting: sorting,
sticky: stickyHeader
}, _react2.default.createElement(_body.BodyProvider, {
onRowClick: onRowClick,
isRowActive: isRowActive,
rowKey: rowKey,
highlightOnHover: highlightOnHover
}, _react2.default.createElement(MotionContainer, null, composableSections ? children : _react2.default.createElement(_react.Fragment, null, children, _react2.default.createElement(_Sections2.default, {
ref: ref,
disableScroll: disableScroll
}, _react2.default.createElement(_Sections2.default.Head, null), _react2.default.createElement(_Sections2.default.Body, null))))))))));
}
function MotionContainer(_ref2) {
var children = _ref2.children;
var motion = (0, _useTableMotion2.default)();
var _useTestingContext = (0, _testing.useTestingContext)(),
testId = _useTestingContext.testId;
var _useMeasuresContext = (0, _measures.useMeasuresContext)(),
tableHeight = _useMeasuresContext.tableHeight;
return _react2.default.createElement("div", {
"data-testid": testId + "__container",
style: _extends({
minHeight: tableHeight
}, motion),
className: "flex flex-column"
}, children);
}
var FowardedTable = (0, _react.forwardRef)(Table);
FowardedTable.Toolbar = _index2.default;
FowardedTable.FilterBar = _FilterBar2.default;
FowardedTable.Totalizer = _Totalizer2.default;
FowardedTable.Pagination = _Pagination2.default;
FowardedTable.Bulk = _BulkActions2.default;
FowardedTable.ActionBar = _ActionBar2.default;
FowardedTable.Sections = _Sections2.default;
FowardedTable.defaultProps = {
rowKey: function rowKey(_ref3) {
var rowData = _ref3.rowData;
return "row-" + rowData.id;
},
loading: false,
empty: false,
highlightOnHover: false,
testId: 'vtex-table-v2',
stickyHeader: false
};
exports.default = FowardedTable;