@tanstack/table-core 8.0.0-alpha.83 → 8.0.0-alpha.84

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.
Files changed (93) hide show
  1. package/build/cjs/core/cell.js +38 -0
  2. package/build/cjs/core/cell.js.map +1 -0
  3. package/build/cjs/core/column.js +88 -0
  4. package/build/cjs/core/column.js.map +1 -0
  5. package/build/cjs/{features/Headers.js → core/headers.js} +54 -66
  6. package/build/cjs/core/headers.js.map +1 -0
  7. package/build/cjs/core/instance.js +255 -0
  8. package/build/cjs/core/instance.js.map +1 -0
  9. package/build/cjs/core/row.js +77 -0
  10. package/build/cjs/core/row.js.map +1 -0
  11. package/build/cjs/features/ColumnSizing.js.map +1 -1
  12. package/build/cjs/features/Expanding.js.map +1 -1
  13. package/build/cjs/features/Filters.js +1 -1
  14. package/build/cjs/features/Filters.js.map +1 -1
  15. package/build/cjs/features/Grouping.js.map +1 -1
  16. package/build/cjs/features/Ordering.js.map +1 -1
  17. package/build/cjs/features/Pagination.js.map +1 -1
  18. package/build/cjs/features/Pinning.js +3 -3
  19. package/build/cjs/features/Pinning.js.map +1 -1
  20. package/build/cjs/features/RowSelection.js.map +1 -1
  21. package/build/cjs/features/Sorting.js.map +1 -1
  22. package/build/cjs/features/Visibility.js.map +1 -1
  23. package/build/cjs/index.js +9 -5
  24. package/build/cjs/index.js.map +1 -1
  25. package/build/cjs/utils/filterRowsUtils.js +23 -21
  26. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  27. package/build/cjs/utils/getCoreRowModel.js +9 -8
  28. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  29. package/build/cjs/utils/getGroupedRowModel.js +12 -11
  30. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  31. package/build/esm/index.js +656 -761
  32. package/build/esm/index.js.map +1 -1
  33. package/build/stats-html.html +1 -1
  34. package/build/stats-react.json +391 -368
  35. package/build/types/core/cell.d.ts +9 -0
  36. package/build/types/{features/Columns.d.ts → core/column.d.ts} +3 -17
  37. package/build/types/{features/Headers.d.ts → core/headers.d.ts} +26 -11
  38. package/build/types/core/instance.d.ts +57 -0
  39. package/build/types/core/row.d.ts +15 -0
  40. package/build/types/features/ColumnSizing.d.ts +2 -1
  41. package/build/types/features/Expanding.d.ts +2 -1
  42. package/build/types/features/Filters.d.ts +2 -1
  43. package/build/types/features/Grouping.d.ts +2 -1
  44. package/build/types/features/Ordering.d.ts +2 -1
  45. package/build/types/features/Pagination.d.ts +2 -1
  46. package/build/types/features/Pinning.d.ts +2 -1
  47. package/build/types/features/RowSelection.d.ts +2 -1
  48. package/build/types/features/Sorting.d.ts +2 -1
  49. package/build/types/features/Visibility.d.ts +2 -1
  50. package/build/types/index.d.ts +4 -2
  51. package/build/types/sortingFns.d.ts +4 -4
  52. package/build/types/types.d.ts +10 -53
  53. package/build/umd/index.development.js +660 -759
  54. package/build/umd/index.development.js.map +1 -1
  55. package/build/umd/index.production.js +1 -1
  56. package/build/umd/index.production.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/core/cell.ts +47 -0
  59. package/src/core/column.ts +148 -0
  60. package/src/{features/Headers.ts → core/headers.ts} +98 -99
  61. package/src/core/instance.ts +361 -0
  62. package/src/core/row.ts +85 -0
  63. package/src/features/ColumnSizing.ts +1 -1
  64. package/src/features/Expanding.ts +1 -2
  65. package/src/features/Filters.ts +2 -2
  66. package/src/features/Grouping.ts +1 -1
  67. package/src/features/Ordering.ts +1 -1
  68. package/src/features/Pagination.ts +1 -1
  69. package/src/features/Pinning.ts +8 -4
  70. package/src/features/RowSelection.ts +1 -1
  71. package/src/features/Sorting.ts +1 -1
  72. package/src/features/Visibility.ts +1 -1
  73. package/src/index.ts +4 -8
  74. package/src/types.ts +9 -61
  75. package/src/utils/filterRowsUtils.ts +4 -2
  76. package/src/utils/getCoreRowModel.ts +4 -2
  77. package/src/utils/getGroupedRowModel.ts +6 -6
  78. package/build/cjs/core.js +0 -168
  79. package/build/cjs/core.js.map +0 -1
  80. package/build/cjs/features/Cells.js +0 -101
  81. package/build/cjs/features/Cells.js.map +0 -1
  82. package/build/cjs/features/Columns.js +0 -191
  83. package/build/cjs/features/Columns.js.map +0 -1
  84. package/build/cjs/features/Headers.js.map +0 -1
  85. package/build/cjs/features/Rows.js +0 -94
  86. package/build/cjs/features/Rows.js.map +0 -1
  87. package/build/types/core.d.ts +0 -30
  88. package/build/types/features/Cells.d.ts +0 -13
  89. package/build/types/features/Rows.d.ts +0 -28
  90. package/src/core.ts +0 -246
  91. package/src/features/Cells.ts +0 -128
  92. package/src/features/Columns.ts +0 -293
  93. package/src/features/Rows.ts +0 -142
