@flexis/ui
Version:
Styleless React Components
154 lines (121 loc) • 8.98 kB
JavaScript
;
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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