rr-table
Version:
Responsive and customizable React Table
168 lines (131 loc) • 13.5 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 _utils = require("../../utils");
var _constants = require("../../config/constants");
var _Sort = _interopRequireDefault(require("../Sort"));
var _Cell = _interopRequireDefault(require("../Cell"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _templateObject2() {
var data = _taggedTemplateLiteral(["\n align-items: center;\n color: ", ";\n display: flex;\n font-size: ", ";\n height: 100%;\n justify-content: flex-start;\n margin: 0 auto;\n max-height: 100%;\n overflow: hidden;\n padding: ", ";\n text-align: ", ";\n text-overflow: ellipsis;\n width: 100%;\n"]);
_templateObject2 = function _templateObject2() {
return data;
};
return data;
}
function _templateObject() {
var data = _taggedTemplateLiteral(["\n cursor: ", ";\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 Cell = (0, _styledComponents.default)(_Cell.default)(_templateObject(), function (_ref) {
var isSortable = _ref.isSortable;
return isSortable ? 'pointer' : 'default';
});
var Title = _styledComponents.default.div(_templateObject2(), function (_ref2) {
var color = _ref2.color;
return color;
}, function (_ref3) {
var fontSize = _ref3.fontSize;
return fontSize || 'inherit';
}, function (_ref4) {
var padding = _ref4.padding;
return padding || _constants.DEFAULT_PADDING;
}, function (_ref5) {
var center = _ref5.center;
return center ? 'center' : 'left';
});
var HeadCell = function HeadCell(_ref6) {
var breakpoints = _ref6.breakpoints,
center = _ref6.center,
children = _ref6.children,
fontSize = _ref6.fontSize,
id = _ref6.id,
onSort = _ref6.onSort,
padding = _ref6.padding,
priority = _ref6.priority,
sortingState = _ref6.sortingState,
style = _ref6.style,
textColor = _ref6.textColor,
title = _ref6.title,
_ref6$width = _ref6.width,
width = _ref6$width === void 0 ? '100%' : _ref6$width;
var onDefaultSort = function onDefaultSort() {
if (_typeof(title) === 'object' && title.sortingKey) {
switch (sortingState.order) {
case _constants.ASC:
onSort(title.sortingKey, _constants.DESC);
break;
default:
onSort(title.sortingKey, _constants.ASC);
}
}
};
var isSortable = typeof onSort === 'function' && typeof title.sortingKey === 'string';
var text = (0, _utils.defineText)(title, children);
return _react.default.createElement(Cell, {
breakpoints: breakpoints,
center: center,
fontSize: fontSize,
handleClick: onDefaultSort,
isSortable: isSortable,
key: id,
padding: padding,
priority: priority,
width: width
}, _react.default.createElement(Title, {
center: center,
color: textColor,
fontSize: fontSize,
padding: padding,
style: style
}, text), title && isSortable && _react.default.createElement(_Sort.default, {
onSort: onSort,
sortingKey: title.sortingKey
}));
};
/** PropTypes */
HeadCell.propTypes = {
/** Children */
children: _propTypes.default.node,
/** List of breakpoints */
breakpoints: _propTypes.default.arrayOf(_propTypes.default.number),
/** Center the text in the cell */
center: _propTypes.default.bool,
/** Title font-size */
fontSize: _propTypes.default.string,
/** id of the cell */
id: _propTypes.default.string.isRequired,
/** sorting function */
onSort: _propTypes.default.func,
/** Cell Padding */
padding: _propTypes.default.string,
/** List of priorities */
priority: _propTypes.default.number,
/** Sorting state */
sortingState: _propTypes.default.shape({
sortingKey: _propTypes.default.string.isRequired,
order: _propTypes.default.oneOf([_constants.ASC, _constants.DESC, _constants.NOT_SORTED]).isRequired
}),
/** Custom row style */
style: _propTypes.default.object,
/** Color of the displayed text */
textColor: _propTypes.default.string,
/** Column Title */
title: _propTypes.default.string,
/** Column width */
width: _propTypes.default.string
};
var _default = HeadCell;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0hlYWRDZWxsL2luZGV4LmpzeCJdLCJuYW1lcyI6WyJDZWxsIiwiRGVmYXVsdENlbGwiLCJpc1NvcnRhYmxlIiwiVGl0bGUiLCJzdHlsZWQiLCJkaXYiLCJjb2xvciIsImZvbnRTaXplIiwicGFkZGluZyIsIkRFRkFVTFRfUEFERElORyIsImNlbnRlciIsIkhlYWRDZWxsIiwiYnJlYWtwb2ludHMiLCJjaGlsZHJlbiIsImlkIiwib25Tb3J0IiwicHJpb3JpdHkiLCJzb3J0aW5nU3RhdGUiLCJzdHlsZSIsInRleHRDb2xvciIsInRpdGxlIiwid2lkdGgiLCJvbkRlZmF1bHRTb3J0Iiwic29ydGluZ0tleSIsIm9yZGVyIiwiQVNDIiwiREVTQyIsInRleHQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJub2RlIiwiYXJyYXlPZiIsIm51bWJlciIsImJvb2wiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiZnVuYyIsInNoYXBlIiwib25lT2YiLCJOT1RfU09SVEVEIiwib2JqZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBR0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTtBQUNBLElBQU1BLElBQUksR0FBRywrQkFBT0MsYUFBUCxDQUFILG9CQUNFO0FBQUEsTUFBR0MsVUFBSCxRQUFHQSxVQUFIO0FBQUEsU0FBcUJBLFVBQVUsR0FBRyxTQUFILEdBQWUsU0FBOUM7QUFBQSxDQURGLENBQVY7O0FBSUEsSUFBTUMsS0FBSyxHQUFHQywwQkFBT0MsR0FBVixxQkFFQTtBQUFBLE1BQUdDLEtBQUgsU0FBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQWY7QUFBQSxDQUZBLEVBSUk7QUFBQSxNQUFHQyxRQUFILFNBQUdBLFFBQUg7QUFBQSxTQUFrQkEsUUFBUSxJQUFJLFNBQTlCO0FBQUEsQ0FKSixFQVVFO0FBQUEsTUFBR0MsT0FBSCxTQUFHQSxPQUFIO0FB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O0FBV25CO0FBQ0FwQixFQUFBQSxNQUFNLEVBQUVjLG1CQUFVTyxJQVpDOztBQWFuQjtBQUNBNUIsRUFBQUEsT0FBTyxFQUFFcUIsbUJBQVVLLE1BZEE7O0FBZW5CO0FBQ0FsQixFQUFBQSxRQUFRLEVBQUVhLG1CQUFVRyxNQWhCRDs7QUFpQm5CO0FBQ0FmLEVBQUFBLFlBQVksRUFBRVksbUJBQVVRLEtBQVYsQ0FBZ0I7QUFDNUJkLElBQUFBLFVBQVUsRUFBRU0sbUJBQVVLLE1BQVYsQ0FBaUJDLFVBREQ7QUFFNUJYLElBQUFBLEtBQUssRUFBRUssbUJBQVVTLEtBQVYsQ0FBZ0IsQ0FBQ2IsY0FBRCxFQUFNQyxlQUFOLEVBQVlhLHFCQUFaLENBQWhCLEVBQXlDSjtBQUZwQixHQUFoQixDQWxCSzs7QUFzQm5CO0FBQ0FqQixFQUFBQSxLQUFLLEVBQUVXLG1CQUFVVyxNQXZCRTs7QUF3Qm5CO0FBQ0FyQixFQUFBQSxTQUFTLEVBQUVVLG1CQUFVSyxNQXpCRjs7QUEwQm5CO0FBQ0FkLEVBQUFBLEtBQUssRUFBRVMsbUJBQVVLLE1BM0JFOztBQTRCbkI7QUFDQWIsRUFBQUEsS0FBSyxFQUFFUSxtQkFBVUs7QUE3QkUsQ0FBckI7ZUFnQ2V2QixRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgZGVmaW5lVGV4dCB9IGZyb20gJ3V0aWxzJztcbmltcG9ydCB7XG4gIEFTQywgREVTQywgTk9UX1NPUlRFRCwgREVGQVVMVF9QQURESU5HLFxufSBmcm9tICdjb25maWcvY29uc3RhbnRzJztcbmltcG9ydCBTb3J0IGZyb20gJy4uL1NvcnQnO1xuaW1wb3J0IERlZmF1bHRDZWxsIGZyb20gJy4uL0NlbGwnO1xuXG4vKiogU3R5bGVzICovXG5jb25zdCBDZWxsID0gc3R5bGVkKERlZmF1bHRDZWxsKWBcbiAgY3Vyc29yOiAkeyh7IGlzU29ydGFibGUgfSkgPT4gKGlzU29ydGFibGUgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcpfTtcbmA7XG5cbmNvbnN0IFRpdGxlID0gc3R5bGVkLmRpdmBcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6ICR7KHsgY29sb3IgfSkgPT4gY29sb3J9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6ICR7KHsgZm9udFNpemUgfSkgPT4gZm9udFNpemUgfHwgJ2luaGVyaXQnfTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAkeyh7IHBhZGRpbmcgfSkgPT4gcGFkZGluZyB8fCBERUZBVUxUX1BBRERJTkd9O1xuICB0ZXh0LWFsaWduOiAkeyh7IGNlbnRlciB9KSA9PiAoY2VudGVyID8gJ2NlbnRlcicgOiAnbGVmdCcpfTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdpZHRoOiAxMDAlO1xuYDtcblxuY29uc3QgSGVhZENlbGwgPSAoe1xuICBicmVha3BvaW50cyxcbiAgY2VudGVyLFxuICBjaGlsZHJlbixcbiAgZm9udFNpemUsXG4gIGlkLFxuICBvblNvcnQsXG4gIHBhZGRpbmcsXG4gIHByaW9yaXR5LFxuICBzb3J0aW5nU3RhdGUsXG4gIHN0eWxlLFxuICB0ZXh0Q29sb3IsXG4gIHRpdGxlLFxuICB3aWR0aCA9ICcxMDAlJyxcbn0pID0+IHtcbiAgY29uc3Qgb25EZWZhdWx0U29ydCA9ICgpID0+IHtcbiAgICBpZiAodHlwZW9mIHRpdGxlID09PSAnb2JqZWN0JyAmJiB0aXRsZS5zb3J0aW5nS2V5KSB7XG4gICAgICBzd2l0Y2ggKHNvcnRpbmdTdGF0ZS5vcmRlcikge1xuICAgICAgICBjYXNlIEFTQzpcbiAgICAgICAgICBvblNvcnQodGl0bGUuc29ydGluZ0tleSwgREVTQyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgb25Tb3J0KHRpdGxlLnNvcnRpbmdLZXksIEFTQyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGlzU29ydGFibGUgPSB0eXBlb2Ygb25Tb3J0ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB0aXRsZS5zb3J0aW5nS2V5ID09PSAnc3RyaW5nJztcbiAgY29uc3QgdGV4dCA9IGRlZmluZVRleHQodGl0bGUsIGNoaWxkcmVuKTtcbiAgcmV0dXJuIChcbiAgICA8Q2VsbFxuICAgICAgYnJlYWtwb2ludHM9e2JyZWFrcG9pbnRzfVxuICAgICAgY2VudGVyPXtjZW50ZXJ9XG4gICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICBoYW5kbGVDbGljaz17b25EZWZhdWx0U29ydH1cbiAgICAgIGlzU29ydGFibGU9e2lzU29ydGFibGV9XG4gICAgICBrZXk9e2lkfVxuICAgICAgcGFkZGluZz17cGFkZGluZ31cbiAgICAgIHByaW9yaXR5PXtwcmlvcml0eX1cbiAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICA+XG4gICAgICA8VGl0bGVcbiAgICAgICAgY2VudGVyPXtjZW50ZXJ9XG4gICAgICAgIGNvbG9yPXt0ZXh0Q29sb3J9XG4gICAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgICAgcGFkZGluZz17cGFkZGluZ31cbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgPlxuICAgICAgICB7dGV4dH1cbiAgICAgIDwvVGl0bGU+XG4gICAgICB7dGl0bGUgJiYgaXNTb3J0YWJsZSAmJiA8U29ydCBvblNvcnQ9e29uU29ydH0gc29ydGluZ0tleT17dGl0bGUuc29ydGluZ0tleX0gLz59XG4gICAgPC9DZWxsPlxuICApO1xufTtcblxuLyoqIFByb3BUeXBlcyAqL1xuSGVhZENlbGwucHJvcFR5cGVzID0ge1xuICAvKiogQ2hpbGRyZW4gKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICAvKiogTGlzdCBvZiBicmVha3BvaW50cyAqL1xuICBicmVha3BvaW50czogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm51bWJlciksXG4gIC8qKiBDZW50ZXIgdGhlIHRleHQgaW4gdGhlIGNlbGwgKi9cbiAgY2VudGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqIFRpdGxlIGZvbnQtc2l6ZSAqL1xuICBmb250U2l6ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGlkIG9mIHRoZSBjZWxsICovXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBzb3J0aW5nIGZ1bmN0aW9uICovXG4gIG9uU29ydDogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBDZWxsIFBhZGRpbmcgKi9cbiAgcGFkZGluZzogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIExpc3Qgb2YgcHJpb3JpdGllcyAqL1xuICBwcmlvcml0eTogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqIFNvcnRpbmcgc3RhdGUgKi9cbiAgc29ydGluZ1N0YXRlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHNvcnRpbmdLZXk6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBvcmRlcjogUHJvcFR5cGVzLm9uZU9mKFtBU0MsIERFU0MsIE5PVF9TT1JURURdKS5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIEN1c3RvbSByb3cgc3R5bGUgKi9cbiAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBDb2xvciBvZiB0aGUgZGlzcGxheWVkIHRleHQgKi9cbiAgdGV4dENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogQ29sdW1uIFRpdGxlICovXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogQ29sdW1uIHdpZHRoICovXG4gIHdpZHRoOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhZENlbGw7XG4iXX0=