@tanstack/table-core 8.5.13 → 8.5.16

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 (71) hide show
  1. package/build/cjs/aggregationFns.js +0 -15
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/columnHelper.js +10 -2
  4. package/build/cjs/columnHelper.js.map +1 -1
  5. package/build/cjs/core/cell.js +2 -9
  6. package/build/cjs/core/cell.js.map +1 -1
  7. package/build/cjs/core/column.js +9 -27
  8. package/build/cjs/core/column.js.map +1 -1
  9. package/build/cjs/core/headers.js +45 -129
  10. package/build/cjs/core/headers.js.map +1 -1
  11. package/build/cjs/core/row.js +4 -21
  12. package/build/cjs/core/row.js.map +1 -1
  13. package/build/cjs/core/table.js +26 -73
  14. package/build/cjs/core/table.js.map +1 -1
  15. package/build/cjs/features/ColumnSizing.js +56 -67
  16. package/build/cjs/features/ColumnSizing.js.map +1 -1
  17. package/build/cjs/features/Expanding.js +18 -34
  18. package/build/cjs/features/Expanding.js.map +1 -1
  19. package/build/cjs/features/Filters.js +19 -55
  20. package/build/cjs/features/Filters.js.map +1 -1
  21. package/build/cjs/features/Grouping.js +9 -26
  22. package/build/cjs/features/Grouping.js.map +1 -1
  23. package/build/cjs/features/Ordering.js +14 -13
  24. package/build/cjs/features/Ordering.js.map +1 -1
  25. package/build/cjs/features/Pagination.js +20 -43
  26. package/build/cjs/features/Pagination.js.map +1 -1
  27. package/build/cjs/features/Pinning.js +26 -66
  28. package/build/cjs/features/Pinning.js.map +1 -1
  29. package/build/cjs/features/RowSelection.js +44 -74
  30. package/build/cjs/features/RowSelection.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +25 -50
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +14 -32
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +3 -28
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/sortingFns.js +24 -31
  38. package/build/cjs/sortingFns.js.map +1 -1
  39. package/build/cjs/utils/filterRowsUtils.js +7 -19
  40. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  41. package/build/cjs/utils/getCoreRowModel.js +12 -18
  42. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  43. package/build/cjs/utils/getExpandedRowModel.js +2 -12
  44. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  45. package/build/cjs/utils/getFacetedMinMaxValues.js +1 -11
  46. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  47. package/build/cjs/utils/getFacetedRowModel.js +1 -9
  48. package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
  49. package/build/cjs/utils/getFacetedUniqueValues.js +2 -12
  50. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
  51. package/build/cjs/utils/getFilteredRowModel.js +14 -34
  52. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  53. package/build/cjs/utils/getGroupedRowModel.js +25 -35
  54. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  55. package/build/cjs/utils/getPaginationRowModel.js +1 -11
  56. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  57. package/build/cjs/utils/getSortedRowModel.js +8 -23
  58. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  59. package/build/cjs/utils.js +11 -14
  60. package/build/cjs/utils.js.map +1 -1
  61. package/build/esm/index.js +452 -993
  62. package/build/esm/index.js.map +1 -1
  63. package/build/stats-html.html +44 -34
  64. package/build/stats-react.json +371 -371
  65. package/build/umd/index.development.js +452 -991
  66. package/build/umd/index.development.js.map +1 -1
  67. package/build/umd/index.production.js +1 -1
  68. package/build/umd/index.production.js.map +1 -1
  69. package/package.json +1 -1
  70. package/src/features/ColumnSizing.ts +11 -1
  71. package/src/features/Expanding.ts +1 -1
@@ -15,10 +15,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var utils = require('../utils.js');
16
16
 
17
17
  //
