UNPKG

@1771technologies/lytenyte-pro

Version:

Blazingly fast headless React data grid with 100s of features.

24 lines (23 loc) 923 B
export function createPivotTree(grid, values, columns, lookup, leafRows) { const sx = grid; const measureEntries = values.length ? values.map((c) => c.field) : ["__EMPTY_LNG__"]; if (!measureEntries.length || !columns.length) { return []; } const pivotedColumns = columns.map((p) => lookup.get(p.field)); const separator = sx.state.columnGroupJoinDelimiter.get(); const paths = new Set(); for (let i = 0; i < leafRows.length; i++) { const current = []; const row = leafRows[i]; for (const column of pivotedColumns) { const pivotKey = String(grid.api.columnField(column, row)); current.push(pivotKey); } for (const measure of measureEntries) { paths.add([...current, measure].join(separator)); } } measureEntries.forEach((id) => paths.add(`total${separator}${id}`)); return [...paths]; }