@ucloud-pccl/react-components
Version:
UCloud pccl react components
110 lines (109 loc) • 4.85 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _miniStore = require("mini-store");
var _classnames = _interopRequireDefault(require("classnames"));
var _this2 = void 0;
var _excluded = ["column", "style", "className"];
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function TableHeaderRow(_ref) {
var _this = this;
var row = _ref.row,
index = _ref.index,
height = _ref.height,
components = _ref.components,
onHeaderRow = _ref.onHeaderRow,
prefixCls = _ref.prefixCls;
var HeaderRow = components.header.row;
var HeaderCell = components.header.cell;
var rowProps = onHeaderRow(row.map(function (cell) {
(0, _newArrowCheck2.default)(this, _this);
return cell.column;
}.bind(this)), index);
var customStyle = rowProps ? rowProps.style : {};
var style = _objectSpread({
height: height
}, customStyle);
return /*#__PURE__*/_react.default.createElement(HeaderRow, (0, _extends2.default)({}, rowProps, {
style: style
}), row.map(function (cell, i) {
(0, _newArrowCheck2.default)(this, _this);
var column = cell.column,
_cell$style = cell.style,
style = _cell$style === void 0 ? {} : _cell$style,
className = cell.className,
cellProps = (0, _objectWithoutProperties2.default)(cell, _excluded);
var offset = column.offset,
fixed = column.fixed;
var customProps = column.onHeaderCell ? column.onHeaderCell(column) : {};
var _customProps$_style = customProps._style,
_style = _customProps$_style === void 0 ? {} : _customProps$_style,
_className = customProps.className;
style = _objectSpread(_objectSpread({}, style), _style);
className = (0, _classnames.default)(className, _className);
if (column.align) {
style.textAlign = column.align;
}
if (fixed && offset != null) {
style.position = 'sticky';
style.zIndex = 2;
if (column.fixed === 'left') {
style.left = offset;
if (column.latestLeftFixed) {
className = (0, _classnames.default)(className, "".concat(prefixCls, "-th-fixed-left-latest"));
}
} else if (column.fixed === 'right') {
style.right = offset;
if (column.firstRightFixed) {
className = (0, _classnames.default)(className, "".concat(prefixCls, "-th-fixed-right-first"));
}
}
}
return /*#__PURE__*/_react.default.createElement(HeaderCell, (0, _extends2.default)({}, cellProps, customProps, {
style: style,
className: className,
key: column.key || column.dataIndex || i
}));
}.bind(this)));
}
TableHeaderRow.propTypes = {
row: _propTypes.default.array,
index: _propTypes.default.number,
height: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
components: _propTypes.default.any,
onHeaderRow: _propTypes.default.func,
prefixCls: _propTypes.default.string
};
function getRowHeight(state, props) {
var fixedColumnsHeadRowsHeight = state.fixedColumnsHeadRowsHeight;
var columns = props.columns,
rows = props.rows,
fixed = props.fixed;
var headerHeight = fixedColumnsHeadRowsHeight[0];
if (!fixed) {
return null;
}
if (headerHeight && columns) {
if (headerHeight === 'auto') {
return 'auto';
}
return headerHeight / rows.length;
}
return null;
}
var _default = exports.default = (0, _miniStore.connect)(function (state, props) {
(0, _newArrowCheck2.default)(this, _this2);
return {
height: getRowHeight(state, props)
};
}.bind(void 0))(TableHeaderRow);