ant-design-vue
Version:
An enterprise-class UI design language and Vue-based implementation
60 lines (59 loc) • 1.97 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _vue = require("vue");
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _Cell = _interopRequireDefault(require("../Cell"));
var _SummaryContext = require("../context/SummaryContext");
var _TableContext = require("../context/TableContext");
var _fixUtil = require("../utils/fixUtil");
var _default = exports.default = (0, _vue.defineComponent)({
name: 'ATableSummaryCell',
props: ['index', 'colSpan', 'rowSpan', 'align'],
setup(props, _ref) {
let {
attrs,
slots
} = _ref;
const tableContext = (0, _TableContext.useInjectTable)();
const summaryContext = (0, _SummaryContext.useInjectSummary)();
return () => {
const {
index,
colSpan = 1,
rowSpan,
align
} = props;
const {
prefixCls,
direction
} = tableContext;
const {
scrollColumnIndex,
stickyOffsets,
flattenColumns
} = summaryContext;
const lastIndex = index + colSpan - 1;
const mergedColSpan = lastIndex + 1 === scrollColumnIndex ? colSpan + 1 : colSpan;
const fixedInfo = (0, _fixUtil.getCellFixedInfo)(index, index + mergedColSpan - 1, flattenColumns, stickyOffsets, direction);
return (0, _vue.createVNode)(_Cell.default, (0, _objectSpread2.default)({
"class": attrs.class,
"index": index,
"component": "td",
"prefixCls": prefixCls,
"record": null,
"dataIndex": null,
"align": align,
"colSpan": mergedColSpan,
"rowSpan": rowSpan,
"customRender": () => {
var _a;
return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);
}
}, fixedInfo), null);
};
}
});
;