18
- function createHeader(table, column, options) {
19
- var _options$id;
20
18
 
21
- const id = (_options$id = options.id) != null ? _options$id : column.id;
19
+ function createHeader(table, column, options) {
20
+ const id = options.id ?? column.id;
22
21
  let header = {
23
22
  id,
24
23
  column,
@@ -32,15 +31,12 @@ function createHeader(table, column, options) {
32
31
  headerGroup: null,
33
32
  getLeafHeaders: () => {
34
33
  const leafHeaders = [];
35
-
36
34
  const recurseHeader = h => {
37
35
  if (h.subHeaders && h.subHeaders.length) {
38
36
  h.subHeaders.map(recurseHeader);
39
37
  }
40
-
41
38
  leafHeaders.push(h);
42
39
  };
43
-
44
40
  recurseHeader(header);
45
41
  return leafHeaders;
46
42
  },
@@ -50,124 +46,82 @@ function createHeader(table, column, options) {
50
46
  column
51
47
  })
52
48
  };
53
-
54
49
  table._features.forEach(feature => {
55
50
  Object.assign(header, feature.createHeader == null ? void 0 : feature.createHeader(header, table));
56
51
  });
57
-
58
52
  return header;
59
53
  }
60
-
61
54
  const Headers = {
62
55
  createTable: table => {
63
56
  return {
64
57
  // Header Groups
65
- getHeaderGroups: utils.memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {
66
- var _left$map$filter, _right$map$filter;
67
58
 
68
- const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];
69
- const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];
59
+ getHeaderGroups: utils.memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {
60
+ const leftColumns = (left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) ?? [];
61
+ const rightColumns = (right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) ?? [];
70
62
  const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));
71
63
  const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);
72
64
  return headerGroups;
73
65
  }, {
74
66
  key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',
75
- debug: () => {
76
- var _table$options$debugA;
77
-
78
- return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugHeaders;
79
- }
67
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
80
68
  }),
81
69
  getCenterHeaderGroups: utils.memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {
82
70
  leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));
83
71
  return buildHeaderGroups(allColumns, leafColumns, table, 'center');
84
72
  }, {
85
73
  key: process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',
86
- debug: () => {
87
- var _table$options$debugA2;
88
-
89
- return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugHeaders;
90
- }
74
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
91
75
  }),
92
76
  getLeftHeaderGroups: utils.memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {
93
- var _left$map$filter2;
94
-
95
- const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];
77
+ const orderedLeafColumns = (left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) ?? [];
96
78
  return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');
97
79
  }, {
98
80
  key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',
99
- debug: () => {
100
- var _table$options$debugA3;
101
-
102
- return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugHeaders;
103
- }
81
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
104
82
  }),
105
83
  getRightHeaderGroups: utils.memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {
106
- var _right$map$filter2;
107
-
108
- const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];
84
+ const orderedLeafColumns = (right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) ?? [];
109
85
  return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');
110
86
  }, {
111
87
  key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',
112
- debug: () => {
113
- var _table$options$debugA4;
114
-
115
- return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugHeaders;
116
- }
88
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
117
89
  }),
118
90
  // Footer Groups
91
+
119
92
  getFooterGroups: utils.memo(() => [table.getHeaderGroups()], headerGroups => {
120
93
  return [...headerGroups].reverse();
121
94
  }, {
122
95
  key: process.env.NODE_ENV === 'development' && 'getFooterGroups',
123
- debug: () => {
124
- var _table$options$debugA5;
125
-
126
- return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugHeaders;
127
- }
96
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
128
97
  }),
129
98
  getLeftFooterGroups: utils.memo(() => [table.getLeftHeaderGroups()], headerGroups => {
130
99
  return [...headerGroups].reverse();
131
100
  }, {
132
101
  key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',
133
- debug: () => {
134
- var _table$options$debugA6;
135
-
136
- return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugHeaders;
137
- }
102
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
138
103
  }),
139
104
  getCenterFooterGroups: utils.memo(() => [table.getCenterHeaderGroups()], headerGroups => {
140
105
  return [...headerGroups].reverse();
141
106
  }, {
142
107
  key: process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',
143
- debug: () => {
144
- var _table$options$debugA7;
145
-
146
- return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugHeaders;
147
- }
108
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
148
109
  }),
149
110
  getRightFooterGroups: utils.memo(() => [table.getRightHeaderGroups()], headerGroups => {
150
111
  return [...headerGroups].reverse();
151
112
  }, {
152
113
  key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',
153
- debug: () => {
154
- var _table$options$debugA8;
155
-
156
- return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugHeaders;
157
- }
114
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
158
115
  }),
159
116
  // Flat Headers
117
+
160
118
  getFlatHeaders: utils.memo(() => [table.getHeaderGroups()], headerGroups => {
161
119
  return headerGroups.map(headerGroup => {
162
120
  return headerGroup.headers;
163
121
  }).flat();
164
122
  }, {
165
123
  key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',
166
- debug: () => {
167
- var _table$options$debugA9;
168
-
169
- return (_table$options$debugA9 = table.options.debugAll) != null ? _table$options$debugA9 : table.options.debugHeaders;
170
- }
124
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
171
125
  }),
