UNPKG

rr-table

Version:

Responsive and customizable React Table

152 lines (116 loc) 12.9 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 _reactMedia = _interopRequireDefault(require("react-media")); var _utils = require("../../utils"); var _mediaQueries = require("../../config/constants/mediaQueries"); var _DefaultCell = _interopRequireDefault(require("./components/DefaultCell")); require("../../config/styles/default.css"); 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 _templateObject() { var data = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: flex-start;\n min-width: ", ";\n width: ", ";\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 CellWrapper = _styledComponents.default.div(_templateObject(), function (_ref) { var width = _ref.width; return (0, _utils.defineColMinWidth)(width); }, function (_ref2) { var width = _ref2.width; return width; }); /** Component */ var Cell = function Cell(_ref3) { var backgroundColor = _ref3.backgroundColor, breakpoints = _ref3.breakpoints, center = _ref3.center, children = _ref3.children, data = _ref3.data, emptyCellContent = _ref3.emptyCellContent, fontSize = _ref3.fontSize, handleClick = _ref3.handleClick, lineClamp = _ref3.lineClamp, lineHeight = _ref3.lineHeight, padding = _ref3.padding, priority = _ref3.priority, width = _ref3.width; var renderFunctionOrComponentOrDefault = function renderFunctionOrComponentOrDefault() { if (typeof children === 'function') { return children({ data: data, breakpoints: breakpoints, priority: priority }); } if (_typeof(children) === 'object') { return children; } return _react.default.createElement(_DefaultCell.default, { center: center, emptyCellContent: emptyCellContent, fontSize: fontSize, lineClamp: lineClamp, lineHeight: lineHeight, padding: padding, text: (0, _utils.defineText)(data, children) }); }; return _react.default.createElement(_reactMedia.default, { query: breakpoints ? (0, _utils.chooseMediaQuery)(breakpoints, priority) : _mediaQueries.DEFAULT_MEDIA_QUERY }, function (matches) { return matches ? null : _react.default.createElement(CellWrapper, { backgroundColor: backgroundColor, onClick: handleClick, width: width }, renderFunctionOrComponentOrDefault()); }); }; /** PropTypes */ Cell.propTypes = { /** Center the text in the cell */ center: _propTypes.default.bool, /** Background color of the cell */ backgroundColor: _propTypes.default.string, /** List of media query breakpoints */ breakpoints: _propTypes.default.arrayOf(_propTypes.default.number), /** Custom styled children to display */ children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]), // TODO /** Text to display in the cell */ data: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.node, _propTypes.default.shape({ title: _propTypes.default.string.isRequired })]), /** Text or Component to display when cell is empty */ emptyCellContent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]), /** Text font-size */ fontSize: _propTypes.default.string, /** Click handler for a click on the cell */ handleClick: _propTypes.default.func, /** Number of lines before ellipsis */ lineClamp: _propTypes.default.number, /** Height of a line */ lineHeight: _propTypes.default.number, /** Padding */ padding: _propTypes.default.string, /** Column display priority */ priority: _propTypes.default.number, /** Cell width */ width: _propTypes.default.string }; Cell.defaultProps = { width: '100%', backgroundColor: 'transparent' }; var _default = Cell; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NlbGwvaW5kZXguanN4Il0sIm5hbWVzIjpbIkNlbGxXcmFwcGVyIiwic3R5bGVkIiwiZGl2Iiwid2lkdGgiLCJDZWxsIiwiYmFja2dyb3VuZENvbG9yIiwiYnJlYWtwb2ludHMiLCJjZW50ZXIiLCJjaGlsZHJlbiIsImRhdGEiLCJlbXB0eUNlbGxDb250ZW50IiwiZm9udFNpemUiLCJoYW5kbGVDbGljayIsImxpbmVDbGFtcCIsImxpbmVIZWlnaHQiLCJwYWRkaW5nIiwicHJpb3JpdHkiLCJyZW5kZXJGdW5jdGlvbk9yQ29tcG9uZW50T3JEZWZhdWx0IiwiREVGQVVMVF9NRURJQV9RVUVSWSIsIm1hdGNoZXMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwic3RyaW5nIiwiYXJyYXlPZiIsIm51bWJlciIsIm9uZU9mVHlwZSIsIm5vZGUiLCJmdW5jIiwic2hhcGUiLCJ0aXRsZSIsImlzUmVxdWlyZWQiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQSxJQUFNQSxXQUFXLEdBQUdDLDBCQUFPQyxHQUFWLG9CQUtGO0FBQUEsTUFBR0MsS0FBSCxRQUFHQSxLQUFIO0FBQUEsU0FBZSw4QkFBa0JBLEtBQWxCLENBQWY7QUFBQSxDQUxFLEVBTU47QUFBQSxNQUFHQSxLQUFILFNBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFmO0FBQUEsQ0FOTSxDQUFqQjtBQVNBOzs7QUFDQSxJQUFNQyxJQUFJLEdBQUcsU0FBUEEsSUFBTyxRQWNQO0FBQUEsTUFiSkMsZUFhSSxTQWJKQSxlQWFJO0FBQUEsTUFaSkMsV0FZSSxTQVpKQSxXQVlJO0FBQUEsTUFYSkMsTUFXSSxTQVhKQSxNQVdJO0FBQUEsTUFWSkMsUUFVSSxTQVZKQSxRQVVJO0FBQUEsTUFUSkMsSUFTSSxTQVRKQSxJQVNJO0FBQUEsTUFSSkMsZ0JBUUksU0FSSkEsZ0JBUUk7QUFBQSxNQVBKQyxRQU9JLFNBUEpBLFFBT0k7QUFBQSxNQU5KQyxXQU1JLFNBTkpBLFdBTUk7QUFBQSxNQUxKQyxTQUtJLFNBTEpBLFNBS0k7QUFBQSxNQUpKQyxVQUlJLFNBSkpBLFVBSUk7QUFBQSxNQUhKQyxPQUdJLFNBSEpBLE9BR0k7QUFBQSxNQUZKQyxRQUVJLFNBRkpBLFFBRUk7QUFBQSxNQURKYixLQUNJLFNBREpBLEtBQ0k7O0FBQ0osTUFBTWMsa0NBQWtDLEdBQUcsU0FBckNBLGtDQUFxQyxHQUFNO0FBQy9DLFFBQUksT0FBT1QsUUFBUCxLQUFvQixVQUF4QixFQUFvQztBQUNsQyxhQUFPQSxRQUFRLENBQUM7QUFBRUMsUUFBQUEsSUFBSSxFQUFKQSxJQUFGO0FBQVFILFFBQUFBLFdBQVcsRUFBWEEsV0FBUjtBQUFxQlUsUUFBQUEsUUFBUSxFQUFSQTtBQUFyQixPQUFELENBQWY7QUFDRDs7QUFDRCxRQUFJLFFBQU9SLFFBQVAsTUFBb0IsUUFBeEIsRUFBa0M7QUFDaEMsYUFBT0EsUUFBUDtBQUNEOztBQUVELFdBQ0UsNkJBQUMsb0JBQUQ7QUFDRSxNQUFBLE1BQU0sRUFBRUQsTUFEVjtBQUVFLE1BQUEsZ0JBQWdCLEVBQUVHLGdCQUZwQjtBQUdFLE1BQUEsUUFBUSxFQUFFQyxRQUhaO0FBSUUsTUFBQSxTQUFTLEVBQUVFLFNBSmI7QUFLRSxNQUFBLFVBQVUsRUFBRUMsVUFMZDtBQU1FLE1BQUEsT0FBTyxFQUFFQyxPQU5YO0FBT0UsTUFBQSxJQUFJLEVBQUUsdUJBQVdOLElBQVgsRUFBaUJELFFBQWpCO0FBUFIsTUFERjtBQVdELEdBbkJEOztBQXFCQSxTQUNFLDZCQUFDLG1CQUFEO0FBQU8sSUFBQSxLQUFLLEVBQUVGLFdBQVcsR0FBRyw2QkFBaUJBLFdBQWpCLEVBQThCVSxRQUE5QixDQUFILEdBQTZDRTtBQUF0RSxLQUNHLFVBQUFDLE9BQU87QUFBQSxXQUFLQSxPQUFPLEdBQUcsSUFBSCxHQUNsQiw2QkFBQyxXQUFEO0FBQ0UsTUFBQSxlQUFlLEVBQUVkLGVBRG5CO0FBRUUsTUFBQSxPQUFPLEVBQUVPLFdBRlg7QUFHRSxNQUFBLEtBQUssRUFBRVQ7QUFIVCxPQUtHYyxrQ0FBa0MsRUFMckMsQ0FETTtBQUFBLEdBRFYsQ0FERjtBQWNELENBbEREO0FBb0RBOzs7QUFDQWIsSUFBSSxDQUFDZ0IsU0FBTCxHQUFpQjtBQUNmO0FBQ0FiLEVBQUFBLE1BQU0sRUFBRWMsbUJBQVVDLElBRkg7O0FBR2Y7QUFDQWpCLEVBQUFBLGVBQWUsRUFBRWdCLG1CQUFVRSxNQUpaOztBQUtmO0FBQ0FqQixFQUFBQSxXQUFXLEVBQUVlLG1CQUFVRyxPQUFWLENBQWtCSCxtQkFBVUksTUFBNUIsQ0FORTs7QUFPZjtBQUNBakIsRUFBQUEsUUFBUSxFQUFFYSxtQkFBVUssU0FBVixDQUFvQixDQUFDTCxtQkFBVU0sSUFBWCxFQUFpQk4sbUJBQVVPLElBQTNCLENBQXBCLENBUks7QUFRa0Q7O0FBQ2pFO0FBQ0FuQixFQUFBQSxJQUFJLEVBQUVZLG1CQUFVSyxTQUFWLENBQW9CLENBQ3hCTCxtQkFBVUUsTUFEYyxFQUV4QkYsbUJBQVVJLE1BRmMsRUFHeEJKLG1CQUFVTSxJQUhjLEVBSXhCTixtQkFBVVEsS0FBVixDQUFnQjtBQUNkQyxJQUFBQSxLQUFLLEVBQUVULG1CQUFVRSxNQUFWLENBQWlCUTtBQURWLEdBQWhCLENBSndCLENBQXBCLENBVlM7O0FBa0JmO0FBQ0FyQixFQUFBQSxnQkFBZ0IsRUFBRVcsbUJBQVVLLFNBQVYsQ0FBb0IsQ0FBQ0wsbUJBQVVFLE1BQVgsRUFBbUJGLG1CQUFVTyxJQUE3QixDQUFwQixDQW5CSDs7QUFvQmY7QUFDQWpCLEVBQUFBLFFBQVEsRUFBRVUsbUJBQVVFLE1BckJMOztBQXNCZjtBQUNBWCxFQUFBQSxXQUFXLEVBQUVTLG1CQUFVTyxJQXZCUjs7QUF3QmY7QUFDQWYsRUFBQUEsU0FBUyxFQUFFUSxtQkFBVUksTUF6Qk47O0FBMEJmO0FBQ0FYLEVBQUFBLFVBQVUsRUFBRU8sbUJBQVVJLE1BM0JQOztBQTRCZjtBQUNBVixFQUFBQSxPQUFPLEVBQUVNLG1CQUFVRSxNQTdCSjs7QUE4QmY7QUFDQVAsRUFBQUEsUUFBUSxFQUFFSyxtQkFBVUksTUEvQkw7O0FBZ0NmO0FBQ0F0QixFQUFBQSxLQUFLLEVBQUVrQixtQkFBVUU7QUFqQ0YsQ0FBakI7QUFvQ0FuQixJQUFJLENBQUM0QixZQUFMLEdBQW9CO0FBQ2xCN0IsRUFBQUEsS0FBSyxFQUFFLE1BRFc7QUFFbEJFLEVBQUFBLGVBQWUsRUFBRTtBQUZDLENBQXBCO2VBS2VELEkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IE1lZGlhIGZyb20gJ3JlYWN0LW1lZGlhJztcblxuaW1wb3J0IHsgZGVmaW5lVGV4dCwgY2hvb3NlTWVkaWFRdWVyeSwgZGVmaW5lQ29sTWluV2lkdGggfSBmcm9tICd1dGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX01FRElBX1FVRVJZIH0gZnJvbSAnY29uZmlnL2NvbnN0YW50cy9tZWRpYVF1ZXJpZXMnO1xuaW1wb3J0IERlZmF1bHRDZWxsIGZyb20gJy4vY29tcG9uZW50cy9EZWZhdWx0Q2VsbCc7XG5pbXBvcnQgJ2NvbmZpZy9zdHlsZXMvZGVmYXVsdC5jc3MnO1xuXG4vKiogU3R5bGVzICovXG5jb25zdCBDZWxsV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBtaW4td2lkdGg6ICR7KHsgd2lkdGggfSkgPT4gZGVmaW5lQ29sTWluV2lkdGgod2lkdGgpfTtcbiAgd2lkdGg6ICR7KHsgd2lkdGggfSkgPT4gd2lkdGh9O1xuYDtcblxuLyoqIENvbXBvbmVudCAqL1xuY29uc3QgQ2VsbCA9ICh7XG4gIGJhY2tncm91bmRDb2xvcixcbiAgYnJlYWtwb2ludHMsXG4gIGNlbnRlcixcbiAgY2hpbGRyZW4sXG4gIGRhdGEsXG4gIGVtcHR5Q2VsbENvbnRlbnQsXG4gIGZvbnRTaXplLFxuICBoYW5kbGVDbGljayxcbiAgbGluZUNsYW1wLFxuICBsaW5lSGVpZ2h0LFxuICBwYWRkaW5nLFxuICBwcmlvcml0eSxcbiAgd2lkdGgsXG59KSA9PiB7XG4gIGNvbnN0IHJlbmRlckZ1bmN0aW9uT3JDb21wb25lbnRPckRlZmF1bHQgPSAoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuKHsgZGF0YSwgYnJlYWtwb2ludHMsIHByaW9yaXR5IH0pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8RGVmYXVsdENlbGxcbiAgICAgICAgY2VudGVyPXtjZW50ZXJ9XG4gICAgICAgIGVtcHR5Q2VsbENvbnRlbnQ9e2VtcHR5Q2VsbENvbnRlbnR9XG4gICAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgICAgbGluZUNsYW1wPXtsaW5lQ2xhbXB9XG4gICAgICAgIGxpbmVIZWlnaHQ9e2xpbmVIZWlnaHR9XG4gICAgICAgIHBhZGRpbmc9e3BhZGRpbmd9XG4gICAgICAgIHRleHQ9e2RlZmluZVRleHQoZGF0YSwgY2hpbGRyZW4pfVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE1lZGlhIHF1ZXJ5PXticmVha3BvaW50cyA/IGNob29zZU1lZGlhUXVlcnkoYnJlYWtwb2ludHMsIHByaW9yaXR5KSA6IERFRkFVTFRfTUVESUFfUVVFUll9PlxuICAgICAge21hdGNoZXMgPT4gKG1hdGNoZXMgPyBudWxsIDogKFxuICAgICAgICA8Q2VsbFdyYXBwZXJcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e2JhY2tncm91bmRDb2xvcn1cbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgID5cbiAgICAgICAgICB7cmVuZGVyRnVuY3Rpb25PckNvbXBvbmVudE9yRGVmYXVsdCgpfVxuICAgICAgICA8L0NlbGxXcmFwcGVyPlxuICAgICAgKSlcbiAgICAgIH1cbiAgICA8L01lZGlhPlxuICApO1xufTtcblxuLyoqIFByb3BUeXBlcyAqL1xuQ2VsbC5wcm9wVHlwZXMgPSB7XG4gIC8qKiBDZW50ZXIgdGhlIHRleHQgaW4gdGhlIGNlbGwgKi9cbiAgY2VudGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGNlbGwgKi9cbiAgYmFja2dyb3VuZENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogTGlzdCBvZiBtZWRpYSBxdWVyeSBicmVha3BvaW50cyAqL1xuICBicmVha3BvaW50czogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm51bWJlciksXG4gIC8qKiBDdXN0b20gc3R5bGVkIGNoaWxkcmVuIHRvIGRpc3BsYXkgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5ub2RlLCBQcm9wVHlwZXMuZnVuY10pLCAvLyBUT0RPXG4gIC8qKiBUZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGNlbGwgKi9cbiAgZGF0YTogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICBQcm9wVHlwZXMubnVtYmVyLFxuICAgIFByb3BUeXBlcy5ub2RlLFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIH0pLFxuICBdKSxcbiAgLyoqIFRleHQgb3IgQ29tcG9uZW50IHRvIGRpc3BsYXkgd2hlbiBjZWxsIGlzIGVtcHR5ICovXG4gIGVtcHR5Q2VsbENvbnRlbnQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5mdW5jXSksXG4gIC8qKiBUZXh0IGZvbnQtc2l6ZSAqL1xuICBmb250U2l6ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIENsaWNrIGhhbmRsZXIgZm9yIGEgY2xpY2sgb24gdGhlIGNlbGwgKi9cbiAgaGFuZGxlQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogTnVtYmVyIG9mIGxpbmVzIGJlZm9yZSBlbGxpcHNpcyAqL1xuICBsaW5lQ2xhbXA6IFByb3BUeXBlcy5udW1iZXIsXG4gIC8qKiBIZWlnaHQgb2YgYSBsaW5lICovXG4gIGxpbmVIZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIC8qKiBQYWRkaW5nICovXG4gIHBhZGRpbmc6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBDb2x1bW4gZGlzcGxheSBwcmlvcml0eSAqL1xuICBwcmlvcml0eTogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqIENlbGwgd2lkdGggKi9cbiAgd2lkdGg6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5DZWxsLmRlZmF1bHRQcm9wcyA9IHtcbiAgd2lkdGg6ICcxMDAlJyxcbiAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ2VsbDtcbiJdfQ==