@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.
@@ -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, parentRow) {
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, parentRow);
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, newRow);
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, parentRow) {
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, parentRow);
95
- newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1, newRow);
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 = (\n rowsToFilter: Row<TData>[],\n depth = 0,\n parentRow?: Row<TData>\n ) => {\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 parentRow\n )\n newRow.columnFilters = row.columnFilters\n\n if (row.subRows?.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1, newRow)\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 = (\n rowsToFilter: Row<TData>[],\n depth = 0,\n parentRow?: Row<TData>\n ) => {\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 parentRow\n )\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1, newRow)\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","parentRow","i","length","_row$subRows","row","newRow","createRow","id","original","index","undefined","columnFilters","subRows","push","flatRows","rowsById","_table$options$maxLea2","pass","_row$subRows2"],"mappings":"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"}
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","push","id","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,CACV,CAAA;;AAED;AACAP,QAAAA,QAAQ,CAACE,QAAQ,CAACY,IAAI,CAACJ,KAAG,CAAC,CAAA;AAC3B;QACAV,QAAQ,CAACG,QAAQ,CAACO,KAAG,CAACK,EAAE,CAAC,GAAGL,KAAG,CAAA;AAC/B;AACAT,QAAAA,IAAI,CAACa,IAAI,CAACJ,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;;;;"}
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, parentRow, parentId) {
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, parentRow, id);
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, parentRow);
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, undefined, '');
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 => row.getCanSelect() && !rowSelection[row.id])) {
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, parentRow) => {
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
- parentRow,
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, parentRow) {
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, parentRow);
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, newRow);
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, parentRow) {
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, parentRow);
3090
- newRow.subRows = recurseFilterRows(row.subRows, depth + 1, newRow);
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, parentRow, parentId) {
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, parentRow, id);
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, parentRow);
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, undefined, '');
3493
+ const groupedRows = groupUpRecursively(rowModel.rows, 0);
3482
3494
  groupedRows.forEach(subRow => {
3483
3495
  groupedFlatRows.push(subRow);
3484
3496
  groupedRowsById[subRow.id] = subRow;