@tanstack/table-core 8.8.0 → 8.8.2
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/core/row.d.ts +4 -2
- package/build/lib/core/row.js +14 -2
- package/build/lib/core/row.js.map +1 -1
- package/build/lib/features/RowSelection.js +3 -3
- package/build/lib/features/RowSelection.js.map +1 -1
- package/build/lib/index.esm.js +29 -17
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.mjs +29 -17
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/utils/filterRowsUtils.js +6 -6
- package/build/lib/utils/filterRowsUtils.js.map +1 -1
- package/build/lib/utils/getCoreRowModel.js +1 -1
- package/build/lib/utils/getCoreRowModel.js.map +1 -1
- package/build/lib/utils/getGroupedRowModel.js +5 -5
- package/build/lib/utils/getGroupedRowModel.js.map +1 -1
- package/build/umd/index.development.js +29 -17
- 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/core/row.ts +17 -3
- package/src/features/RowSelection.ts +3 -3
- package/src/utils/filterRowsUtils.ts +6 -14
- package/src/utils/getCoreRowModel.ts +1 -1
- package/src/utils/getGroupedRowModel.ts +4 -10
|
@@ -25,7 +25,7 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
|
|
|
25
25
|
const newFilteredFlatRows = [];
|
|
26
26
|
const newFilteredRowsById = {};
|
|
27
27
|
const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;
|
|
28
|
-
const recurseFilterRows = function (rowsToFilter, depth
|
|
28
|
+
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
29
29
|
if (depth === void 0) {
|
|
30
30
|
depth = 0;
|
|
31
31
|
}
|
|
@@ -35,10 +35,10 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
|
|
|
35
35
|
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
36
36
|
var _row$subRows;
|
|
37
37
|
let row$1 = rowsToFilter[i];
|
|
38
|
-
const newRow = row.createRow(table, row$1.id, row$1.original, row$1.index, row$1.depth, undefined,
|
|
38
|
+
const newRow = row.createRow(table, row$1.id, row$1.original, row$1.index, row$1.depth, undefined, row$1.parentId);
|
|
39
39
|
newRow.columnFilters = row$1.columnFilters;
|
|
40
40
|
if ((_row$subRows = row$1.subRows) != null && _row$subRows.length && depth < maxDepth) {
|
|
41
|
-
newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1
|
|
41
|
+
newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1);
|
|
42
42
|
row$1 = newRow;
|
|
43
43
|
if (filterRow(row$1) && !newRow.subRows.length) {
|
|
44
44
|
rows.push(row$1);
|
|
@@ -76,7 +76,7 @@ function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
|
|
|
76
76
|
const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;
|
|
77
77
|
|
|
78
78
|
// Filters top level and nested rows
|
|
79
|
-
const recurseFilterRows = function (rowsToFilter, depth
|
|
79
|
+
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
80
80
|
if (depth === void 0) {
|
|
81
81
|
depth = 0;
|
|
82
82
|
}
|
|
@@ -91,8 +91,8 @@ function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
|
|
|
91
91
|
if (pass) {
|
|
92
92
|
var _row$subRows2;
|
|
93
93
|
if ((_row$subRows2 = row$1.subRows) != null && _row$subRows2.length && depth < maxDepth) {
|
|
94
|
-
const newRow = row.createRow(table, row$1.id, row$1.original, row$1.index, row$1.depth, undefined,
|
|
95
|
-
newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1
|
|
94
|
+
const newRow = row.createRow(table, row$1.id, row$1.original, row$1.index, row$1.depth, undefined, row$1.parentId);
|
|
95
|
+
newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1);
|
|
96
96
|
row$1 = newRow;
|
|
97
97
|
}
|
|
98
98
|
rows.push(row$1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Row, RowModel, Table, RowData } from '../types'\n\nexport function filterRows<TData extends RowData>(\n rows: Row<TData>[],\n filterRowImpl: (row: Row<TData>) => any,\n table: Table<TData>\n) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, table)\n}\n\nexport function filterRowModelFromLeafs<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => Row<TData>[],\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n const maxDepth = table.options.maxLeafRowFilterDepth ?? 100\n\n const recurseFilterRows = (
|
|
1
|
+
{"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Row, RowModel, Table, RowData } from '../types'\n\nexport function filterRows<TData extends RowData>(\n rows: Row<TData>[],\n filterRowImpl: (row: Row<TData>) => any,\n table: Table<TData>\n) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, table)\n}\n\nexport function filterRowModelFromLeafs<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => Row<TData>[],\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n const maxDepth = table.options.maxLeafRowFilterDepth ?? 100\n\n const recurseFilterRows = (rowsToFilter: Row<TData>[], depth = 0) => {\n const rows: Row<TData>[] = []\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n const newRow = createRow(\n table,\n row.id,\n row.original,\n row.index,\n row.depth,\n undefined,\n row.parentId\n )\n newRow.columnFilters = row.columnFilters\n\n if (row.subRows?.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n row = newRow\n\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n continue\n }\n\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n continue\n }\n } else {\n row = newRow\n if (filterRow(row)) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n }\n }\n }\n\n return rows\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n\nexport function filterRowModelFromRoot<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => any,\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n const maxDepth = table.options.maxLeafRowFilterDepth ?? 100\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TData>[], depth = 0) => {\n // Filter from parents downward first\n\n const rows: Row<TData>[] = []\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n const pass = filterRow(row)\n\n if (pass) {\n if (row.subRows?.length && depth < maxDepth) {\n const newRow = createRow(\n table,\n row.id,\n row.original,\n row.index,\n row.depth,\n undefined,\n row.parentId\n )\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n row = newRow\n }\n\n rows.push(row)\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n }\n }\n\n return rows\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["filterRows","rows","filterRowImpl","table","options","filterFromLeafRows","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","_table$options$maxLea","newFilteredFlatRows","newFilteredRowsById","maxDepth","maxLeafRowFilterDepth","recurseFilterRows","depth","i","length","_row$subRows","row","newRow","createRow","id","original","index","undefined","parentId","columnFilters","subRows","push","flatRows","rowsById","_table$options$maxLea2","pass","_row$subRows2"],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ function getCoreRowModel() {
|
|
|
36
36
|
// }
|
|
37
37
|
|
|
38
38
|
// Make the row
|
|
39
|
-
const row$1 = row.createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow);
|
|
39
|
+
const row$1 = row.createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);
|
|
40
40
|
|
|
41
41
|
// Keep track of every row in a flat array
|
|
42
42
|
rowModel.flatRows.push(row$1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.options.data],\n (\n data\n ): {\n rows: Row<TData>[]\n flatRows: Row<TData>[]\n rowsById: Record<string, Row<TData>>\n } => {\n const rowModel: RowModel<TData> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n const accessRows = (\n originalRows: TData[],\n depth = 0,\n parentRow?: Row<TData>\n ): Row<TData>[] => {\n const rows = [] as Row<TData>[]\n\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(\n table,\n table._getRowId(originalRows[i]!, i, parentRow),\n originalRows[i]!,\n i,\n depth,\n undefined,\n parentRow\n )\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row\n // Push table row into parent\n rows.push(row)\n\n // Get the original subrows\n if (table.options.getSubRows) {\n row.originalSubRows = table.options.getSubRows(\n originalRows[i]!,\n i\n )\n\n // Then recursively access them\n if (row.originalSubRows?.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n\n return rows\n }\n\n rowModel.rows = accessRows(data)\n\n return rowModel\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {\n table._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","table","memo","options","data","rowModel","rows","flatRows","rowsById","accessRows","originalRows","depth","parentRow","i","length","row","createRow","_getRowId","undefined","
|
|
1
|
+
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.options.data],\n (\n data\n ): {\n rows: Row<TData>[]\n flatRows: Row<TData>[]\n rowsById: Record<string, Row<TData>>\n } => {\n const rowModel: RowModel<TData> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n const accessRows = (\n originalRows: TData[],\n depth = 0,\n parentRow?: Row<TData>\n ): Row<TData>[] => {\n const rows = [] as Row<TData>[]\n\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(\n table,\n table._getRowId(originalRows[i]!, i, parentRow),\n originalRows[i]!,\n i,\n depth,\n undefined,\n parentRow?.id\n )\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row\n // Push table row into parent\n rows.push(row)\n\n // Get the original subrows\n if (table.options.getSubRows) {\n row.originalSubRows = table.options.getSubRows(\n originalRows[i]!,\n i\n )\n\n // Then recursively access them\n if (row.originalSubRows?.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n\n return rows\n }\n\n rowModel.rows = accessRows(data)\n\n return rowModel\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {\n table._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","table","memo","options","data","rowModel","rows","flatRows","rowsById","accessRows","originalRows","depth","parentRow","i","length","row","createRow","_getRowId","undefined","id","push","getSubRows","_row$originalSubRows","originalSubRows","subRows","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":";;;;;;;;;;;;;;;;;AAIO,SAASA,eAAeA,GAEJ;AACzB,EAAA,OAAOC,KAAK,IACVC,UAAI,CACF,MAAM,CAACD,KAAK,CAACE,OAAO,CAACC,IAAI,CAAC,EAExBA,IAAI,IAKD;AACH,IAAA,MAAMC,QAAyB,GAAG;AAChCC,MAAAA,IAAI,EAAE,EAAE;AACRC,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,QAAQ,EAAE,EAAC;KACZ,CAAA;IAED,MAAMC,UAAU,GAAG,UACjBC,YAAqB,EACrBC,KAAK,EACLC,SAAsB,EACL;AAAA,MAAA,IAFjBD,KAAK,KAAA,KAAA,CAAA,EAAA;AAALA,QAAAA,KAAK,GAAG,CAAC,CAAA;AAAA,OAAA;MAGT,MAAML,IAAI,GAAG,EAAkB,CAAA;AAE/B,MAAA,KAAK,IAAIO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,YAAY,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAA,MAAME,KAAG,GAAGC,aAAS,CACnBf,KAAK,EACLA,KAAK,CAACgB,SAAS,CAACP,YAAY,CAACG,CAAC,CAAC,EAAGA,CAAC,EAAED,SAAS,CAAC,EAC/CF,YAAY,CAACG,CAAC,CAAC,EACfA,CAAC,EACDF,KAAK,EACLO,SAAS,EACTN,SAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAATA,SAAS,CAAEO,EAAE,CACd,CAAA;;AAED;AACAd,QAAAA,QAAQ,CAACE,QAAQ,CAACa,IAAI,CAACL,KAAG,CAAC,CAAA;AAC3B;QACAV,QAAQ,CAACG,QAAQ,CAACO,KAAG,CAACI,EAAE,CAAC,GAAGJ,KAAG,CAAA;AAC/B;AACAT,QAAAA,IAAI,CAACc,IAAI,CAACL,KAAG,CAAC,CAAA;;AAEd;AACA,QAAA,IAAId,KAAK,CAACE,OAAO,CAACkB,UAAU,EAAE;AAAA,UAAA,IAAAC,oBAAA,CAAA;AAC5BP,UAAAA,KAAG,CAACQ,eAAe,GAAGtB,KAAK,CAACE,OAAO,CAACkB,UAAU,CAC5CX,YAAY,CAACG,CAAC,CAAC,EACfA,CAAC,CACF,CAAA;;AAED;UACA,IAAAS,CAAAA,oBAAA,GAAIP,KAAG,CAACQ,eAAe,KAAnBD,IAAAA,IAAAA,oBAAA,CAAqBR,MAAM,EAAE;AAC/BC,YAAAA,KAAG,CAACS,OAAO,GAAGf,UAAU,CAACM,KAAG,CAACQ,eAAe,EAAEZ,KAAK,GAAG,CAAC,EAAEI,KAAG,CAAC,CAAA;AAC/D,WAAA;AACF,SAAA;AACF,OAAA;AAEA,MAAA,OAAOT,IAAI,CAAA;KACZ,CAAA;AAEDD,IAAAA,QAAQ,CAACC,IAAI,GAAGG,UAAU,CAACL,IAAI,CAAC,CAAA;AAEhC,IAAA,OAAOC,QAAQ,CAAA;AACjB,GAAC,EACD;IACEoB,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,aAAa;AAC5DC,IAAAA,KAAK,EAAEA,MAAA;AAAA,MAAA,IAAAC,qBAAA,CAAA;AAAA,MAAA,OAAA,CAAAA,qBAAA,GAAM7B,KAAK,CAACE,OAAO,CAAC4B,QAAQ,KAAAD,IAAAA,GAAAA,qBAAA,GAAI7B,KAAK,CAACE,OAAO,CAAC6B,UAAU,CAAA;AAAA,KAAA;IAC/DC,QAAQ,EAAEA,MAAM;MACdhC,KAAK,CAACiC,mBAAmB,EAAE,CAAA;AAC7B,KAAA;AACF,GAAC,CACF,CAAA;AACL;;;;"}
|
|
@@ -31,7 +31,7 @@ function getGroupedRowModel() {
|
|
|
31
31
|
// const nonGroupedRowsById: Record<RowId, Row> = {};
|
|
32
32
|
|
|
33
33
|
// Recursively group the data
|
|
34
|
-
const groupUpRecursively = function (rows, depth,
|
|
34
|
+
const groupUpRecursively = function (rows, depth, parentId) {
|
|
35
35
|
if (depth === void 0) {
|
|
36
36
|
depth = 0;
|
|
37
37
|
}
|
|
@@ -43,7 +43,7 @@ function getGroupedRowModel() {
|
|
|
43
43
|
groupedFlatRows.push(row);
|
|
44
44
|
groupedRowsById[row.id] = row;
|
|
45
45
|
if (row.subRows) {
|
|
46
|
-
row.subRows = groupUpRecursively(row.subRows, depth + 1, row);
|
|
46
|
+
row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);
|
|
47
47
|
}
|
|
48
48
|
return row;
|
|
49
49
|
});
|
|
@@ -60,11 +60,11 @@ function getGroupedRowModel() {
|
|
|
60
60
|
id = parentId ? `${parentId}>${id}` : id;
|
|
61
61
|
|
|
62
62
|
// First, Recurse to group sub rows before aggregation
|
|
63
|
-
const subRows = groupUpRecursively(groupedRows, depth + 1,
|
|
63
|
+
const subRows = groupUpRecursively(groupedRows, depth + 1, id);
|
|
64
64
|
|
|
65
65
|
// Flatten the leaf rows of the rows in this group
|
|
66
66
|
const leafRows = depth ? utils.flattenBy(groupedRows, row => row.subRows) : groupedRows;
|
|
67
|
-
const row$1 = row.createRow(table, id, leafRows[0].original, index, depth, undefined,
|
|
67
|
+
const row$1 = row.createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);
|
|
68
68
|
Object.assign(row$1, {
|
|
69
69
|
groupingColumnId: columnId,
|
|
70
70
|
groupingValue,
|
|
@@ -111,7 +111,7 @@ function getGroupedRowModel() {
|
|
|
111
111
|
});
|
|
112
112
|
return aggregatedGroupedRows;
|
|
113
113
|
};
|
|
114
|
-
const groupedRows = groupUpRecursively(rowModel.rows, 0
|
|
114
|
+
const groupedRows = groupUpRecursively(rowModel.rows, 0);
|
|
115
115
|
groupedRows.forEach(subRow => {
|
|
116
116
|
groupedFlatRows.push(subRow);
|
|
117
117
|
groupedRowsById[subRow.id] = subRow;
|
|
@@ -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, 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 parentRow?: Row<TData>,\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)\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(\n groupedRows,\n depth + 1,\n parentRow,\n 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 parentRow\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, undefined, '')\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 {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {\n table._queue(() => {\n table._autoResetExpanded()\n table._autoResetPageIndex()\n })\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.getValue(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","parentRow","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","key","process","env","NODE_ENV","debug","_table$options$debugA","options","debugAll","debugTable","onChange","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","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 { Table, Row, RowModel, RowData } from '../types'\nimport { flattenBy, 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 {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {\n table._queue(() => {\n table._autoResetExpanded()\n table._autoResetPageIndex()\n })\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.getValue(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","key","process","env","NODE_ENV","debug","_table$options$debugA","options","debugAll","debugTable","onChange","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","previous","get","set"],"mappings":"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"}
|
|
@@ -2000,12 +2000,12 @@
|
|
|
2000
2000
|
return isAllRowsSelected;
|
|
2001
2001
|
},
|
|
2002
2002
|
getIsAllPageRowsSelected: () => {
|
|
2003
|
-
const paginationFlatRows = table.getPaginationRowModel().flatRows;
|
|
2003
|
+
const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());
|
|
2004
2004
|
const {
|
|
2005
2005
|
rowSelection
|
|
2006
2006
|
} = table.getState();
|
|
2007
2007
|
let isAllPageRowsSelected = !!paginationFlatRows.length;
|
|
2008
|
-
if (isAllPageRowsSelected && paginationFlatRows.some(row =>
|
|
2008
|
+
if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {
|
|
2009
2009
|
isAllPageRowsSelected = false;
|
|
2010
2010
|
}
|
|
2011
2011
|
return isAllPageRowsSelected;
|
|
@@ -2017,7 +2017,7 @@
|
|
|
2017
2017
|
},
|
|
2018
2018
|
getIsSomePageRowsSelected: () => {
|
|
2019
2019
|
const paginationFlatRows = table.getPaginationRowModel().flatRows;
|
|
2020
|
-
return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.some(d => d.getIsSelected() || d.getIsSomeSelected());
|
|
2020
|
+
return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());
|
|
2021
2021
|
},
|
|
2022
2022
|
getToggleAllRowsSelectedHandler: () => {
|
|
2023
2023
|
return e => {
|
|
@@ -2823,13 +2823,13 @@
|
|
|
2823
2823
|
return cell;
|
|
2824
2824
|
}
|
|
2825
2825
|
|
|
2826
|
-
const createRow = (table, id, original, rowIndex, depth, subRows,
|
|
2826
|
+
const createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {
|
|
2827
2827
|
let row = {
|
|
2828
2828
|
id,
|
|
2829
2829
|
index: rowIndex,
|
|
2830
2830
|
original,
|
|
2831
2831
|
depth,
|
|
2832
|
-
|
|
2832
|
+
parentId,
|
|
2833
2833
|
_valuesCache: {},
|
|
2834
2834
|
_uniqueValuesCache: {},
|
|
2835
2835
|
getValue: columnId => {
|
|
@@ -2864,6 +2864,18 @@
|
|
|
2864
2864
|
},
|
|
2865
2865
|
subRows: subRows != null ? subRows : [],
|
|
2866
2866
|
getLeafRows: () => flattenBy(row.subRows, d => d.subRows),
|
|
2867
|
+
getParentRow: () => row.parentId ? table.getRow(row.parentId) : undefined,
|
|
2868
|
+
getParentRows: () => {
|
|
2869
|
+
let parentRows = [];
|
|
2870
|
+
let currentRow = row;
|
|
2871
|
+
while (true) {
|
|
2872
|
+
const parentRow = currentRow.getParentRow();
|
|
2873
|
+
if (!parentRow) break;
|
|
2874
|
+
parentRows.push(parentRow);
|
|
2875
|
+
currentRow = parentRow;
|
|
2876
|
+
}
|
|
2877
|
+
return parentRows.reverse();
|
|
2878
|
+
},
|
|
2867
2879
|
getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {
|
|
2868
2880
|
return leafColumns.map(column => {
|
|
2869
2881
|
return createCell(table, row, column, column.id);
|
|
@@ -2973,7 +2985,7 @@
|
|
|
2973
2985
|
// }
|
|
2974
2986
|
|
|
2975
2987
|
// Make the row
|
|
2976
|
-
const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow);
|
|
2988
|
+
const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);
|
|
2977
2989
|
|
|
2978
2990
|
// Keep track of every row in a flat array
|
|
2979
2991
|
rowModel.flatRows.push(row);
|
|
@@ -3020,7 +3032,7 @@
|
|
|
3020
3032
|
const newFilteredFlatRows = [];
|
|
3021
3033
|
const newFilteredRowsById = {};
|
|
3022
3034
|
const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;
|
|
3023
|
-
const recurseFilterRows = function (rowsToFilter, depth
|
|
3035
|
+
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
3024
3036
|
if (depth === void 0) {
|
|
3025
3037
|
depth = 0;
|
|
3026
3038
|
}
|
|
@@ -3030,10 +3042,10 @@
|
|
|
3030
3042
|
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
3031
3043
|
var _row$subRows;
|
|
3032
3044
|
let row = rowsToFilter[i];
|
|
3033
|
-
const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined,
|
|
3045
|
+
const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);
|
|
3034
3046
|
newRow.columnFilters = row.columnFilters;
|
|
3035
3047
|
if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {
|
|
3036
|
-
newRow.subRows = recurseFilterRows(row.subRows, depth + 1
|
|
3048
|
+
newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
3037
3049
|
row = newRow;
|
|
3038
3050
|
if (filterRow(row) && !newRow.subRows.length) {
|
|
3039
3051
|
rows.push(row);
|
|
@@ -3071,7 +3083,7 @@
|
|
|
3071
3083
|
const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;
|
|
3072
3084
|
|
|
3073
3085
|
// Filters top level and nested rows
|
|
3074
|
-
const recurseFilterRows = function (rowsToFilter, depth
|
|
3086
|
+
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
3075
3087
|
if (depth === void 0) {
|
|
3076
3088
|
depth = 0;
|
|
3077
3089
|
}
|
|
@@ -3086,8 +3098,8 @@
|
|
|
3086
3098
|
if (pass) {
|
|
3087
3099
|
var _row$subRows2;
|
|
3088
3100
|
if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {
|
|
3089
|
-
const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined,
|
|
3090
|
-
newRow.subRows = recurseFilterRows(row.subRows, depth + 1
|
|
3101
|
+
const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);
|
|
3102
|
+
newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
3091
3103
|
row = newRow;
|
|
3092
3104
|
}
|
|
3093
3105
|
rows.push(row);
|
|
@@ -3398,7 +3410,7 @@
|
|
|
3398
3410
|
// const nonGroupedRowsById: Record<RowId, Row> = {};
|
|
3399
3411
|
|
|
3400
3412
|
// Recursively group the data
|
|
3401
|
-
const groupUpRecursively = function (rows, depth,
|
|
3413
|
+
const groupUpRecursively = function (rows, depth, parentId) {
|
|
3402
3414
|
if (depth === void 0) {
|
|
3403
3415
|
depth = 0;
|
|
3404
3416
|
}
|
|
@@ -3410,7 +3422,7 @@
|
|
|
3410
3422
|
groupedFlatRows.push(row);
|
|
3411
3423
|
groupedRowsById[row.id] = row;
|
|
3412
3424
|
if (row.subRows) {
|
|
3413
|
-
row.subRows = groupUpRecursively(row.subRows, depth + 1, row);
|
|
3425
|
+
row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);
|
|
3414
3426
|
}
|
|
3415
3427
|
return row;
|
|
3416
3428
|
});
|
|
@@ -3427,11 +3439,11 @@
|
|
|
3427
3439
|
id = parentId ? `${parentId}>${id}` : id;
|
|
3428
3440
|
|
|
3429
3441
|
// First, Recurse to group sub rows before aggregation
|
|
3430
|
-
const subRows = groupUpRecursively(groupedRows, depth + 1,
|
|
3442
|
+
const subRows = groupUpRecursively(groupedRows, depth + 1, id);
|
|
3431
3443
|
|
|
3432
3444
|
// Flatten the leaf rows of the rows in this group
|
|
3433
3445
|
const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;
|
|
3434
|
-
const row = createRow(table, id, leafRows[0].original, index, depth, undefined,
|
|
3446
|
+
const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);
|
|
3435
3447
|
Object.assign(row, {
|
|
3436
3448
|
groupingColumnId: columnId,
|
|
3437
3449
|
groupingValue,
|
|
@@ -3478,7 +3490,7 @@
|
|
|
3478
3490
|
});
|
|
3479
3491
|
return aggregatedGroupedRows;
|
|
3480
3492
|
};
|
|
3481
|
-
const groupedRows = groupUpRecursively(rowModel.rows, 0
|
|
3493
|
+
const groupedRows = groupUpRecursively(rowModel.rows, 0);
|
|
3482
3494
|
groupedRows.forEach(subRow => {
|
|
3483
3495
|
groupedFlatRows.push(subRow);
|
|
3484
3496
|
groupedRowsById[subRow.id] = subRow;
|