UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

142 lines (111 loc) 4.63 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _tslib = require("tslib"); var _react = _interopRequireWildcard(require("react")); var _mobx = require("mobx"); var _mobxReact = require("mobx-react"); var _UnitConvertor = require("../../../lib/_util/UnitConvertor"); var _ResizeObservedRow = _interopRequireDefault(require("./ResizeObservedRow")); var _TableContext = _interopRequireDefault(require("./TableContext")); var _autobind = _interopRequireDefault(require("../_util/autobind")); var _utils = require("./utils"); function _createSuper(Derived) { function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (isNativeReflectConstruct()) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } var TableHeaderRow = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(TableHeaderRow, _Component); var _super = _createSuper(TableHeaderRow); function TableHeaderRow() { (0, _classCallCheck2["default"])(this, TableHeaderRow); return _super.apply(this, arguments); } (0, _createClass2["default"])(TableHeaderRow, [{ key: "handleResize", value: function handleResize(rowIndex, height) { this.setRowHeight(rowIndex, height); } }, { key: "setRowHeight", value: function setRowHeight(index, height) { var tableStore = this.context.tableStore; (0, _mobx.set)(tableStore.lockColumnsHeadRowsHeight, index, height); } }, { key: "getRowHeight", value: function getRowHeight(index) { var tableStore = this.context.tableStore; return (0, _mobx.get)(tableStore.lockColumnsHeadRowsHeight, index) || 0; } }, { key: "getHeaderRowStyle", value: function getHeaderRowStyle(rows, rowIndex) { var _this = this; var height = this.getRowHeight(rowIndex++); return (0, _UnitConvertor.pxToRem)(rows.slice(rowIndex).reduce(function (total, r, index) { return r.length ? total : total + _this.getRowHeight(index + rowIndex); }, height)); } }, { key: "render", value: function render() { var _this$props = this.props, rowIndex = _this$props.rowIndex, lock = _this$props.lock, tds = _this$props.tds, rows = _this$props.rows; var rowHeight = this.context.tableStore.rowHeight; var needStoreRowHeight = !(0, _utils.isStickySupport)() && (rowHeight === 'auto' || rows.length > 1); var tr = _react["default"].createElement("tr", { style: { height: lock && needStoreRowHeight ? this.getHeaderRowStyle(rows, rowIndex) : undefined } }, tds); return !lock && needStoreRowHeight ? _react["default"].createElement(_ResizeObservedRow["default"], { onResize: this.handleResize, rowIndex: rowIndex }, tr) : tr; } }]); return TableHeaderRow; }(_react.Component); TableHeaderRow.contextType = _TableContext["default"]; (0, _tslib.__decorate)([_autobind["default"]], TableHeaderRow.prototype, "handleResize", null); (0, _tslib.__decorate)([_mobx.action], TableHeaderRow.prototype, "setRowHeight", null); TableHeaderRow = (0, _tslib.__decorate)([_mobxReact.observer], TableHeaderRow); var _default = TableHeaderRow; exports["default"] = _default; ; //# sourceMappingURL=TableHeaderRow.js.map