@@ -12,13 +12,15 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var core = require('./core.js');
15
+ var instance = require('./core/instance.js');
16
16
  var createTable = require('./createTable.js');
17
+ var column = require('./core/column.js');
18
+ var headers = require('./core/headers.js');
19
+ var row = require('./core/row.js');
17
20
  var ColumnSizing = require('./features/ColumnSizing.js');
18
21
  var Expanding = require('./features/Expanding.js');
19
22
  var Filters = require('./features/Filters.js');
20
23
  var Grouping = require('./features/Grouping.js');
21
- var Headers = require('./features/Headers.js');
22
24
  var Ordering = require('./features/Ordering.js');
23
25
  var Pagination = require('./features/Pagination.js');
24
26
  var Pinning = require('./features/Pinning.js');
@@ -41,8 +43,12 @@ var getPaginationRowModel = require('./utils/getPaginationRowModel.js');
41
43
 
42
44
 
43
45
 
44
- exports.createTableInstance = core.createTableInstance;
46
+ exports.createTableInstance = instance.createTableInstance;
45
47
  exports.createTableFactory = createTable.createTableFactory;
48
+ exports.createColumn = column.createColumn;
49
+ exports.Headers = headers.Headers;
50
+ exports.buildHeaderGroups = headers.buildHeaderGroups;
51
+ exports.createRow = row.createRow;
46
52
  exports.ColumnSizing = ColumnSizing.ColumnSizing;
47
53
  exports.defaultColumnSizing = ColumnSizing.defaultColumnSizing;
48
54
  exports.passiveEventSupported = ColumnSizing.passiveEventSupported;
@@ -51,8 +57,6 @@ exports.Filters = Filters.Filters;
51
57
  exports.shouldAutoRemoveFilter = Filters.shouldAutoRemoveFilter;
52
58
  exports.Grouping = Grouping.Grouping;
53
59
  exports.orderColumns = Grouping.orderColumns;
54
- exports.Headers = Headers.Headers;
55
- exports.buildHeaderGroups = Headers.buildHeaderGroups;
56
60
  exports.Ordering = Ordering.Ordering;
57
61
  exports.Pagination = Pagination.Pagination;
58
62
  exports.Pinning = Pinning.Pinning;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -12,6 +12,8 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
