@tanstack/table-core 8.19.1 → 8.19.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/features/RowPinning.d.ts +1 -1
- package/build/lib/features/RowPinning.js +7 -7
- package/build/lib/features/RowPinning.js.map +1 -1
- package/build/lib/index.esm.js +15 -8
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.mjs +15 -8
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/utils/getGroupedRowModel.d.ts +1 -1
- package/build/lib/utils/getGroupedRowModel.js +8 -1
- package/build/lib/utils/getGroupedRowModel.js.map +1 -1
- package/build/umd/index.development.js +15 -8
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/features/RowPinning.ts +35 -31
- package/src/utils/getGroupedRowModel.ts +11 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RowData, RowModel, Table } from '../types';
|
|
2
2
|
export declare function getGroupedRowModel<TData extends RowData>(): (table: Table<TData>) => () => RowModel<TData>;
|
|
@@ -16,6 +16,10 @@ var utils = require('../utils.js');
|
|
|
16
16
|
function getGroupedRowModel() {
|
|
17
17
|
return table => utils.memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {
|
|
18
18
|
if (!rowModel.rows.length || !grouping.length) {
|
|
19
|
+
rowModel.rows.forEach(row => {
|
|
20
|
+
row.depth = 0;
|
|
21
|
+
row.parentId = undefined;
|
|
22
|
+
});
|
|
19
23
|
return rowModel;
|
|
20
24
|
}
|
|
21
25
|
|
|
@@ -51,7 +55,7 @@ function getGroupedRowModel() {
|
|
|
51
55
|
// Group the rows together for this level
|
|
52
56
|
const rowGroupsMap = groupBy(rows, columnId);
|
|
53
57
|
|
|
54
|
-
//
|
|
58
|
+
// Perform aggregations for each group
|
|
55
59
|
const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {
|
|
56
60
|
let [groupingValue, groupedRows] = _ref;
|
|
57
61
|
let id = `${columnId}:${groupingValue}`;
|
|
@@ -59,6 +63,9 @@ function getGroupedRowModel() {
|
|
|
59
63
|
|
|
60
64
|
// First, Recurse to group sub rows before aggregation
|
|
61
65
|
const subRows = groupUpRecursively(groupedRows, depth + 1, id);
|
|
66
|
+
subRows.forEach(subRow => {
|
|
67
|
+
subRow.parentId = id;
|
|
68
|
+
});
|
|
62
69
|
|
|
63
70
|
// Flatten the leaf rows of the rows in this group
|
|
64
71
|
const leafRows = depth ? utils.flattenBy(groupedRows, row => row.subRows) : groupedRows;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, RowData } from '../types'\nimport { flattenBy, getMemoOptions, memo } from '../utils'\n\nexport function getGroupedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.getState().grouping, table.getPreGroupedRowModel()],\n (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId =>\n table.getColumn(columnId)\n )\n\n const groupedFlatRows: Row<TData>[] = []\n const groupedRowsById: Record<string, Row<TData>> = {}\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = (\n rows: Row<TData>[],\n depth = 0,\n parentId?: string\n ) => {\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth\n\n groupedFlatRows.push(row)\n groupedRowsById[row.id] = row\n\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id)\n }\n\n return row\n })\n }\n\n const columnId: string = existingGrouping[depth]!\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId)\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(\n ([groupingValue, groupedRows], index) => {\n let id = `${columnId}:${groupingValue}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, row => row.subRows)\n : groupedRows\n\n const row = createRow(\n table,\n id,\n leafRows[0]!.original,\n index,\n depth,\n undefined,\n parentId\n )\n\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: (columnId: string) => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n if (groupedRows[0]) {\n row._valuesCache[columnId] =\n groupedRows[0].getValue(columnId) ?? undefined\n }\n\n return row._valuesCache[columnId]\n }\n\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId]\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId)\n const aggregateFn = column?.getAggregationFn()\n\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(\n columnId,\n leafRows,\n groupedRows\n )\n\n return row._groupingValuesCache[columnId]\n }\n },\n })\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0)\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n }\n },\n getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded()\n table._autoResetPageIndex()\n })\n })\n )\n}\n\nfunction groupBy<TData extends RowData>(rows: Row<TData>[], columnId: string) {\n const groupMap = new Map<any, Row<TData>[]>()\n\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n previous.push(row)\n }\n return map\n }, groupMap)\n}\n"],"names":["getGroupedRowModel","table","memo","getState","grouping","getPreGroupedRowModel","rowModel","rows","length","existingGrouping","filter","columnId","getColumn","groupedFlatRows","groupedRowsById","groupUpRecursively","depth","parentId","map","row","push","id","subRows","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","_ref","index","groupingValue","groupedRows","leafRows","flattenBy","createRow","original","undefined","Object","assign","groupingColumnId","getValue","includes","_valuesCache","hasOwnProperty","_groupedRows$0$getVal","_groupingValuesCache","column","aggregateFn","getAggregationFn","forEach","subRow","flatRows","rowsById","getMemoOptions","options","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","getGroupingValue","previous","get","set"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Row, RowData, RowModel, Table } from '../types'\nimport { flattenBy, getMemoOptions, memo } from '../utils'\nimport { GroupingState } from '../features/ColumnGrouping'\n\nexport function getGroupedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.getState().grouping, table.getPreGroupedRowModel()],\n (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0\n row.parentId = undefined\n })\n return rowModel\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId =>\n table.getColumn(columnId)\n )\n\n const groupedFlatRows: Row<TData>[] = []\n const groupedRowsById: Record<string, Row<TData>> = {}\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = (\n rows: Row<TData>[],\n depth = 0,\n parentId?: string\n ) => {\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth\n\n groupedFlatRows.push(row)\n groupedRowsById[row.id] = row\n\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id)\n }\n\n return row\n })\n }\n\n const columnId: string = existingGrouping[depth]!\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId)\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(\n ([groupingValue, groupedRows], index) => {\n let id = `${columnId}:${groupingValue}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n subRows.forEach(subRow => {\n subRow.parentId = id\n })\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, row => row.subRows)\n : groupedRows\n\n const row = createRow(\n table,\n id,\n leafRows[0]!.original,\n index,\n depth,\n undefined,\n parentId\n )\n\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: (columnId: string) => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n if (groupedRows[0]) {\n row._valuesCache[columnId] =\n groupedRows[0].getValue(columnId) ?? undefined\n }\n\n return row._valuesCache[columnId]\n }\n\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId]\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId)\n const aggregateFn = column?.getAggregationFn()\n\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(\n columnId,\n leafRows,\n groupedRows\n )\n\n return row._groupingValuesCache[columnId]\n }\n },\n })\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0)\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n }\n },\n getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded()\n table._autoResetPageIndex()\n })\n })\n )\n}\n\nfunction groupBy<TData extends RowData>(rows: Row<TData>[], columnId: string) {\n const groupMap = new Map<any, Row<TData>[]>()\n\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n previous.push(row)\n }\n return map\n }, groupMap)\n}\n"],"names":["getGroupedRowModel","table","memo","getState","grouping","getPreGroupedRowModel","rowModel","rows","length","forEach","row","depth","parentId","undefined","existingGrouping","filter","columnId","getColumn","groupedFlatRows","groupedRowsById","groupUpRecursively","map","push","id","subRows","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","_ref","index","groupingValue","groupedRows","subRow","leafRows","flattenBy","createRow","original","Object","assign","groupingColumnId","getValue","includes","_valuesCache","hasOwnProperty","_groupedRows$0$getVal","_groupingValuesCache","column","aggregateFn","getAggregationFn","flatRows","rowsById","getMemoOptions","options","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","getGroupingValue","previous","get","set"],"mappings":"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"}
|
|
@@ -2008,13 +2008,13 @@
|
|
|
2008
2008
|
return isTop ? 'top' : isBottom ? 'bottom' : false;
|
|
2009
2009
|
};
|
|
2010
2010
|
row.getPinnedIndex = () => {
|
|
2011
|
-
var
|
|
2011
|
+
var _ref4, _visiblePinnedRowIds$;
|
|
2012
2012
|
const position = row.getIsPinned();
|
|
2013
2013
|
if (!position) return -1;
|
|
2014
|
-
const visiblePinnedRowIds = (
|
|
2014
|
+
const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {
|
|
2015
2015
|
let {
|
|
2016
2016
|
id
|
|
2017
|
-
} =
|
|
2017
|
+
} = _ref5;
|
|
2018
2018
|
return id;
|
|
2019
2019
|
});
|
|
2020
2020
|
return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;
|
|
@@ -2035,7 +2035,7 @@
|
|
|
2035
2035
|
}
|
|
2036
2036
|
return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);
|
|
2037
2037
|
};
|
|
2038
|
-
table._getPinnedRows =
|
|
2038
|
+
table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {
|
|
2039
2039
|
var _table$options$keepPi;
|
|
2040
2040
|
const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?
|
|
2041
2041
|
//get all rows that are pinned even if they would not be otherwise visible
|
|
@@ -2050,9 +2050,9 @@
|
|
|
2050
2050
|
...d,
|
|
2051
2051
|
position
|
|
2052
2052
|
}));
|
|
2053
|
-
}
|
|
2054
|
-
table.getTopRows = () => table._getPinnedRows('top');
|
|
2055
|
-
table.getBottomRows = () => table._getPinnedRows('bottom');
|
|
2053
|
+
};
|
|
2054
|
+
table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));
|
|
2055
|
+
table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));
|
|
2056
2056
|
table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {
|
|
2057
2057
|
const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);
|
|
2058
2058
|
return allRows.filter(d => !topAndBottom.has(d.id));
|
|
@@ -3263,6 +3263,10 @@
|
|
|
3263
3263
|
function getGroupedRowModel() {
|
|
3264
3264
|
return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {
|
|
3265
3265
|
if (!rowModel.rows.length || !grouping.length) {
|
|
3266
|
+
rowModel.rows.forEach(row => {
|
|
3267
|
+
row.depth = 0;
|
|
3268
|
+
row.parentId = undefined;
|
|
3269
|
+
});
|
|
3266
3270
|
return rowModel;
|
|
3267
3271
|
}
|
|
3268
3272
|
|
|
@@ -3298,7 +3302,7 @@
|
|
|
3298
3302
|
// Group the rows together for this level
|
|
3299
3303
|
const rowGroupsMap = groupBy(rows, columnId);
|
|
3300
3304
|
|
|
3301
|
-
//
|
|
3305
|
+
// Perform aggregations for each group
|
|
3302
3306
|
const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {
|
|
3303
3307
|
let [groupingValue, groupedRows] = _ref;
|
|
3304
3308
|
let id = `${columnId}:${groupingValue}`;
|
|
@@ -3306,6 +3310,9 @@
|
|
|
3306
3310
|
|
|
3307
3311
|
// First, Recurse to group sub rows before aggregation
|
|
3308
3312
|
const subRows = groupUpRecursively(groupedRows, depth + 1, id);
|
|
3313
|
+
subRows.forEach(subRow => {
|
|
3314
|
+
subRow.parentId = id;
|
|
3315
|
+
});
|
|
3309
3316
|
|
|
3310
3317
|
// Flatten the leaf rows of the rows in this group
|
|
3311
3318
|
const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;
|