@flexis/ui
Version:
Styleless React Components
131 lines (112 loc) • 8.26 kB
JavaScript
import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
import _extends from "@babel/runtime-corejs3/helpers/extends";
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/objectWithoutProperties";
import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck";
import _createClass from "@babel/runtime-corejs3/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime-corejs3/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime-corejs3/helpers/getPrototypeOf";
import _inherits from "@babel/runtime-corejs3/helpers/inherits";
import _Object$values from "@babel/runtime-corejs3/core-js-stable/object/values";
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
var _context;
import { __decorate } from "tslib";
import React from 'react';
var _createElement = React.createElement;
var PureComponent = React.PureComponent;
import PropTypes from 'prop-types';
import { Bind, omit, modulo } from '../../helpers';
import isKeyboardClick from '../common/isKeyboardClick';
import { style, classes } from './Table.st.css';
export var Order;
(function (Order) {
Order[Order["None"] = 0] = "None";
Order[Order["Asc"] = 1] = "Asc";
Order[Order["Desc"] = -1] = "Desc";
})(Order || (Order = {}));
export var OrderValues = _filterInstanceProperty(_context = _Object$values(Order)).call(_context, function (_) {
return typeof _ === 'number';
});
var buttonRole = {
role: 'button',
tabIndex: 0
};
var TableCell =
/** @class */
function () {
var TableCell = /*#__PURE__*/function (_PureComponent) {
_inherits(TableCell, _PureComponent);
function TableCell() {
_classCallCheck(this, TableCell);
return _possibleConstructorReturn(this, _getPrototypeOf(TableCell).apply(this, arguments));
}
_createClass(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 = _objectWithoutProperties(_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, _extends({}, buttonLikeProps, omit(props, ['onOrderChange']), {
className: style(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[modulo(_indexOfInstanceProperty(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 (isKeyboardClick(key)) {
this.onOrderChange(null);
}
if (typeof onKeyPress === 'function') {
onKeyPress(event);
}
}
}]);
return TableCell;
}(PureComponent);
process.env.NODE_ENV !== "production" ? TableCell.propTypes = {
head: PropTypes.bool,
onOrderChange: PropTypes.func,
order: PropTypes.oneOf(OrderValues),
children: PropTypes.node
} : void 0;
TableCell.defaultProps = {
head: false
};
__decorate([Bind()], TableCell.prototype, "onOrderChange", null);
__decorate([Bind()], TableCell.prototype, "onKeyPress", null);
return TableCell;
}();
export { TableCell };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RhYmxlL1RhYmxlQ2VsbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQVAsTUFPTyxPQVBQOzs7QUFRQSxPQUFPLFNBQVAsTUFBc0IsWUFBdEI7QUFDQSxTQUVDLElBRkQsRUFHQyxJQUhELEVBSUMsTUFKRCxRQUtPLGVBTFA7QUFNQSxPQUFPLGVBQVAsTUFBNEIsMkJBQTVCO0FBQ0EsU0FDQyxLQURELEVBRUMsT0FGRCxRQUdPLGdCQUhQO0FBS0EsT0FBQSxJQUFZLEtBQVo7O0FBQUEsQ0FBQSxVQUFZLEtBQVosRUFBaUI7QUFDaEIsRUFBQSxLQUFBLENBQUEsS0FBQSxDQUFBLE1BQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLE1BQUE7QUFDQSxFQUFBLEtBQUEsQ0FBQSxLQUFBLENBQUEsS0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsS0FBQTtBQUNBLEVBQUEsS0FBQSxDQUFBLEtBQUEsQ0FBQSxNQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLE1BQUE7QUFDQSxDQUpELEVBQVksS0FBSyxLQUFMLEtBQUssR0FBQSxFQUFBLENBQWpCOztBQXFCQSxPQUFPLElBQU0sV0FBVyxHQUFHLGtEQUFjLEtBQWQsa0JBQTRCLFVBQUEsQ0FBQztBQUFBLFNBQUksT0FBTyxDQUFQLEtBQWEsUUFBakI7QUFBQSxDQUE3QixDQUFwQjtBQUVQLElBQU0sVUFBVSxHQUFHO0FBQ2xCLEVBQUEsSUFBSSxFQUFNLFFBRFE7QUFFbEIsRUFBQSxRQUFRLEVBQUU7QUFGUSxDQUFuQjs7QUFLQSxJQUFBLFNBQUE7QUFBQTtBQUFBLFlBQUE7QUFBQSxNQUFhLFNBQWI7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBLCtCQWFPO0FBQUEsMEJBUUQsS0FBSyxLQVJKO0FBQUEsWUFHSixTQUhJLGVBR0osU0FISTtBQUFBLFlBSUosSUFKSSxlQUlKLElBSkk7QUFBQSxZQUtKLEtBTEksZUFLSixLQUxJO0FBQUEsWUFNSixRQU5JLGVBTUosUUFOSTtBQUFBLFlBT0QsS0FQQzs7QUFTTCxZQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSCxHQUFVLElBQTNCO0FBQ0EsWUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLE9BQU8sS0FBUCxLQUFpQixRQUF6QztBQUNBLFlBQU0sZUFBZSxHQUFHLE9BQU8sR0FBRyxVQUFILEdBQWdCLEVBQS9DO0FBQ0EsWUFBTSxtQkFBbUIsR0FBRyxPQUFPLEdBQ2hDO0FBQUUsVUFBQSxVQUFVLEVBQUUsS0FBSztBQUFuQixTQURnQyxHQUVoQyxFQUZIO0FBSUEsZUFDQyxlQUFDLElBQUQsZUFDSyxlQURMLEVBRUssSUFBSSxDQUFDLEtBQUQsRUFBUSxDQUFDLGVBQUQsQ0FBUixDQUZUO0FBR0MsVUFBQSxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFULEVBQWU7QUFDOUIsWUFBQSxJQUFJLEVBQUosSUFEOEI7QUFFOUIsWUFBQSxTQUFTLEVBQUUsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUZGO0FBRzlCLFlBQUEsUUFBUSxFQUFHLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FIRjtBQUk5QixZQUFBLFNBQVMsRUFBRSxPQUFPLElBQUksS0FBSyxLQUFLLENBQUM7QUFKSCxXQUFmLEVBS2IsU0FMYTtBQUhqQixXQVNLLG1CQVRMO0FBVUMsVUFBQSxPQUFPLEVBQUUsS0FBSztBQVZmLFlBWUUsUUFaRixDQUREO0FBZ0JBO0FBN0NGO0FBQUE7QUFBQSxvQ0FnRHVCLEtBaER2QixFQWdEOEQ7QUFBQSwyQkFPeEQsS0FBSyxLQVBtRDtBQUFBLFlBRzNELE9BSDJELGdCQUczRCxPQUgyRDtBQUFBLFlBSTNELGFBSjJELGdCQUkzRCxhQUoyRDtBQUFBLFlBSzNELElBTDJELGdCQUszRCxJQUwyRDtBQUFBLFlBTTNELEtBTjJELGdCQU0zRCxLQU4yRDs7QUFTNUQsWUFBSSxJQUFJLElBQ0osT0FBTyxLQUFQLEtBQWlCLFFBRGpCLElBRUEsT0FBTyxhQUFQLEtBQXlCLFVBRjdCLEVBR0U7QUFDRCxVQUFBLGFBQWEsQ0FDWixXQUFXLENBQUMsTUFBTSxDQUNqQix5QkFBQSxXQUFXLE1BQVgsQ0FBQSxXQUFXLEVBQVMsS0FBVCxDQUFYLEdBQTZCLENBRFosRUFFakIsV0FBVyxDQUFDLE1BRkssQ0FBUCxDQURDLEVBS1osS0FMWSxDQUFiO0FBT0E7O0FBRUQsWUFBSSxPQUFPLE9BQVAsS0FBbUIsVUFBdkIsRUFBbUM7QUFDbEMsVUFBQSxPQUFPLENBQUMsS0FBRCxDQUFQO0FBQ0E7QUFDRDtBQXpFRjtBQUFBO0FBQUEsaUNBNEVvQixLQTVFcEIsRUE0RThEO0FBQUEsWUFHM0QsVUFIMkQsR0FJeEQsS0FBSyxLQUptRCxDQUczRCxVQUgyRDtBQUFBLFlBTTNELEdBTjJELEdBT3hELEtBUHdELENBTTNELEdBTjJEOztBQVM1RCxZQUFJLGVBQWUsQ0FBQyxHQUFELENBQW5CLEVBQTBCO0FBQ3pCLGVBQUssYUFBTCxDQUFtQixJQUFuQjtBQUNBOztBQUVELFlBQUksT0FBTyxVQUFQLEtBQXNCLFVBQTFCLEVBQXNDO0FBQ3JDLFVBQUEsVUFBVSxDQUFDLEtBQUQsQ0FBVjtBQUNBO0FBQ0Q7QUE1RkY7O0FBQUE7QUFBQSxJQUErQixhQUEvQjs7QUFFUSwwQ0FBQSxTQUFBLENBQUEsU0FBQSxHQUFZO0FBQ2xCLElBQUEsSUFBSSxFQUFXLFNBQVMsQ0FBQyxJQURQO0FBRWxCLElBQUEsYUFBYSxFQUFFLFNBQVMsQ0FBQyxJQUZQO0FBR2xCLElBQUEsS0FBSyxFQUFVLFNBQVMsQ0FBQyxLQUFWLENBQWdCLFdBQWhCLENBSEc7QUFJbEIsSUFBQSxRQUFRLEVBQU8sU0FBUyxDQUFDO0FBSlAsR0FBWjtBQU9BLEVBQUEsU0FBQSxDQUFBLFlBQUEsR0FBZTtBQUNyQixJQUFBLElBQUksRUFBRTtBQURlLEdBQWY7O0FBdUNQLEVBQUEsVUFBQSxDQUFBLENBREMsSUFBSSxFQUNMLENBQUEsRSxtQkFBQSxFLGVBQUEsRUF5QkMsSUF6QkQsQ0FBQTs7QUE0QkEsRUFBQSxVQUFBLENBQUEsQ0FEQyxJQUFJLEVBQ0wsQ0FBQSxFLG1CQUFBLEUsWUFBQSxFQWdCQyxJQWhCRCxDQUFBOztBQWlCRCxTQUFBLFNBQUE7QUFBQyxDQTdGRCxFQUFBOztTQUFhLFMiLCJzb3VyY2VSb290IjoiIn0=