172
126
  getLeftFlatHeaders: utils.memo(() => [table.getLeftHeaderGroups()], left => {
173
127
  return left.map(headerGroup => {
@@ -175,11 +129,7 @@ const Headers = {
175
129
  }).flat();
176
130
  }, {
177
131
  key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',
178
- debug: () => {
179
- var _table$options$debugA10;
180
-
181
- return (_table$options$debugA10 = table.options.debugAll) != null ? _table$options$debugA10 : table.options.debugHeaders;
182
- }
132
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
183
133
  }),
184
134
  getCenterFlatHeaders: utils.memo(() => [table.getCenterHeaderGroups()], left => {
185
135
  return left.map(headerGroup => {
@@ -187,11 +137,7 @@ const Headers = {
187
137
  }).flat();
188
138
  }, {
189
139
  key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',
190
- debug: () => {
191
- var _table$options$debugA11;
192
-
193
- return (_table$options$debugA11 = table.options.debugAll) != null ? _table$options$debugA11 : table.options.debugHeaders;
194
- }
140
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
195
141
  }),
196
142
  getRightFlatHeaders: utils.memo(() => [table.getRightHeaderGroups()], left => {
197
143
  return left.map(headerGroup => {
@@ -199,117 +145,91 @@ const Headers = {
199
145
  }).flat();
200
146
  }, {
201
147
  key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',
202
- debug: () => {
203
- var _table$options$debugA12;
204
-
205
- return (_table$options$debugA12 = table.options.debugAll) != null ? _table$options$debugA12 : table.options.debugHeaders;
206
- }
148
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
207
149
  }),
208
150
  // Leaf Headers
151
+
209
152
  getCenterLeafHeaders: utils.memo(() => [table.getCenterFlatHeaders()], flatHeaders => {
210
153
  return flatHeaders.filter(header => {
211
154
  var _header$subHeaders;
212
-
213
155
  return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);
214
156
  });
215
157
  }, {
216
158
  key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',
217
- debug: () => {
218
- var _table$options$debugA13;
219
-
220
- return (_table$options$debugA13 = table.options.debugAll) != null ? _table$options$debugA13 : table.options.debugHeaders;
221
- }
159
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
222
160
  }),
223
161
  getLeftLeafHeaders: utils.memo(() => [table.getLeftFlatHeaders()], flatHeaders => {
224
162
  return flatHeaders.filter(header => {
225
163
  var _header$subHeaders2;
226
-
227
164
  return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);
228
165
  });
229
166
  }, {
230
167
  key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',
231
- debug: () => {
232
- var _table$options$debugA14;
233
-
234
- return (_table$options$debugA14 = table.options.debugAll) != null ? _table$options$debugA14 : table.options.debugHeaders;
235
- }
168
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
236
169
  }),
237
170
  getRightLeafHeaders: utils.memo(() => [table.getRightFlatHeaders()], flatHeaders => {
238
171
  return flatHeaders.filter(header => {
239
172
  var _header$subHeaders3;
240
-
241
173
  return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);
242
174
  });
243
175
  }, {
244
176
  key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',
245
- debug: () => {
246
- var _table$options$debugA15;
247
-
248
- return (_table$options$debugA15 = table.options.debugAll) != null ? _table$options$debugA15 : table.options.debugHeaders;
249
- }
177
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
250
178
  }),
251
179
  getLeafHeaders: utils.memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {
252
- var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;
253
-
254
- return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {
180
+ var _left$, _center$, _right$;
181
+ return [...(((_left$ = left[0]) == null ? void 0 : _left$.headers) ?? []), ...(((_center$ = center[0]) == null ? void 0 : _center$.headers) ?? []), ...(((_right$ = right[0]) == null ? void 0 : _right$.headers) ?? [])].map(header => {
255
182
  return header.getLeafHeaders();
256
183
  }).flat();
257
184
  }, {
258
185
  key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',
259
- debug: () => {
260
- var _table$options$debugA16;
261
-
262
- return (_table$options$debugA16 = table.options.debugAll) != null ? _table$options$debugA16 : table.options.debugHeaders;
263
- }
186
+ debug: () => table.options.debugAll ?? table.options.debugHeaders
264
187
  })
