UNPKG

rr-table

Version:

Responsive and customizable React Table

168 lines (131 loc) 13.5 kB
"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=