UNPKG

@flexis/ui

Version:

Styleless React Components

154 lines (121 loc) 8.98 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); _Object$defineProperty(exports, "__esModule", { value: true }); exports.TableCell = exports.OrderValues = exports.Order = void 0; var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of")); var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits")); var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values")); var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter")); var _tslib = require("tslib"); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _helpers = require("../../helpers"); var _isKeyboardClick = _interopRequireDefault(require("../common/isKeyboardClick")); var _TableSt = require("./Table.st.css"); var _context; var _createElement = _react.default.createElement; var PureComponent = _react.default.PureComponent; var Order; exports.Order = Order; (function (Order) { Order[Order["None"] = 0] = "None"; Order[Order["Asc"] = 1] = "Asc"; Order[Order["Desc"] = -1] = "Desc"; })(Order || (exports.Order = Order = {})); var OrderValues = (0, _filter.default)(_context = (0, _values.default)(Order)).call(_context, function (_) { return typeof _ === 'number'; }); exports.OrderValues = OrderValues; var buttonRole = { role: 'button', tabIndex: 0 }; var TableCell = /** @class */ function () { var TableCell = /*#__PURE__*/function (_PureComponent) { (0, _inherits2.default)(TableCell, _PureComponent); function TableCell() { (0, _classCallCheck2.default)(this, TableCell); return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(TableCell).apply(this, arguments)); } (0, _createClass2.default)(TableCell, [{ key: "render", value: function render() { var _this$props = this.props, className = _this$props.className, head = _this$props.head, order = _this$props.order, children = _this$props.children, props = (0, _objectWithoutProperties2.default)(_this$props, ["className", "head", "order", "children"]); var Cell = head ? 'th' : 'td'; var isOrder = head && typeof order === 'number'; var buttonLikeProps = isOrder ? buttonRole : {}; var buttonLikeListeners = isOrder ? { onKeyPress: this.onKeyPress } : {}; return _createElement(Cell, (0, _extends2.default)({}, buttonLikeProps, (0, _helpers.omit)(props, ['onOrderChange']), { className: (0, _TableSt.style)(_TableSt.classes.cell, { head: head, orderNone: isOrder && order === 0, orderAsc: isOrder && order === 1, orderDesc: isOrder && order === -1 }, className) }, buttonLikeListeners, { onClick: this.onOrderChange }), children); } }, { key: "onOrderChange", value: function onOrderChange(event) { var _this$props2 = this.props, onClick = _this$props2.onClick, onOrderChange = _this$props2.onOrderChange, head = _this$props2.head, order = _this$props2.order; if (head && typeof order === 'number' && typeof onOrderChange === 'function') { onOrderChange(OrderValues[(0, _helpers.modulo)((0, _indexOf.default)(OrderValues).call(OrderValues, order) + 1, OrderValues.length)], event); } if (typeof onClick === 'function') { onClick(event); } } }, { key: "onKeyPress", value: function onKeyPress(event) { var onKeyPress = this.props.onKeyPress; var key = event.key; if ((0, _isKeyboardClick.default)(key)) { this.onOrderChange(null); } if (typeof onKeyPress === 'function') { onKeyPress(event); } } }]); return TableCell; }(PureComponent); process.env.NODE_ENV !== "production" ? TableCell.propTypes = { head: _propTypes.default.bool, onOrderChange: _propTypes.default.func, order: _propTypes.default.oneOf(OrderValues), children: _propTypes.default.node } : void 0; TableCell.defaultProps = { head: false }; (0, _tslib.__decorate)([(0, _helpers.Bind)()], TableCell.prototype, "onOrderChange", null); (0, _tslib.__decorate)([(0, _helpers.Bind)()], TableCell.prototype, "onKeyPress", null); return TableCell; }(); exports.TableCell = TableCell; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RhYmxlL1RhYmxlQ2VsbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQVFBOztBQUNBOztBQU1BOztBQUNBOzs7Ozs7QUFLQSxJQUFZLEtBQVo7OztBQUFBLENBQUEsVUFBWSxLQUFaLEVBQWlCO0FBQ2hCLEVBQUEsS0FBQSxDQUFBLEtBQUEsQ0FBQSxNQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxNQUFBO0FBQ0EsRUFBQSxLQUFBLENBQUEsS0FBQSxDQUFBLEtBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLEtBQUE7QUFDQSxFQUFBLEtBQUEsQ0FBQSxLQUFBLENBQUEsTUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxNQUFBO0FBQ0EsQ0FKRCxFQUFZLEtBQUsscUJBQUwsS0FBSyxHQUFBLEVBQUEsQ0FBakI7O0FBcUJPLElBQU0sV0FBVyxHQUFHLHFEQUFjLEtBQWQsa0JBQTRCLFVBQUEsQ0FBQztBQUFBLFNBQUksT0FBTyxDQUFQLEtBQWEsUUFBakI7QUFBQSxDQUE3QixDQUFwQjs7QUFFUCxJQUFNLFVBQVUsR0FBRztBQUNsQixFQUFBLElBQUksRUFBTSxRQURRO0FBRWxCLEVBQUEsUUFBUSxFQUFFO0FBRlEsQ0FBbkI7O0FBS0EsSUFBQSxTQUFBO0FBQUE7QUFBQSxZQUFBO0FBQUEsTUFBYSxTQUFiO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBLCtCQWFPO0FBQUEsMEJBUUQsS0FBSyxLQVJKO0FBQUEsWUFHSixTQUhJLGVBR0osU0FISTtBQUFBLFlBSUosSUFKSSxlQUlKLElBSkk7QUFBQSxZQUtKLEtBTEksZUFLSixLQUxJO0FBQUEsWUFNSixRQU5JLGVBTUosUUFOSTtBQUFBLFlBT0QsS0FQQztBQVNMLFlBQU0sSUFBSSxHQUFHLElBQUksR0FBRyxJQUFILEdBQVUs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