265
188
  };
266
189
  }
267
190
  };
268
191
  function buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {
269
- var _headerGroups$0$heade, _headerGroups$;
270
-
192
+ var _headerGroups$;
271
193
  // Find the max depth of the columns:
272
194
  // build the leaf column row
273
195
  // build each buffer row going up
274
196
  // placeholder for non-existent level
275
197
  // real column for existing level
276
- let maxDepth = 0;
277
198
 
199
+ let maxDepth = 0;
278
200
  const findMaxDepth = function (columns, depth) {
279
201
  if (depth === void 0) {
280
202
  depth = 1;
281
203
  }
282
-
283
204
  maxDepth = Math.max(maxDepth, depth);
284
205
  columns.filter(column => column.getIsVisible()).forEach(column => {
285
206
  var _column$columns;
286
-
287
207
  if ((_column$columns = column.columns) != null && _column$columns.length) {
288
208
  findMaxDepth(column.columns, depth + 1);
289
209
  }
290
210
  }, 0);
291
211
  };
292
-
293
212
  findMaxDepth(allColumns);
294
213
  let headerGroups = [];
295
-
296
214
  const createHeaderGroup = (headersToGroup, depth) => {
297
215
  // The header group we are creating
298
216
  const headerGroup = {
299
217
  depth,
300
- id: [headerFamily, "" + depth].filter(Boolean).join('_'),
218
+ id: [headerFamily, `${depth}`].filter(Boolean).join('_'),
301
219
  headers: []
302
- }; // The parent columns we're going to scan next
220
+ };
303
221
 
304
- const pendingParentHeaders = []; // Scan each column for parents
222
+ // The parent columns we're going to scan next
223
+ const pendingParentHeaders = [];
305
224
 
225
+ // Scan each column for parents
306
226
  headersToGroup.forEach(headerToGroup => {
307
227
  // What is the latest (last) parent column?
228
+
308
229
  const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];
309
230
  const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;
310
231
  let column;
311
232
  let isPlaceholder = false;
312
-
313
233
  if (isLeafHeader && headerToGroup.column.parent) {
314
234
  // The parent header is new
315
235
  column = headerToGroup.column.parent;
@@ -318,7 +238,6 @@ function buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {
318
238
  column = headerToGroup.column;
319
239
  isPlaceholder = true;
320
240
  }
321
-
322
241
  if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {
323
242
  // This column is repeated. Add it as a sub header to the next batch
324
243
  latestPendingParentHeader.subHeaders.push(headerToGroup);
@@ -327,33 +246,33 @@ function buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {
327
246
  const header = createHeader(table, column, {
328
247
  id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),
329
248
  isPlaceholder,
330
- placeholderId: isPlaceholder ? "" + pendingParentHeaders.filter(d => d.column === column).length : undefined,
249
+ placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,
331
250
  depth,
332
251
  index: pendingParentHeaders.length
333
- }); // Add the headerToGroup as a subHeader of the new header
252
+ });
334
253
 
335
- header.subHeaders.push(headerToGroup); // Add the new header to the pendingParentHeaders to get grouped
254
+ // Add the headerToGroup as a subHeader of the new header
255
+ header.subHeaders.push(headerToGroup);
256
+ // Add the new header to the pendingParentHeaders to get grouped
336
257
  // in the next batch
337
-
338
258
  pendingParentHeaders.push(header);
339
259
  }
340
-
341
260
  headerGroup.headers.push(headerToGroup);
342
261
  headerToGroup.headerGroup = headerGroup;
343
262
  });
344
263
  headerGroups.push(headerGroup);
345
-
346
264
  if (depth > 0) {
347
265
  createHeaderGroup(pendingParentHeaders, depth - 1);
348
266
  }
349
267
  };
350
-
351
268
  const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {
352
269
  depth: maxDepth,
353
270
  index
354
271
  }));
355
272
  createHeaderGroup(bottomHeaders, maxDepth - 1);
356
- headerGroups.reverse(); // headerGroups = headerGroups.filter(headerGroup => {
273
+ headerGroups.reverse();
274
+
275
+ // headerGroups = headerGroups.filter(headerGroup => {
357
276
  // return !headerGroup.headers.every(header => header.isPlaceholder)
358
277
  // })
359
278
 