+ var row = require('../core/row.js');
16
+
15
17
  function filterRows(rows, filterRowImpl, instance) {
16
18
  if (instance.options.filterFromLeafRows) {
17
19
  return filterRowModelFromLeafs(rows, filterRowImpl, instance);
@@ -22,7 +24,7 @@ function filterRows(rows, filterRowImpl, instance) {
22
24
  function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
23
25
  const newFilteredFlatRows = [];
24
26
  const newFilteredRowsById = {};
25
- let row;
27
+ let row$1;
26
28
  let newRow;
27
29
 
28
30
  const recurseFilterRows = function (rowsToFilter, depth) {
@@ -35,24 +37,24 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
35
37
  for (let i = 0; i < rowsToFilter.length; i++) {
36
38
  var _row$subRows;
37
39
 
38
- row = rowsToFilter[i];
40
+ row$1 = rowsToFilter[i];
39
41
 
40
- if ((_row$subRows = row.subRows) != null && _row$subRows.length) {
41
- newRow = instance.createRow(row.id, row.original, row.index, row.depth);
42
- newRow.columnFilters = row.columnFilters;
43
- newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
42
+ if ((_row$subRows = row$1.subRows) != null && _row$subRows.length) {
43
+ newRow = row.createRow(instance, row$1.id, row$1.original, row$1.index, row$1.depth);
44
+ newRow.columnFilters = row$1.columnFilters;
45
+ newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1);
44
46
 
45
47
  if (!newRow.subRows.length) {
46
48
  continue;
47
49
  }
48
50
 
49
- row = newRow;
51
+ row$1 = newRow;
50
52
  }
51
53
 
52
- if (filterRow(row)) {
53
- rows.push(row);
54
- newFilteredRowsById[row.id] = row;
55
- newFilteredRowsById[i] = row;
54
+ if (filterRow(row$1)) {
55
+ rows.push(row$1);
56
+ newFilteredRowsById[row$1.id] = row$1;
57
+ newFilteredRowsById[i] = row$1;
56
58
  }
57
59
  }
58
60
 
@@ -69,7 +71,7 @@ function filterRowModelFromRoot(rowsToFilter, filterRow, instance) {
69
71
  const newFilteredFlatRows = [];
70
72
  const newFilteredRowsById = {};
71
73
  let rows;
72
- let row;
74
+ let row$1;
73
75
  let newRow; // Filters top level and nested rows
74
76
 
75
77
  const recurseFilterRows = function (rowsToFilter, depth) {
@@ -81,21 +83,21 @@ function filterRowModelFromRoot(rowsToFilter, filterRow, instance) {
81
83
  rows = []; // Apply the filter to any subRows
82
84
 
83
85
  for (let i = 0; i < rowsToFilter.length; i++) {
84
- row = rowsToFilter[i];
85
- const pass = filterRow(row);
86
+ row$1 = rowsToFilter[i];
87
+ const pass = filterRow(row$1);
86
88
 
87
89
  if (pass) {
88
90
  var _row$subRows2;
89
91
 
90
- if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
91
- newRow = instance.createRow(row.id, row.original, row.index, row.depth);
92
- newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
93
- row = newRow;
92
+ if ((_row$subRows2 = row$1.subRows) != null && _row$subRows2.length) {
93
+ newRow = row.createRow(instance, row$1.id, row$1.original, row$1.index, row$1.depth);
94
+ newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1);
95
+ row$1 = newRow;
94
96
  }
95
97
 
96
- rows.push(row);
97
- newFilteredFlatRows.push(row);
98
- newFilteredRowsById[row.id] = row;
98
+ rows.push(row$1);
99
+ newFilteredFlatRows.push(row$1);
100
+ newFilteredRowsById[row$1.id] = row$1;
99
101
  }
100
102
  }
101
103
 
@@ -1 +1 @@
1
- {"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { TableGenerics, Row, RowModel, TableInstance } from '../types'\n\nexport function filterRows<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n filterRowImpl: (row: Row<TGenerics>) => any,\n instance: TableInstance<TGenerics>\n) {\n if (instance.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, instance)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, instance)\n}\n\nexport function filterRowModelFromLeafs<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRow: (row: Row<TGenerics>) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n let row\n let newRow\n\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n const rows: Row<TGenerics>[] = []\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n row = rowsToFilter[i]!\n\n if (row.subRows?.length) {\n newRow = instance.createRow(row.id, row.original, row.index, row.depth)\n newRow.columnFilters = row.columnFilters\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n if (!newRow.subRows.length) {\n continue\n }\n row = newRow\n }\n\n if (filterRow(row)) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\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<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRow: (row: Row<TGenerics>) => any,\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n let rows\n let row\n let newRow\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n // Filter from parents downward first\n\n rows = []\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n row = rowsToFilter[i]!\n\n const pass = filterRow(row)\n\n if (pass) {\n if (row.subRows?.length) {\n newRow = instance.createRow(\n row.id,\n row.original,\n row.index,\n row.depth\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","instance","options","filterFromLeafRows","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","row","newRow","recurseFilterRows","depth","i","length","subRows","createRow","id","original","index","columnFilters","push","flatRows","rowsById","pass"],"mappings":";;;;;;;;;;;;;;AAEO,SAASA,UAAT,CACLC,IADK,EAELC,aAFK,EAGLC,QAHK,EAIL;AACA,EAAA,IAAIA,QAAQ,CAACC,OAAT,CAAiBC,kBAArB,EAAyC;AACvC,IAAA,OAAOC,uBAAuB,CAACL,IAAD,EAAOC,aAAP,EAAsBC,QAAtB,CAA9B,CAAA;AACD,GAAA;;AAED,EAAA,OAAOI,sBAAsB,CAACN,IAAD,EAAOC,aAAP,EAAsBC,QAAtB,CAA7B,CAAA;AACD,CAAA;AAEM,SAASG,uBAAT,CACLE,YADK,EAELC,SAFK,EAGLN,QAHK,EAIgB;AACrB,EAAMO,MAAAA,mBAAqC,GAAG,EAA9C,CAAA;AACA,EAAMC,MAAAA,mBAAmD,GAAG,EAA5D,CAAA;AAEA,EAAA,IAAIC,GAAJ,CAAA;AACA,EAAA,IAAIC,MAAJ,CAAA;;AAEA,EAAA,MAAMC,iBAAiB,GAAG,UAACN,YAAD,EAAiCO,KAAjC,EAA+C;AAAA,IAAA,IAAdA,KAAc,KAAA,KAAA,CAAA,EAAA;AAAdA,MAAAA,KAAc,GAAN,CAAM,CAAA;AAAA,KAAA;;AACvE,IAAA,MAAMd,IAAsB,GAAG,EAA/B,CADuE;;AAIvE,IAAA,KAAK,IAAIe,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGR,YAAY,CAACS,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAAA,MAAA,IAAA,YAAA,CAAA;;AAC5CJ,MAAAA,GAAG,GAAGJ,YAAY,CAACQ,CAAD,CAAlB,CAAA;;AAEA,MAAA,IAAA,CAAA,YAAA,GAAIJ,GAAG,CAACM,OAAR,KAAI,IAAA,IAAA,YAAA,CAAaD,MAAjB,EAAyB;AACvBJ,QAAAA,MAAM,GAAGV,QAAQ,CAACgB,SAAT,CAAmBP,GAAG,CAACQ,EAAvB,EAA2BR,GAAG,CAACS,QAA/B,EAAyCT,GAAG,CAACU,KAA7C,EAAoDV,GAAG,CAACG,KAAxD,CAAT,CAAA;AACAF,QAAAA,MAAM,CAACU,aAAP,GAAuBX,GAAG,CAACW,aAA3B,CAAA;AACAV,QAAAA,MAAM,CAACK,OAAP,GAAiBJ,iBAAiB,CAACF,GAAG,CAACM,OAAL,EAAcH,KAAK,GAAG,CAAtB,CAAlC,CAAA;;AACA,QAAA,IAAI,CAACF,MAAM,CAACK,OAAP,CAAeD,MAApB,EAA4B;AAC1B,UAAA,SAAA;AACD,SAAA;;AACDL,QAAAA,GAAG,GAAGC,MAAN,CAAA;AACD,OAAA;;AAED,MAAA,IAAIJ,SAAS,CAACG,GAAD,CAAb,EAAoB;AAClBX,QAAAA,IAAI,CAACuB,IAAL,CAAUZ,GAAV,CAAA,CAAA;AACAD,QAAAA,mBAAmB,CAACC,GAAG,CAACQ,EAAL,CAAnB,GAA8BR,GAA9B,CAAA;AACAD,QAAAA,mBAAmB,CAACK,CAAD,CAAnB,GAAyBJ,GAAzB,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOX,IAAP,CAAA;AACD,GAzBD,CAAA;;AA2BA,EAAO,OAAA;AACLA,IAAAA,IAAI,EAAEa,iBAAiB,CAACN,YAAD,CADlB;AAELiB,IAAAA,QAAQ,EAAEf,mBAFL;AAGLgB,IAAAA,QAAQ,EAAEf,mBAAAA;AAHL,GAAP,CAAA;AAKD,CAAA;AAEM,SAASJ,sBAAT,CACLC,YADK,EAELC,SAFK,EAGLN,QAHK,EAIgB;AACrB,EAAMO,MAAAA,mBAAqC,GAAG,EAA9C,CAAA;AACA,EAAMC,MAAAA,mBAAmD,GAAG,EAA5D,CAAA;AAEA,EAAA,IAAIV,IAAJ,CAAA;AACA,EAAA,IAAIW,GAAJ,CAAA;AACA,EAAIC,IAAAA,MAAJ,CANqB;;AASrB,EAAA,MAAMC,iBAAiB,GAAG,UAACN,YAAD,EAAiCO,KAAjC,EAA+C;AAAA,IAAA,IAAdA,KAAc,KAAA,KAAA,CAAA,EAAA;AAAdA,MAAAA,KAAc,GAAN,CAAM,CAAA;AAAA,KAAA;;AACvE;AAEAd,IAAAA,IAAI,GAAG,EAAP,CAHuE;;AAMvE,IAAA,KAAK,IAAIe,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGR,YAAY,CAACS,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5CJ,MAAAA,GAAG,GAAGJ,YAAY,CAACQ,CAAD,CAAlB,CAAA;AAEA,MAAA,MAAMW,IAAI,GAAGlB,SAAS,CAACG,GAAD,CAAtB,CAAA;;AAEA,MAAA,IAAIe,IAAJ,EAAU;AAAA,QAAA,IAAA,aAAA,CAAA;;AACR,QAAA,IAAA,CAAA,aAAA,GAAIf,GAAG,CAACM,OAAR,KAAI,IAAA,IAAA,aAAA,CAAaD,MAAjB,EAAyB;AACvBJ,UAAAA,MAAM,GAAGV,QAAQ,CAACgB,SAAT,CACPP,GAAG,CAACQ,EADG,EAEPR,GAAG,CAACS,QAFG,EAGPT,GAAG,CAACU,KAHG,EAIPV,GAAG,CAACG,KAJG,CAAT,CAAA;AAMAF,UAAAA,MAAM,CAACK,OAAP,GAAiBJ,iBAAiB,CAACF,GAAG,CAACM,OAAL,EAAcH,KAAK,GAAG,CAAtB,CAAlC,CAAA;AACAH,UAAAA,GAAG,GAAGC,MAAN,CAAA;AACD,SAAA;;AAEDZ,QAAAA,IAAI,CAACuB,IAAL,CAAUZ,GAAV,CAAA,CAAA;AACAF,QAAAA,mBAAmB,CAACc,IAApB,CAAyBZ,GAAzB,CAAA,CAAA;AACAD,QAAAA,mBAAmB,CAACC,GAAG,CAACQ,EAAL,CAAnB,GAA8BR,GAA9B,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOX,IAAP,CAAA;AACD,GA9BD,CAAA;;AAgCA,EAAO,OAAA;AACLA,IAAAA,IAAI,EAAEa,iBAAiB,CAACN,YAAD,CADlB;AAELiB,IAAAA,QAAQ,EAAEf,mBAFL;AAGLgB,IAAAA,QAAQ,EAAEf,mBAAAA;AAHL,GAAP,CAAA;AAKD;;;;;;"}
1
+ {"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { TableGenerics, Row, RowModel, TableInstance } from '../types'\n\nexport function filterRows<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n filterRowImpl: (row: Row<TGenerics>) => any,\n instance: TableInstance<TGenerics>\n) {\n if (instance.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, instance)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, instance)\n}\n\nexport function filterRowModelFromLeafs<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRow: (row: Row<TGenerics>) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n let row\n let newRow\n\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n const rows: Row<TGenerics>[] = []\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n row = rowsToFilter[i]!\n\n if (row.subRows?.length) {\n newRow = createRow(instance, row.id, row.original, row.index, row.depth)\n newRow.columnFilters = row.columnFilters\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n if (!newRow.subRows.length) {\n continue\n }\n row = newRow\n }\n\n if (filterRow(row)) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\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<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRow: (row: Row<TGenerics>) => any,\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n let rows\n let row\n let newRow\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n // Filter from parents downward first\n\n rows = []\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n row = rowsToFilter[i]!\n\n const pass = filterRow(row)\n\n if (pass) {\n if (row.subRows?.length) {\n newRow = createRow(\n instance,\n row.id,\n row.original,\n row.index,\n row.depth\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","instance","options","filterFromLeafRows","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","row","newRow","recurseFilterRows","depth","i","length","subRows","createRow","id","original","index","columnFilters","push","flatRows","rowsById","pass"],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
+ var row = require('../core/row.js');
15
16
  var utils = require('../utils.js');
16
17
 
17
18
  function getCoreRowModel() {
@@ -22,7 +23,7 @@ function getCoreRowModel() {
22
23
  rowsById: {}
23
24
  };
24
25
  let rows;
25
- let row;
26
+ let row$1;
26
27
  let originalRow;
27
28
 
28
29
  const accessRows = function (originalRows, depth, parent) {
@@ -41,21 +42,21 @@ function getCoreRowModel() {
41
42
  // }
42
43
  // Make the row
43
44
 
44
- row = instance.createRow(instance.getRowId(originalRow, i, parent), originalRow, i, depth); // Keep track of every row in a flat array
45
+ row$1 = row.createRow(instance, instance._getRowId(originalRow, i, parent), originalRow, i, depth); // Keep track of every row in a flat array
45
46
 
46
- rowModel.flatRows.push(row); // Also keep track of every row by its ID
47
+ rowModel.flatRows.push(row$1); // Also keep track of every row by its ID
47
48
 
48
- rowModel.rowsById[row.id] = row; // Push instance row into parent
49
+ rowModel.rowsById[row$1.id] = row$1; // Push instance row into parent
49
50
 
50
- rows.push(row); // Get the original subrows
51
+ rows.push(row$1); // Get the original subrows
51
52
 
52
53
  if (instance.options.getSubRows) {
53
54
  var _row$originalSubRows;
54
55
 
55
- row.originalSubRows = instance.options.getSubRows(originalRow, i); // Then recursively access them
56
+ row$1.originalSubRows = instance.options.getSubRows(originalRow, i); // Then recursively access them
56
57
 
57
- if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {
58
- row.subRows = accessRows(row.originalSubRows, depth + 1, row);
58
+ if ((_row$originalSubRows = row$1.originalSubRows) != null && _row$originalSubRows.length) {
59
+ row$1.subRows = accessRows(row$1.originalSubRows, depth + 1, row$1);
59
60
  }
60
61
  }
61
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n const rowModel: RowModel<TGenerics> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n let rows\n let row\n let originalRow\n\n const accessRows = (\n originalRows: TGenerics['Row'][],\n depth = 0,\n parent?: Row<TGenerics>\n ): Row<TGenerics>[] => {\n rows = []\n\n for (let i = 0; i < originalRows.length; i++) {\n originalRow = originalRows[i]\n\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 row = instance.createRow(\n instance.getRowId(originalRow, i, parent),\n originalRow,\n i,\n depth\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 instance row into parent\n rows.push(row)\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n row.originalSubRows = instance.options.getSubRows(originalRow, i)\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: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","instance","memo","options","data","rowModel","rows","flatRows","rowsById","row","originalRow","accessRows","originalRows","depth","parent","i","length","createRow","getRowId","push","id","getSubRows","originalSubRows","subRows","key","process","env","NODE_ENV","debug","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,eAAT,GAEwB;AAC7B,EAAA,OAAOC,QAAQ,IACbC,UAAI,CACF,MAAM,CAACD,QAAQ,CAACE,OAAT,CAAiBC,IAAlB,CADJ,EAGAA,IADF,IAMK;AACH,IAAA,MAAMC,QAA6B,GAAG;AACpCC,MAAAA,IAAI,EAAE,EAD8B;AAEpCC,MAAAA,QAAQ,EAAE,EAF0B;AAGpCC,MAAAA,QAAQ,EAAE,EAAA;AAH0B,KAAtC,CAAA;AAMA,IAAA,IAAIF,IAAJ,CAAA;AACA,IAAA,IAAIG,GAAJ,CAAA;AACA,IAAA,IAAIC,WAAJ,CAAA;;AAEA,IAAMC,MAAAA,UAAU,GAAG,UACjBC,YADiB,EAEjBC,KAFiB,EAGjBC,MAHiB,EAII;AAAA,MAAA,IAFrBD,KAEqB,KAAA,KAAA,CAAA,EAAA;AAFrBA,QAAAA,KAEqB,GAFb,CAEa,CAAA;AAAA,OAAA;;AACrBP,MAAAA,IAAI,GAAG,EAAP,CAAA;;AAEA,MAAA,KAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,YAAY,CAACI,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5CL,QAAAA,WAAW,GAAGE,YAAY,CAACG,CAAD,CAA1B,CAD4C;AAI5C;AACA;AACA;AACA;AACA;AAEA;;AACAN,QAAAA,GAAG,GAAGR,QAAQ,CAACgB,SAAT,CACJhB,QAAQ,CAACiB,QAAT,CAAkBR,WAAlB,EAA+BK,CAA/B,EAAkCD,MAAlC,CADI,EAEJJ,WAFI,EAGJK,CAHI,EAIJF,KAJI,CAAN,CAX4C;;AAmB5CR,QAAAA,QAAQ,CAACE,QAAT,CAAkBY,IAAlB,CAAuBV,GAAvB,EAnB4C;;AAqB5CJ,QAAAA,QAAQ,CAACG,QAAT,CAAkBC,GAAG,CAACW,EAAtB,CAAA,GAA4BX,GAA5B,CArB4C;;AAuB5CH,QAAAA,IAAI,CAACa,IAAL,CAAUV,GAAV,EAvB4C;;AA0B5C,QAAA,IAAIR,QAAQ,CAACE,OAAT,CAAiBkB,UAArB,EAAiC;AAAA,UAAA,IAAA,oBAAA,CAAA;;AAC/BZ,UAAAA,GAAG,CAACa,eAAJ,GAAsBrB,QAAQ,CAACE,OAAT,CAAiBkB,UAAjB,CAA4BX,WAA5B,EAAyCK,CAAzC,CAAtB,CAD+B;;AAI/B,UAAA,IAAA,CAAA,oBAAA,GAAIN,GAAG,CAACa,eAAR,KAAI,IAAA,IAAA,oBAAA,CAAqBN,MAAzB,EAAiC;AAC/BP,YAAAA,GAAG,CAACc,OAAJ,GAAcZ,UAAU,CAACF,GAAG,CAACa,eAAL,EAAsBT,KAAK,GAAG,CAA9B,EAAiCJ,GAAjC,CAAxB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,OAAOH,IAAP,CAAA;AACD,KA5CD,CAAA;;AA8CAD,IAAAA,QAAQ,CAACC,IAAT,GAAgBK,UAAU,CAACP,IAAD,CAA1B,CAAA;AAEA,IAAA,OAAOC,QAAP,CAAA;AACD,GApEC,EAqEF;AACEmB,IAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,aADjD;AAEEC,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAM3B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACE,OAAT,CAAiB0B,QAAvB,oCAAmC5B,QAAQ,CAACE,OAAT,CAAiB2B,UAApD,CAAA;AAAA,KAFT;AAGEC,IAAAA,QAAQ,EAAE,MAAM;AACd9B,MAAAA,QAAQ,CAAC+B,mBAAT,EAAA,CAAA;AACD,KAAA;AALH,GArEE,CADN,CAAA;AA8ED;;;;"}
1
+ {"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n const rowModel: RowModel<TGenerics> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n let rows\n let row\n let originalRow\n\n const accessRows = (\n originalRows: TGenerics['Row'][],\n depth = 0,\n parent?: Row<TGenerics>\n ): Row<TGenerics>[] => {\n rows = []\n\n for (let i = 0; i < originalRows.length; i++) {\n originalRow = originalRows[i]\n\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 row = createRow(\n instance,\n instance._getRowId(originalRow, i, parent),\n originalRow,\n i,\n depth\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 instance row into parent\n rows.push(row)\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n row.originalSubRows = instance.options.getSubRows(originalRow, i)\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: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","instance","memo","options","data","rowModel","rows","flatRows","rowsById","row","originalRow","accessRows","originalRows","depth","parent","i","length","createRow","_getRowId","push","id","getSubRows","originalSubRows","subRows","key","process","env","NODE_ENV","debug","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":";;;;;;;;;;;;;;;;;AAIO,SAASA,eAAT,GAEwB;AAC7B,EAAA,OAAOC,QAAQ,IACbC,UAAI,CACF,MAAM,CAACD,QAAQ,CAACE,OAAT,CAAiBC,IAAlB,CADJ,EAGAA,IADF,IAMK;AACH,IAAA,MAAMC,QAA6B,GAAG;AACpCC,MAAAA,IAAI,EAAE,EAD8B;AAEpCC,MAAAA,QAAQ,EAAE,EAF0B;AAGpCC,MAAAA,QAAQ,EAAE,EAAA;AAH0B,KAAtC,CAAA;AAMA,IAAA,IAAIF,IAAJ,CAAA;AACA,IAAA,IAAIG,KAAJ,CAAA;AACA,IAAA,IAAIC,WAAJ,CAAA;;AAEA,IAAMC,MAAAA,UAAU,GAAG,UACjBC,YADiB,EAEjBC,KAFiB,EAGjBC,MAHiB,EAII;AAAA,MAAA,IAFrBD,KAEqB,KAAA,KAAA,CAAA,EAAA;AAFrBA,QAAAA,KAEqB,GAFb,CAEa,CAAA;AAAA,OAAA;;AACrBP,MAAAA,IAAI,GAAG,EAAP,CAAA;;AAEA,MAAA,KAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,YAAY,CAACI,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5CL,QAAAA,WAAW,GAAGE,YAAY,CAACG,CAAD,CAA1B,CAD4C;AAI5C;AACA;AACA;AACA;AACA;AAEA;;AACAN,QAAAA,KAAG,GAAGQ,aAAS,CACbhB,QADa,EAEbA,QAAQ,CAACiB,SAAT,CAAmBR,WAAnB,EAAgCK,CAAhC,EAAmCD,MAAnC,CAFa,EAGbJ,WAHa,EAIbK,CAJa,EAKbF,KALa,CAAf,CAX4C;;AAoB5CR,QAAAA,QAAQ,CAACE,QAAT,CAAkBY,IAAlB,CAAuBV,KAAvB,EApB4C;;AAsB5CJ,QAAAA,QAAQ,CAACG,QAAT,CAAkBC,KAAG,CAACW,EAAtB,CAAA,GAA4BX,KAA5B,CAtB4C;;AAwB5CH,QAAAA,IAAI,CAACa,IAAL,CAAUV,KAAV,EAxB4C;;AA2B5C,QAAA,IAAIR,QAAQ,CAACE,OAAT,CAAiBkB,UAArB,EAAiC;AAAA,UAAA,IAAA,oBAAA,CAAA;;AAC/BZ,UAAAA,KAAG,CAACa,eAAJ,GAAsBrB,QAAQ,CAACE,OAAT,CAAiBkB,UAAjB,CAA4BX,WAA5B,EAAyCK,CAAzC,CAAtB,CAD+B;;AAI/B,UAAA,IAAA,CAAA,oBAAA,GAAIN,KAAG,CAACa,eAAR,KAAI,IAAA,IAAA,oBAAA,CAAqBN,MAAzB,EAAiC;AAC/BP,YAAAA,KAAG,CAACc,OAAJ,GAAcZ,UAAU,CAACF,KAAG,CAACa,eAAL,EAAsBT,KAAK,GAAG,CAA9B,EAAiCJ,KAAjC,CAAxB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,OAAOH,IAAP,CAAA;AACD,KA7CD,CAAA;;AA+CAD,IAAAA,QAAQ,CAACC,IAAT,GAAgBK,UAAU,CAACP,IAAD,CAA1B,CAAA;AAEA,IAAA,OAAOC,QAAP,CAAA;AACD,GArEC,EAsEF;AACEmB,IAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,aADjD;AAEEC,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAM3B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACE,OAAT,CAAiB0B,QAAvB,oCAAmC5B,QAAQ,CAACE,OAAT,CAAiB2B,UAApD,CAAA;AAAA,KAFT;AAGEC,IAAAA,QAAQ,EAAE,MAAM;AACd9B,MAAAA,QAAQ,CAAC+B,mBAAT,EAAA,CAAA;AACD,KAAA;AALH,GAtEE,CADN,CAAA;AA+ED;;;;"}
@@ -12,6 +12,7 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
+ var row = require('../core/row.js');
15
16
  var utils = require('../utils.js');
16
17
 
17
18
  function getGroupedRowModel() {
@@ -51,8 +52,8 @@ function getGroupedRowModel() {
51
52
  const subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
52
53
 
53
54
  const leafRows = depth ? utils.flattenBy(groupedRows, row => row.subRows) : groupedRows;
54
- const row = instance.createRow(id, undefined, index, depth);
55
- Object.assign(row, {
55
+ const row$1 = row.createRow(instance, id, undefined, index, depth);
56
+ Object.assign(row$1, {
56
57
  groupingColumnId: columnId,
57
58
  groupingValue,
58
59
  subRows,
@@ -60,21 +61,21 @@ function getGroupedRowModel() {
60
61
  getValue: columnId => {
61
62
  // Don't aggregate columns that are in the grouping
62
63
  if (existingGrouping.includes(columnId)) {
63
- if (row.valuesCache.hasOwnProperty(columnId)) {
64
- return row.valuesCache[columnId];
64
+ if (row$1._valuesCache.hasOwnProperty(columnId)) {
65
+ return row$1._valuesCache[columnId];
65
66
  }
66
67
 
67
68
  if (groupedRows[0]) {
68
69
  var _groupedRows$0$getVal;
69
70
 
70
- row.valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;
71
+ row$1._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;
71
72
  }
72
73
 
73
- return row.valuesCache[columnId];
74
+ return row$1._valuesCache[columnId];
74
75
  }
75
76
 
76
- if (row.groupingValuesCache.hasOwnProperty(columnId)) {
77
- return row.groupingValuesCache[columnId];
77
+ if (row$1.groupingValuesCache.hasOwnProperty(columnId)) {
78
+ return row$1.groupingValuesCache[columnId];
78
79
  } // Aggregate the values
79
80
 
80
81
 
@@ -82,7 +83,7 @@ function getGroupedRowModel() {
82
83
  const aggregateFn = column.getColumnAggregationFn();
83
84
 
84
85
  if (aggregateFn) {
85
- row.groupingValuesCache[columnId] = aggregateFn(() => leafRows.map(row => {
86
+ row$1.groupingValuesCache[columnId] = aggregateFn(() => leafRows.map(row => {
86
87
  let columnValue = row.getValue(columnId);
87
88
 
88
89
  if (!depth && column.columnDef.aggregateValue) {
@@ -91,7 +92,7 @@ function getGroupedRowModel() {
91
92
 
92
93
  return columnValue;
93
94
  }), () => groupedRows.map(row => row.getValue(columnId)));
94
- return row.groupingValuesCache[columnId];
95
+ return row$1.groupingValuesCache[columnId];
95
96
  } else if (column.aggregationFn) {
96
97
  console.info({
97
98
  column
@@ -110,7 +111,7 @@ function getGroupedRowModel() {
110
111
  // nonGroupedRowsById[subRow.id] = subRow;
111
112
  // }
112
113
  });
113
- return row;
114
+ return row$1;
114
115
  });
115
116
  return aggregatedGroupedRows;
116
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { CoreRow } from '../features/Rows'\nimport { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { flattenBy, memo } from '../utils'\n\nexport function getGroupedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().grouping, instance.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 instance.getColumn(columnId)\n )\n\n const groupedFlatRows: Row<TGenerics>[] = []\n const groupedRowsById: Record<string, Row<TGenerics>> = {}\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<TGenerics>[],\n depth = 0,\n parentId: string\n ) => {\n // This is the last level, just return the rows\n if (depth === existingGrouping.length) {\n return rows\n }\n\n const columnId = 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 = instance.createRow(id, undefined, index, depth)\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 = instance.getColumn(columnId)\n const aggregateFn = column.getColumnAggregationFn()\n\n if (aggregateFn) {\n row.groupingValuesCache[columnId] = aggregateFn(\n () =>\n leafRows.map(row => {\n let columnValue = row.getValue(columnId)\n\n if (!depth && column.columnDef.aggregateValue) {\n columnValue =\n column.columnDef.aggregateValue(columnValue)\n }\n\n return columnValue\n }),\n () => groupedRows.map(row => row.getValue(columnId))\n )\n\n return row.groupingValuesCache[columnId]\n } else if (column.aggregationFn) {\n console.info({ column })\n throw new Error(\n process.env.NODE_ENV !== 'production'\n ? `Table: Invalid column.aggregateType option for column listed above`\n : ''\n )\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: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._queue(() => {\n instance._autoResetExpanded()\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n\nfunction groupBy<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnId: string\n) {\n const groupMap = new Map<any, Row<TGenerics>[]>()\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 map.set(resKey, [...previous, row])\n }\n return map\n }, groupMap)\n}\n"],"names":["getGroupedRowModel","instance","memo","getState","grouping","getPreGroupedRowModel","rowModel","rows","length","existingGrouping","filter","columnId","getColumn","groupedFlatRows","groupedRowsById","groupUpRecursively","depth","parentId","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","map","index","groupingValue","groupedRows","id","subRows","leafRows","flattenBy","row","createRow","undefined","Object","assign","groupingColumnId","getValue","includes","valuesCache","hasOwnProperty","groupingValuesCache","column","aggregateFn","getColumnAggregationFn","columnValue","columnDef","aggregateValue","aggregationFn","console","info","Error","process","env","NODE_ENV","forEach","subRow","push","flatRows","rowsById","key","debug","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 { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { flattenBy, memo } from '../utils'\n\nexport function getGroupedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().grouping, instance.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 instance.getColumn(columnId)\n )\n\n const groupedFlatRows: Row<TGenerics>[] = []\n const groupedRowsById: Record<string, Row<TGenerics>> = {}\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<TGenerics>[],\n depth = 0,\n parentId: string\n ) => {\n // This is the last level, just return the rows\n if (depth === existingGrouping.length) {\n return rows\n }\n\n const columnId = 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(instance, id, undefined, index, depth)\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 = instance.getColumn(columnId)\n const aggregateFn = column.getColumnAggregationFn()\n\n if (aggregateFn) {\n row.groupingValuesCache[columnId] = aggregateFn(\n () =>\n leafRows.map(row => {\n let columnValue = row.getValue(columnId)\n\n if (!depth && column.columnDef.aggregateValue) {\n columnValue =\n column.columnDef.aggregateValue(columnValue)\n }\n\n return columnValue\n }),\n () => groupedRows.map(row => row.getValue(columnId))\n )\n\n return row.groupingValuesCache[columnId]\n } else if (column.aggregationFn) {\n console.info({ column })\n throw new Error(\n process.env.NODE_ENV !== 'production'\n ? `Table: Invalid column.aggregateType option for column listed above`\n : ''\n )\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: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._queue(() => {\n instance._autoResetExpanded()\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n\nfunction groupBy<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnId: string\n) {\n const groupMap = new Map<any, Row<TGenerics>[]>()\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 map.set(resKey, [...previous, row])\n }\n return map\n }, groupMap)\n}\n"],"names":["getGroupedRowModel","instance","memo","getState","grouping","getPreGroupedRowModel","rowModel","rows","length","existingGrouping","filter","columnId","getColumn","groupedFlatRows","groupedRowsById","groupUpRecursively","depth","parentId","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","map","index","groupingValue","groupedRows","id","subRows","leafRows","flattenBy","row","createRow","undefined","Object","assign","groupingColumnId","getValue","includes","_valuesCache","hasOwnProperty","groupingValuesCache","column","aggregateFn","getColumnAggregationFn","columnValue","columnDef","aggregateValue","aggregationFn","console","info","Error","process","env","NODE_ENV","forEach","subRow","push","flatRows","rowsById","key","debug","options","debugAll","debugTable","onChange","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","previous","get","set"],"mappings":"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"}