@antv/s2
Version:
effective spreadsheet render core lib
33 lines • 1.29 kB
JavaScript
import { SERIES_NUMBER_FIELD } from '../../common/constant';
import { generateHeaderNodes } from '../../utils/layout/generate-header-nodes';
import { buildGridHierarchy } from './build-gird-hierarchy';
export const buildTableHierarchy = (params) => {
var _a;
const { spreadsheet, rootNode, fields, hierarchy } = params;
const { columns = [] } = spreadsheet.dataSet.fields;
const { enable } = (_a = spreadsheet.options.seriesNumber) !== null && _a !== void 0 ? _a : {};
const seriesNumberNodeValue = spreadsheet.getSeriesNumberText();
const fieldValues = columns.map((field) => {
return field === SERIES_NUMBER_FIELD
? seriesNumberNodeValue
: spreadsheet.dataSet.getFieldName(field);
});
if (enable && !fields.includes(SERIES_NUMBER_FIELD)) {
fields.unshift(SERIES_NUMBER_FIELD);
fieldValues.unshift(seriesNumberNodeValue);
}
generateHeaderNodes({
spreadsheet,
currentField: fields[0],
fields: fields,
fieldValues,
hierarchy,
parentNode: rootNode,
level: 0,
query: {},
addMeasureInTotalQuery: false,
addTotalMeasureInTotal: false,
handler: buildGridHierarchy,
});
};
//# sourceMappingURL=build-table-hierarchy.js.map