@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
23 lines (22 loc) • 1.04 kB
JavaScript
import { createColumnPivotsFromPaths } from "./create-pivot-columns-from-paths.js";
import { createPivotTree } from "./create-pivot-tree.js";
export function createPivotColumns(model, lookup, grid, leafRows) {
const activeColumns = model.columns.filter((c) => lookup.has(c.field) && (c.active ?? true));
const activeValues = model.values.filter((c) => lookup.has(c.field) && (c.active ?? true));
if (activeColumns.length === 0 && activeValues.length === 0)
return [];
// This means we only have a values column defined. Hence we should just return this.
if (activeColumns.length === 0) {
const columns = activeValues.map((c) => {
const col = lookup.get(c.field);
return {
...col,
field: c.field,
};
});
return columns;
}
const tree = createPivotTree(grid, activeValues, activeColumns, lookup, leafRows);
const columns = createColumnPivotsFromPaths(grid, activeColumns, lookup, tree);
return columns;
}