rr-table
Version:
Responsive and customizable React Table
147 lines (115 loc) • 13.4 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _v = _interopRequireDefault(require("uuid/v4"));
var _utils = require("../../utils");
var _sortOrders = require("../../config/constants/sortOrders");
var _colorPalette = require("../../config/styles/colorPalette");
var _HeadCell = _interopRequireDefault(require("../HeadCell"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _templateObject() {
var data = _taggedTemplateLiteral(["\n align-items: center;\n box-shadow: 0px 5px 2px ", ";\n box-sizing: border-box;\n display: flex;\n flex-wrap: nowrap;\n height: ", ";\n justify-content: space-evenly;\n margin-bottom: 5px;\n position: relative;\n width: 100%;\n"]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
/** Styles */
var HeadWrapper = _styledComponents.default.div(_templateObject(), _colorPalette.grey, function (_ref) {
var height = _ref.height;
return height || '4rem';
});
/** Component */
var Head = function Head(_ref2) {
var breakpoints = _ref2.breakpoints,
cellPadding = _ref2.cellPadding,
center = _ref2.center,
colWidths = _ref2.colWidths,
fontSize = _ref2.fontSize,
headCell = _ref2.headCell,
height = _ref2.height,
id = _ref2.id,
onSort = _ref2.onSort,
priorities = _ref2.priorities,
sortingState = _ref2.sortingState,
styles = _ref2.styles,
textColor = _ref2.textColor,
titles = _ref2.titles;
var Cell = (0, _utils.defineComponentAsFunction)(headCell, _HeadCell.default);
return _react.default.createElement(HeadWrapper, {
height: height,
style: styles && styles.head,
id: id
}, titles.map(function (title, i) {
var columnWidth = colWidths && colWidths[i];
var width = (0, _utils.defineColWidth)(columnWidth);
var id = (0, _v.default)();
return Cell({
breakpoints: breakpoints,
center: center,
fontSize: fontSize,
id: id,
key: id,
onSort: onSort,
padding: cellPadding,
priority: priorities && priorities[i],
sortingState: sortingState,
style: styles && styles.headCell,
textColor: textColor,
title: title,
width: width
});
}));
};
/** PropTypes */
Head.propTypes = {
/** List of breakpoints */
breakpoints: _propTypes.default.arrayOf(_propTypes.default.number),
/** Cell Padding */
cellPadding: _propTypes.default.string,
/** Center the text in the cell */
center: _propTypes.default.bool,
/** List of columns widths */
colWidths: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])),
/** Title font-size */
fontSize: _propTypes.default.string,
/** Header Cells Component */
headCell: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
/** Height of the Head row */
height: _propTypes.default.string,
/** id of the row */
id: _propTypes.default.string,
/** sorting function */
onSort: _propTypes.default.func,
/** List of priorities */
priorities: _propTypes.default.arrayOf(_propTypes.default.number),
/** Sorting state */
sortingState: _propTypes.default.shape({
sortingKey: _propTypes.default.string.isRequired,
order: _propTypes.default.oneOf([_sortOrders.ASC, _sortOrders.DESC, _sortOrders.NOT_SORTED]).isRequired
}),
/** Custom styles */
styles: _propTypes.default.shape({
cell: _propTypes.default.object,
head: _propTypes.default.object,
headCell: _propTypes.default.object,
row: _propTypes.default.object,
table: _propTypes.default.object
}),
/** Color of the displayed text */
textColor: _propTypes.default.string,
/** Column Titles */
titles: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({
title: _propTypes.default.string.isRequired,
sortingKey: _propTypes.default.string
})])).isRequired
};
var _default = Head;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0hlYWQvaW5kZXguanN4Il0sIm5hbWVzIjpbIkhlYWRXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiZ3JleSIsImhlaWdodCIsIkhlYWQiLCJicmVha3BvaW50cyIsImNlbGxQYWRkaW5nIiwiY2VudGVyIiwiY29sV2lkdGhzIiwiZm9udFNpemUiLCJoZWFkQ2VsbCIsImlkIiwib25Tb3J0IiwicHJpb3JpdGllcyIsInNvcnRpbmdTdGF0ZSIsInN0eWxlcyIsInRleHRDb2xvciIsInRpdGxlcyIsIkNlbGwiLCJIZWFkQ2VsbCIsImhlYWQiLCJtYXAiLCJ0aXRsZSIsImkiLCJjb2x1bW5XaWR0aCIsIndpZHRoIiwia2V5IiwicGFkZGluZyIsInByaW9yaXR5Iiwic3R5bGUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJhcnJheU9mIiwibnVtYmVyIiwic3RyaW5nIiwiYm9vbCIsIm9uZU9mVHlwZSIsImZ1bmMiLCJvYmplY3QiLCJzaGFwZSIsInNvcnRpbmdLZXkiLCJpc1JlcXVpcmVkIiwib3JkZXIiLCJvbmVPZiIsIkFTQyIsIkRFU0MiLCJOT1RfU09SVEVEIiwiY2VsbCIsInJvdyIsInRhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTtBQUNBLElBQU1BLFdBQVcsR0FBR0MsMEJBQU9DLEdBQVYsb0JBRVdDLGtCQUZYLEVBTUw7QUFBQSxNQUFHQyxNQUFILFFBQUdBLE1BQUg7QUFBQSxTQUFnQkEsTUFBTSxJQUFJLE1BQTFCO0FBQUEsQ0FOSyxDQUFqQjtBQWFBOzs7QUFDQSxJQUFNQyxJQUFJLEdBQUcsU0FBUEEsSUFBTyxRQWVQO0FBQUEsTUFkSkMsV0FjSSxTQWRKQSxXQWNJO0FBQUEsTUFiSkMsV0FhSSxTQWJKQSxXQWFJO0FBQUEsTUFaSkMsTUFZSSxTQVpKQSxNQVlJO0FBQUEsTUFYSkMs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WUFBWSxFQUFFaUIsbUJBQVVRLEtBQVYsQ0FBZ0I7QUFDNUJDLElBQUFBLFVBQVUsRUFBRVQsbUJBQVVHLE1BQVYsQ0FBaUJPLFVBREQ7QUFFNUJDLElBQUFBLEtBQUssRUFBRVgsbUJBQVVZLEtBQVYsQ0FBZ0IsQ0FBQ0MsZUFBRCxFQUFNQyxnQkFBTixFQUFZQyxzQkFBWixDQUFoQixFQUF5Q0w7QUFGcEIsR0FBaEIsQ0F0QkM7O0FBMEJmO0FBQ0ExQixFQUFBQSxNQUFNLEVBQUVnQixtQkFBVVEsS0FBVixDQUFnQjtBQUN0QlEsSUFBQUEsSUFBSSxFQUFFaEIsbUJBQVVPLE1BRE07QUFFdEJsQixJQUFBQSxJQUFJLEVBQUVXLG1CQUFVTyxNQUZNO0FBR3RCNUIsSUFBQUEsUUFBUSxFQUFFcUIsbUJBQVVPLE1BSEU7QUFJdEJVLElBQUFBLEdBQUcsRUFBRWpCLG1CQUFVTyxNQUpPO0FBS3RCVyxJQUFBQSxLQUFLLEVBQUVsQixtQkFBVU87QUFMSyxHQUFoQixDQTNCTzs7QUFrQ2Y7QUFDQXRCLEVBQUFBLFNBQVMsRUFBRWUsbUJBQVVHLE1BbkNOOztBQW9DZjtBQUNBakIsRUFBQUEsTUFBTSxFQUFFYyxtQkFBVUMsT0FBVixDQUNORCxtQkFBVUssU0FBVixDQUFvQixDQUNsQkwsbUJBQVVHLE1BRFEsRUFFbEJILG1CQUFVUSxLQUFWLENBQWdCO0FBQ2RqQixJQUFBQSxLQUFLLEVBQUVTLG1CQUFVRyxNQUFWLENBQWlCTyxVQURWO0FBRWRELElBQUFBLFVBQVUsRUFBRVQsbUJBQVVHO0FBRlIsR0FBaEIsQ0FGa0IsQ0FBcEIsQ0FETSxFQVFOTztBQTdDYSxDQUFqQjtlQWdEZXJDLEkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHV1aWR2NCBmcm9tICd1dWlkL3Y0JztcblxuaW1wb3J0IHsgZGVmaW5lQ29tcG9uZW50QXNGdW5jdGlvbiwgZGVmaW5lQ29sV2lkdGggfSBmcm9tICd1dGlscyc7XG5pbXBvcnQgeyBBU0MsIERFU0MsIE5PVF9TT1JURUQgfSBmcm9tICdjb25maWcvY29uc3RhbnRzL3NvcnRPcmRlcnMnO1xuaW1wb3J0IHsgZ3JleSB9IGZyb20gJ2NvbmZpZy9zdHlsZXMvY29sb3JQYWxldHRlJztcbmltcG9ydCBIZWFkQ2VsbCBmcm9tICdjb21wb25lbnRzL0hlYWRDZWxsJztcblxuLyoqIFN0eWxlcyAqL1xuY29uc3QgSGVhZFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2hhZG93OiAwcHggNXB4IDJweCAke2dyZXl9O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgaGVpZ2h0OiAkeyh7IGhlaWdodCB9KSA9PiBoZWlnaHQgfHwgJzRyZW0nfTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbmA7XG5cbi8qKiBDb21wb25lbnQgKi9cbmNvbnN0IEhlYWQgPSAoe1xuICBicmVha3BvaW50cyxcbiAgY2VsbFBhZGRpbmcsXG4gIGNlbnRlcixcbiAgY29sV2lkdGhzLFxuICBmb250U2l6ZSxcbiAgaGVhZENlbGwsXG4gIGhlaWdodCxcbiAgaWQsXG4gIG9uU29ydCxcbiAgcHJpb3JpdGllcyxcbiAgc29ydGluZ1N0YXRlLFxuICBzdHlsZXMsXG4gIHRleHRDb2xvcixcbiAgdGl0bGVzLFxufSkgPT4ge1xuICBjb25zdCBDZWxsID0gZGVmaW5lQ29tcG9uZW50QXNGdW5jdGlvbihoZWFkQ2VsbCwgSGVhZENlbGwpO1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRXcmFwcGVyIGhlaWdodD17aGVpZ2h0fSBzdHlsZT17c3R5bGVzICYmIHN0eWxlcy5oZWFkfSBpZD17aWR9PlxuICAgICAge3RpdGxlcy5tYXAoKHRpdGxlLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gY29sV2lkdGhzICYmIGNvbFdpZHRoc1tpXTtcbiAgICAgICAgY29uc3Qgd2lkdGggPSBkZWZpbmVDb2xXaWR0aChjb2x1bW5XaWR0aCk7XG4gICAgICAgIGNvbnN0IGlkID0gdXVpZHY0KCk7XG5cbiAgICAgICAgcmV0dXJuIENlbGwoe1xuICAgICAgICAgIGJyZWFrcG9pbnRzLFxuICAgICAgICAgIGNlbnRlcixcbiAgICAgICAgICBmb250U2l6ZSxcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBrZXk6IGlkLFxuICAgICAgICAgIG9uU29ydCxcbiAgICAgICAgICBwYWRkaW5nOiBjZWxsUGFkZGluZyxcbiAgICAgICAgICBwcmlvcml0eTogcHJpb3JpdGllcyAmJiBwcmlvcml0aWVzW2ldLFxuICAgICAgICAgIHNvcnRpbmdTdGF0ZSxcbiAgICAgICAgICBzdHlsZTogc3R5bGVzICYmIHN0eWxlcy5oZWFkQ2VsbCxcbiAgICAgICAgICB0ZXh0Q29sb3IsXG4gICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgd2lkdGgsXG4gICAgICAgIH0pO1xuICAgICAgfSl9XG4gICAgPC9IZWFkV3JhcHBlcj5cbiAgKTtcbn07XG5cbi8qKiBQcm9wVHlwZXMgKi9cbkhlYWQucHJvcFR5cGVzID0ge1xuICAvKiogTGlzdCBvZiBicmVha3BvaW50cyAqL1xuICBicmVha3BvaW50czogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm51bWJlciksXG4gIC8qKiBDZWxsIFBhZGRpbmcgKi9cbiAgY2VsbFBhZGRpbmc6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBDZW50ZXIgdGhlIHRleHQgaW4gdGhlIGNlbGwgKi9cbiAgY2VudGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqIExpc3Qgb2YgY29sdW1ucyB3aWR0aHMgKi9cbiAgY29sV2lkdGhzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkpLFxuICAvKiogVGl0bGUgZm9udC1zaXplICovXG4gIGZvbnRTaXplOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogSGVhZGVyIENlbGxzIENvbXBvbmVudCAqL1xuICBoZWFkQ2VsbDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmZ1bmMsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgLyoqIEhlaWdodCBvZiB0aGUgSGVhZCByb3cgKi9cbiAgaGVpZ2h0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogaWQgb2YgdGhlIHJvdyAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIHNvcnRpbmcgZnVuY3Rpb24gKi9cbiAgb25Tb3J0OiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIExpc3Qgb2YgcHJpb3JpdGllcyAqL1xuICBwcmlvcml0aWVzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubnVtYmVyKSxcbiAgLyoqIFNvcnRpbmcgc3RhdGUgKi9cbiAgc29ydGluZ1N0YXRlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHNvcnRpbmdLZXk6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBvcmRlcjogUHJvcFR5cGVzLm9uZU9mKFtBU0MsIERFU0MsIE5PVF9TT1JURURdKS5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIEN1c3RvbSBzdHlsZXMgKi9cbiAgc3R5bGVzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGNlbGw6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGVhZDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoZWFkQ2VsbDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICByb3c6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgdGFibGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIH0pLFxuICAvKiogQ29sb3Igb2YgdGhlIGRpc3BsYXllZCB0ZXh0ICovXG4gIHRleHRDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIENvbHVtbiBUaXRsZXMgKi9cbiAgdGl0bGVzOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgICBzb3J0aW5nS2V5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgfSksXG4gICAgXSksXG4gICkuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWQ7XG4iXX0=