choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
115 lines (90 loc) • 3.85 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _mobxReactLite = require("mobx-react-lite");
var _classnames = _interopRequireDefault(require("classnames"));
var _UnitConvertor = require("../../../lib/_util/UnitConvertor");
var _Column = require("./Column");
var _TableContext = _interopRequireDefault(require("./TableContext"));
var _ExpandIcon = _interopRequireDefault(require("./ExpandIcon"));
var TableGroupCellInner = function TableGroupCellInner(props) {
var _useContext = (0, _react.useContext)(_TableContext["default"]),
dataSet = _useContext.dataSet,
rowHeight = _useContext.rowHeight,
indentSize = _useContext.indentSize,
tableStore = _useContext.tableStore,
prefixCls = _useContext.prefixCls;
var column = props.column,
group = props.group,
aggregationList = props.children,
rowSpan = props.rowSpan;
var children = group.children;
var _column$renderer = column.renderer,
renderer = _column$renderer === void 0 ? _Column.defaultAggregationRenderer : _column$renderer,
__tableGroup = column.__tableGroup;
var handleExpandChange = (0, _react.useCallback)(function () {
tableStore.setGroupExpanded(group, !tableStore.isGroupExpanded(group));
}, [tableStore, group]);
var record = group.totalRecords[0];
var text = renderer({
text: aggregationList || group.value,
rowGroup: group,
dataSet: dataSet,
record: record
});
var hasExpandIcon = Boolean(__tableGroup && __tableGroup.parentField);
var renderExpandIcon = function renderExpandIcon() {
if (hasExpandIcon) {
var expandable = !!children;
var expandIcon = tableStore.expandIcon;
var isExpanded = tableStore.isGroupExpanded(group);
if (typeof expandIcon === 'function') {
return expandIcon({
prefixCls: prefixCls,
expanded: isExpanded,
expandable: expandable,
needIndentSpaced: false,
record: record,
onExpand: handleExpandChange
});
}
return /*#__PURE__*/_react["default"].createElement(_ExpandIcon["default"], {
prefixCls: prefixCls,
expandable: expandable,
onChange: handleExpandChange,
expanded: isExpanded
});
}
};
var renderIndent = function renderIndent() {
if (hasExpandIcon) {
return /*#__PURE__*/_react["default"].createElement("span", {
key: "indent",
style: {
paddingLeft: (0, _UnitConvertor.pxToRem)(indentSize * group.level)
}
});
}
};
var cellProps = {
className: (0, _classnames["default"])("".concat(prefixCls, "-cell-inner"), (0, _defineProperty2["default"])({}, "".concat(prefixCls, "-cell-inner-row-height-fixed"), rowHeight !== 'auto'))
};
if (rowSpan === undefined && tableStore.isFixedRowHeight && rowHeight !== 'auto') {
cellProps.style = {
height: (0, _UnitConvertor.pxToRem)(rowHeight),
lineHeight: (0, _UnitConvertor.pxToRem)(rowHeight - 2)
};
}
return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, cellProps), renderIndent(), renderExpandIcon(), text);
};
TableGroupCellInner.displayName = 'TableGroupCellInner';
var _default = (0, _mobxReactLite.observer)(TableGroupCellInner);
exports["default"] = _default;
//# sourceMappingURL=TableGroupCellInner.js.map