@@ -363,7 +282,6 @@ function buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {
363
282
  let colSpan = 0;
364
283
  let rowSpan = 0;
365
284
  let childRowSpans = [0];
366
-
367
285
  if (header.subHeaders && header.subHeaders.length) {
368
286
  childRowSpans = [];
369
287
  recurseHeadersForSpans(header.subHeaders).forEach(_ref => {
@@ -377,7 +295,6 @@ function buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {
377
295
  } else {
378
296
  colSpan = 1;
379
297
  }
380
-
381
298
  const minChildRowSpan = Math.min(...childRowSpans);
382
299
  rowSpan = rowSpan + minChildRowSpan;
383
300
  header.colSpan = colSpan;
@@ -388,8 +305,7 @@ function buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {
388
305
  };
389
306
  });
390
307
  };
391
-
392
- recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);
308
+ recurseHeadersForSpans(((_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) ?? []);
393
309
  return headerGroups;
394
310
  }
395
311
 
@@ -1 +1 @@
1
- {"version":3,"file":"headers.js","sources":["../../../src/core/headers.ts"],"sourcesContent":["import { RowData, Column, Header, HeaderGroup, Table } from '../types'\nimport { memo } from '../utils'\nimport { TableFeature } from './table'\n\nexport type CoreHeaderGroup<TData extends RowData> = {\n id: string\n depth: number\n headers: Header<TData, unknown>[]\n}\n\nexport type HeaderContext<TData, TValue> = {\n table: Table<TData>\n header: Header<TData, TValue>\n column: Column<TData, TValue>\n}\n\nexport type CoreHeader<TData extends RowData, TValue> = {\n id: string\n index: number\n depth: number\n column: Column<TData, TValue>\n headerGroup: HeaderGroup<TData>\n subHeaders: Header<TData, TValue>[]\n colSpan: number\n rowSpan: number\n getLeafHeaders: () => Header<TData, unknown>[]\n isPlaceholder: boolean\n placeholderId?: string\n getContext: () => HeaderContext<TData, TValue>\n}\n\nexport type HeadersInstance<TData extends RowData> = {\n getHeaderGroups: () => HeaderGroup<TData>[]\n getLeftHeaderGroups: () => HeaderGroup<TData>[]\n getCenterHeaderGroups: () => HeaderGroup<TData>[]\n getRightHeaderGroups: () => HeaderGroup<TData>[]\n\n getFooterGroups: () => HeaderGroup<TData>[]\n getLeftFooterGroups: () => HeaderGroup<TData>[]\n getCenterFooterGroups: () => HeaderGroup<TData>[]\n getRightFooterGroups: () => HeaderGroup<TData>[]\n\n getFlatHeaders: () => Header<TData, unknown>[]\n getLeftFlatHeaders: () => Header<TData, unknown>[]\n getCenterFlatHeaders: () => Header<TData, unknown>[]\n getRightFlatHeaders: () => Header<TData, unknown>[]\n\n getLeafHeaders: () => Header<TData, unknown>[]\n getLeftLeafHeaders: () => Header<TData, unknown>[]\n getCenterLeafHeaders: () => Header<TData, unknown>[]\n getRightLeafHeaders: () => Header<TData, unknown>[]\n}\n\n//\n\nfunction createHeader<TData extends RowData, TValue>(\n table: Table<TData>,\n column: Column<TData, TValue>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n) {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TData, TValue> = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null!,\n getLeafHeaders: (): Header<TData, unknown>[] => {\n const leafHeaders: Header<TData, unknown>[] = []\n\n const recurseHeader = (h: CoreHeader<TData, any>) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h as Header<TData, unknown>)\n }\n\n recurseHeader(header)\n\n return leafHeaders\n },\n getContext: () => ({\n table,\n header: header as Header<TData, TValue>,\n column,\n }),\n }\n\n table._features.forEach(feature => {\n Object.assign(header, feature.createHeader?.(header, table))\n })\n\n return header as Header<TData, TValue>\n}\n\nexport const Headers: TableFeature = {\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): HeadersInstance<TData> => {\n return {\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const rightColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n table\n )\n\n return headerGroups\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n const orderedLeafColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'left'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n const orderedLeafColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'right'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [table.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [table.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [table.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFlatHeaders: memo(\n () => [table.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFlatHeaders: memo(\n () => [table.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFlatHeaders: memo(\n () => [table.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [table.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [table.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [table.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeafHeaders: memo(\n () => [\n table.getLeftHeaderGroups(),\n table.getCenterHeaderGroups(),\n table.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n }\n },\n}\n\nexport function buildHeaderGroups<TData extends RowData>(\n allColumns: Column<TData, unknown>[],\n columnsToGroup: Column<TData, unknown>[],\n table: Table<TData>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (columns: Column<TData, unknown>[], depth = 1) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<TData>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TData, unknown>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TData> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const pendingParentHeaders: Header<TData, unknown>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TData, unknown>\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n if (\n latestPendingParentHeader &&\n latestPendingParentHeader?.column === column\n ) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup)\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${pendingParentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n index: pendingParentHeaders.length,\n })\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup)\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header)\n }\n\n headerGroup.headers.push(headerToGroup)\n headerToGroup.headerGroup = headerGroup\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map((column, index) =>\n createHeader(table, column, {\n depth: maxDepth,\n index,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (\n headers: Header<TData, unknown>[]\n ): { colSpan: number; rowSpan: number }[] => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan\n header.rowSpan = rowSpan\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createHeader","table","column","options","id","header","index","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","length","map","push","getContext","_features","forEach","feature","Object","assign","Headers","createTable","getHeaderGroups","memo","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","leftColumns","columnId","find","d","filter","Boolean","rightColumns","centerColumns","includes","headerGroups","buildHeaderGroups","key","process","env","NODE_ENV","debug","debugAll","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","orderedLeafColumns","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","center","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
1
+ {"version":3,"file":"headers.js","sources":["../../../src/core/headers.ts"],"sourcesContent":["import { RowData, Column, Header, HeaderGroup, Table } from '../types'\nimport { memo } from '../utils'\nimport { TableFeature } from './table'\n\nexport type CoreHeaderGroup<TData extends RowData> = {\n id: string\n depth: number\n headers: Header<TData, unknown>[]\n}\n\nexport type HeaderContext<TData, TValue> = {\n table: Table<TData>\n header: Header<TData, TValue>\n column: Column<TData, TValue>\n}\n\nexport type CoreHeader<TData extends RowData, TValue> = {\n id: string\n index: number\n depth: number\n column: Column<TData, TValue>\n headerGroup: HeaderGroup<TData>\n subHeaders: Header<TData, TValue>[]\n colSpan: number\n rowSpan: number\n getLeafHeaders: () => Header<TData, unknown>[]\n isPlaceholder: boolean\n placeholderId?: string\n getContext: () => HeaderContext<TData, TValue>\n}\n\nexport type HeadersInstance<TData extends RowData> = {\n getHeaderGroups: () => HeaderGroup<TData>[]\n getLeftHeaderGroups: () => HeaderGroup<TData>[]\n getCenterHeaderGroups: () => HeaderGroup<TData>[]\n getRightHeaderGroups: () => HeaderGroup<TData>[]\n\n getFooterGroups: () => HeaderGroup<TData>[]\n getLeftFooterGroups: () => HeaderGroup<TData>[]\n getCenterFooterGroups: () => HeaderGroup<TData>[]\n getRightFooterGroups: () => HeaderGroup<TData>[]\n\n getFlatHeaders: () => Header<TData, unknown>[]\n getLeftFlatHeaders: () => Header<TData, unknown>[]\n getCenterFlatHeaders: () => Header<TData, unknown>[]\n getRightFlatHeaders: () => Header<TData, unknown>[]\n\n getLeafHeaders: () => Header<TData, unknown>[]\n getLeftLeafHeaders: () => Header<TData, unknown>[]\n getCenterLeafHeaders: () => Header<TData, unknown>[]\n getRightLeafHeaders: () => Header<TData, unknown>[]\n}\n\n//\n\nfunction createHeader<TData extends RowData, TValue>(\n table: Table<TData>,\n column: Column<TData, TValue>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n) {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TData, TValue> = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null!,\n getLeafHeaders: (): Header<TData, unknown>[] => {\n const leafHeaders: Header<TData, unknown>[] = []\n\n const recurseHeader = (h: CoreHeader<TData, any>) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h as Header<TData, unknown>)\n }\n\n recurseHeader(header)\n\n return leafHeaders\n },\n getContext: () => ({\n table,\n header: header as Header<TData, TValue>,\n column,\n }),\n }\n\n table._features.forEach(feature => {\n Object.assign(header, feature.createHeader?.(header, table))\n })\n\n return header as Header<TData, TValue>\n}\n\nexport const Headers: TableFeature = {\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): HeadersInstance<TData> => {\n return {\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const rightColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n table\n )\n\n return headerGroups\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n const orderedLeafColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'left'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n const orderedLeafColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'right'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [table.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [table.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [table.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFlatHeaders: memo(\n () => [table.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFlatHeaders: memo(\n () => [table.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFlatHeaders: memo(\n () => [table.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [table.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [table.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [table.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeafHeaders: memo(\n () => [\n table.getLeftHeaderGroups(),\n table.getCenterHeaderGroups(),\n table.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n }\n },\n}\n\nexport function buildHeaderGroups<TData extends RowData>(\n allColumns: Column<TData, unknown>[],\n columnsToGroup: Column<TData, unknown>[],\n table: Table<TData>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (columns: Column<TData, unknown>[], depth = 1) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<TData>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TData, unknown>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TData> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const pendingParentHeaders: Header<TData, unknown>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TData, unknown>\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n if (\n latestPendingParentHeader &&\n latestPendingParentHeader?.column === column\n ) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup)\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${pendingParentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n index: pendingParentHeaders.length,\n })\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup)\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header)\n }\n\n headerGroup.headers.push(headerToGroup)\n headerToGroup.headerGroup = headerGroup\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map((column, index) =>\n createHeader(table, column, {\n depth: maxDepth,\n index,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (\n headers: Header<TData, unknown>[]\n ): { colSpan: number; rowSpan: number }[] => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan\n header.rowSpan = rowSpan\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createHeader","table","column","options","id","header","index","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","length","map","push","getContext","_features","forEach","feature","Object","assign","Headers","createTable","getHeaderGroups","memo","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","leftColumns","columnId","find","d","filter","Boolean","rightColumns","centerColumns","includes","headerGroups","buildHeaderGroups","key","process","env","NODE_ENV","debug","debugAll","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","orderedLeafColumns","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","center","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
@@ -26,22 +26,15 @@ const createRow = (table, id, original, rowIndex, depth, subRows) => {
26
26
  if (row._valuesCache.hasOwnProperty(columnId)) {
27
27
  return row._valuesCache[columnId];
28
28
  }
29
-
30
29
  const column = table.getColumn(columnId);
31
-
32
30
  if (!column.accessorFn) {
33
31
  return undefined;
34
32
  }
35
-
36
33
  row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);
37
34
  return row._valuesCache[columnId];
38
35
  },
39
- renderValue: columnId => {
40
- var _row$getValue;
41
-
42
- return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;
43
- },
44
- subRows: subRows != null ? subRows : [],
36
+ renderValue: columnId => row.getValue(columnId) ?? table.options.renderFallbackValue,
37
+ subRows: subRows ?? [],
45
38
  getLeafRows: () => utils.flattenBy(row.subRows, d => d.subRows),
46
39
  getAllCells: utils.memo(() => [table.getAllLeafColumns()], leafColumns => {
47
40
  return leafColumns.map(column => {
@@ -49,11 +42,7 @@ const createRow = (table, id, original, rowIndex, depth, subRows) => {
49
42
  });
50
43
  }, {
51
44
  key: process.env.NODE_ENV === 'development' && 'row.getAllCells',
52
- debug: () => {
53
- var _table$options$debugA;
54
-
55
- return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;
56
- }
45
+ debug: () => table.options.debugAll ?? table.options.debugRows
57
46
  }),
58
47
  _getAllCellsByColumnId: utils.memo(() => [row.getAllCells()], allCells => {
59
48
  return allCells.reduce((acc, cell) => {
@@ -62,19 +51,13 @@ const createRow = (table, id, original, rowIndex, depth, subRows) => {
62
51
  }, {});
63
52
  }, {
64
53
  key: process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',
65
- debug: () => {
66
- var _table$options$debugA2;
67
-
68
- return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;
69
- }
54
+ debug: () => table.options.debugAll ?? table.options.debugRows
70
55
  })
71
56
  };
72
-
73
57
  for (let i = 0; i < table._features.length; i++) {
74
58
  const feature = table._features[i];
75
59
  Object.assign(row, feature == null ? void 0 : feature.createRow == null ? void 0 : feature.createRow(row, table));
76
60
  }
77
-
78
61
  return row;
79
62
  };
80
63