rr-table
Version:
Responsive and customizable React Table
152 lines (116 loc) • 12.9 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 _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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NlbGwvaW5kZXguanN4Il0sIm5hbWVzIjpbIkNlbGxXcmFwcGVyIiwic3R5bGVkIiwiZGl2Iiwid2lkdGgiLCJDZWxsIiwiYmFja2dyb3VuZENvbG9yIiwiYnJlYWtwb2ludHMiLCJjZW50ZXIiLCJjaGlsZHJlbiIsImRhdGEiLCJlbXB0eUNlbGxDb250ZW50IiwiZm9udFNpemUiLCJoYW5kbGVDbGljayIsImxpbmVDbGFtcCIsImxpbmVIZWlnaHQiLCJwYWRkaW5nIiwicHJpb3JpdHkiLCJyZW5kZXJGdW5jdGlvbk9yQ29tcG9uZW50T3JEZWZhdWx0IiwiREVGQVVMVF9NRURJQV9RVUVSWSIsIm1hdGNoZXMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwic3RyaW5nIiwiYXJyYXlPZiIsIm51bWJlciIsIm9uZU9mVHlwZSIsIm5vZGUiLCJmdW5jIiwic2hhcGUiLCJ0aXRsZSIsImlzUmVxdWlyZWQiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQSxJQUFNQSxXQUFXLEdBQUdDLDBCQUFPQyxHQUFWLG9CQUtGO0FBQUEsTUFBR0MsS0FBSCxRQUFHQSxLQUFIO0FBQUEsU0FBZSw4QkFBa0JBLEtBQWxCLENBQWY7QUFBQSxDQUxFLEVBTU47QUFBQSxNQUFHQSxLQUFILFNBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFmO0FBQUEsQ0FOTSxDQUFqQjtBQVNBOzs7QUFDQSxJQUFNQyxJQUFJLEdBQUcsU0FBUEEsSUFBTyxRQWNQO0FBQUEsTUFiSkMsZUFhSSxTQWJKQSxlQWFJO0FBQUEsTUFaSkMsV0FZSSxTQVpKQSxXQVlJO0FBQUEsTUFYSkMsTUFXSSxTQVhKQSxNQVdJO0FBQUEsTUFWSkMsUUFVSSxTQVZKQSxRQVVJO0FBQUEsTUFUSkMsSUFTSSxTQVRKQSxJ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QUNBVixFQUFBQSxPQUFPLEVBQUVNLG1CQUFVRSxNQTdCSjs7QUE4QmY7QUFDQVAsRUFBQUEsUUFBUSxFQUFFSyxtQkFBVUksTUEvQkw7O0FBZ0NmO0FBQ0F0QixFQUFBQSxLQUFLLEVBQUVrQixtQkFBVUU7QUFqQ0YsQ0FBakI7QUFvQ0FuQixJQUFJLENBQUM0QixZQUFMLEdBQW9CO0FBQ2xCN0IsRUFBQUEsS0FBSyxFQUFFLE1BRFc7QUFFbEJFLEVBQUFBLGVBQWUsRUFBRTtBQUZDLENBQXBCO2VBS2VELEkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IE1lZGlhIGZyb20gJ3JlYWN0LW1lZGlhJztcblxuaW1wb3J0IHsgZGVmaW5lVGV4dCwgY2hvb3NlTWVkaWFRdWVyeSwgZGVmaW5lQ29sTWluV2lkdGggfSBmcm9tICd1dGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX01FRElBX1FVRVJZIH0gZnJvbSAnY29uZmlnL2NvbnN0YW50cy9tZWRpYVF1ZXJpZXMnO1xuaW1wb3J0IERlZmF1bHRDZWxsIGZyb20gJy4vY29tcG9uZW50cy9EZWZhdWx0Q2VsbCc7XG5pbXBvcnQgJ2NvbmZpZy9zdHlsZXMvZGVmYXVsdC5jc3MnO1xuXG4vKiogU3R5bGVzICovXG5jb25zdCBDZWxsV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBtaW4td2lkdGg6ICR7KHsgd2lkdGggfSkgPT4gZGVmaW5lQ29sTWluV2lkdGgod2lkdGgpfTtcbiAgd2lkdGg6ICR7KHsgd2lkdGggfSkgPT4gd2lkdGh9O1xuYDtcblxuLyoqIENvbXBvbmVudCAqL1xuY29uc3QgQ2VsbCA9ICh7XG4gIGJhY2tncm91bmRDb2xvcixcbiAgYnJlYWtwb2ludHMsXG4gIGNlbnRlcixcbiAgY2hpbGRyZW4sXG4gIGRhdGEsXG4gIGVtcHR5Q2VsbENvbnRlbnQsXG4gIGZvbnRTaXplLFxuICBoYW5kbGVDbGljayxcbiAgbGluZUNsYW1wLFxuICBsaW5lSGVpZ2h0LFxuICBwYWRkaW5nLFxuICBwcmlvcml0eSxcbiAgd2lkdGgsXG59KSA9PiB7XG4gIGNvbnN0IHJlbmRlckZ1bmN0aW9uT3JDb21wb25lbnRPckRlZmF1bHQgPSAoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuKHsgZGF0YSwgYnJlYWtwb2ludHMsIHByaW9yaXR5IH0pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8RGVmYXVsdENlbGxcbiAgICAgICAgY2VudGVyPXtjZW50ZXJ9XG4gICAgICAgIGVtcHR5Q2VsbENvbnRlbnQ9e2VtcHR5Q2VsbENvbnRlbnR9XG4gICAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgICAgbGluZUNsYW1wPXtsaW5lQ2xhbXB9XG4gICAgICAgIGxpbmVIZWlnaHQ9e2xpbmVIZWlnaHR9XG4gICAgICAgIHBhZGRpbmc9e3BhZGRpbmd9XG4gICAgICAgIHRleHQ9e2RlZmluZVRleHQoZGF0YSwgY2hpbGRyZW4pfVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE1lZGlhIHF1ZXJ5PXticmVha3BvaW50cyA/IGNob29zZU1lZGlhUXVlcnkoYnJlYWtwb2ludHMsIHByaW9yaXR5KSA6IERFRkFVTFRfTUVESUFfUVVFUll9PlxuICAgICAge21hdGNoZXMgPT4gKG1hdGNoZXMgPyBudWxsIDogKFxuICAgICAgICA8Q2VsbFdyYXBwZXJcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e2JhY2tncm91bmRDb2xvcn1cbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgID5cbiAgICAgICAgICB7cmVuZGVyRnVuY3Rpb25PckNvbXBvbmVudE9yRGVmYXVsdCgpfVxuICAgICAgICA8L0NlbGxXcmFwcGVyPlxuICAgICAgKSlcbiAgICAgIH1cbiAgICA8L01lZGlhPlxuICApO1xufTtcblxuLyoqIFByb3BUeXBlcyAqL1xuQ2VsbC5wcm9wVHlwZXMgPSB7XG4gIC8qKiBDZW50ZXIgdGhlIHRleHQgaW4gdGhlIGNlbGwgKi9cbiAgY2VudGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGNlbGwgKi9cbiAgYmFja2dyb3VuZENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogTGlzdCBvZiBtZWRpYSBxdWVyeSBicmVha3BvaW50cyAqL1xuICBicmVha3BvaW50czogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm51bWJlciksXG4gIC8qKiBDdXN0b20gc3R5bGVkIGNoaWxkcmVuIHRvIGRpc3BsYXkgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5ub2RlLCBQcm9wVHlwZXMuZnVuY10pLCAvLyBUT0RPXG4gIC8qKiBUZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGNlbGwgKi9cbiAgZGF0YTogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICBQcm9wVHlwZXMubnVtYmVyLFxuICAgIFByb3BUeXBlcy5ub2RlLFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIH0pLFxuICBdKSxcbiAgLyoqIFRleHQgb3IgQ29tcG9uZW50IHRvIGRpc3BsYXkgd2hlbiBjZWxsIGlzIGVtcHR5ICovXG4gIGVtcHR5Q2VsbENvbnRlbnQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5mdW5jXSksXG4gIC8qKiBUZXh0IGZvbnQtc2l6ZSAqL1xuICBmb250U2l6ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIENsaWNrIGhhbmRsZXIgZm9yIGEgY2xpY2sgb24gdGhlIGNlbGwgKi9cbiAgaGFuZGxlQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogTnVtYmVyIG9mIGxpbmVzIGJlZm9yZSBlbGxpcHNpcyAqL1xuICBsaW5lQ2xhbXA6IFByb3BUeXBlcy5udW1iZXIsXG4gIC8qKiBIZWlnaHQgb2YgYSBsaW5lICovXG4gIGxpbmVIZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIC8qKiBQYWRkaW5nICovXG4gIHBhZGRpbmc6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBDb2x1bW4gZGlzcGxheSBwcmlvcml0eSAqL1xuICBwcmlvcml0eTogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqIENlbGwgd2lkdGggKi9cbiAgd2lkdGg6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5DZWxsLmRlZmF1bHRQcm9wcyA9IHtcbiAgd2lkdGg6ICcxMDAlJyxcbiAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ2VsbDtcbiJdfQ==