choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
84 lines (66 loc) • 2.35 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 _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _react = _interopRequireDefault(require("react"));
var _miniStore = require("mini-store");
function TableHeaderRow(_ref) {
var row = _ref.row,
index = _ref.index,
height = _ref.height,
components = _ref.components,
onHeaderRow = _ref.onHeaderRow;
var HeaderRow = components.header.row;
var HeaderCell = components.header.cell;
var rowProps = onHeaderRow(row.map(function (cell) {
return cell.column;
}), index);
var customStyle = rowProps ? rowProps.style : {};
var style = (0, _objectSpread2["default"])({
height: height
}, customStyle);
return _react["default"].createElement(HeaderRow, (0, _extends2["default"])({}, rowProps, {
style: style
}), row.map(function (cell, i) {
var column = cell.column,
cellProps = (0, _objectWithoutProperties2["default"])(cell, ["column"]);
var customProps = column.onHeaderCell ? column.onHeaderCell(column) : {};
if (column.align) {
cellProps.style = {
textAlign: column.align
};
}
return _react["default"].createElement(HeaderCell, (0, _extends2["default"])({}, cellProps, customProps, {
key: column.key || column.dataIndex || i
}));
}));
}
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 = (0, _miniStore.connect)(function (state, props) {
return {
height: getRowHeight(state, props)
};
})(TableHeaderRow);
exports["default"] = _default;
//# sourceMappingURL=TableHeaderRow.js.map