@tanstack/react-table 8.0.0-alpha.8 → 8.0.0-alpha.9

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 (96) hide show
  1. package/build/cjs/core.js +65 -80
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/createTable.js +44 -30
  4. package/build/cjs/createTable.js.map +1 -1
  5. package/build/cjs/features/ColumnSizing.js +23 -22
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Expanding.js +10 -22
  8. package/build/cjs/features/Expanding.js.map +1 -1
  9. package/build/cjs/features/Filters.js +27 -58
  10. package/build/cjs/features/Filters.js.map +1 -1
  11. package/build/cjs/features/Grouping.js +10 -27
  12. package/build/cjs/features/Grouping.js.map +1 -1
  13. package/build/cjs/features/Headers.js +108 -28
  14. package/build/cjs/features/Headers.js.map +1 -1
  15. package/build/cjs/features/Ordering.js +2 -2
  16. package/build/cjs/features/Ordering.js.map +1 -1
  17. package/build/cjs/features/Pagination.js +24 -29
  18. package/build/cjs/features/Pagination.js.map +1 -1
  19. package/build/cjs/features/Pinning.js.map +1 -1
  20. package/build/cjs/features/RowSelection.js +23 -38
  21. package/build/cjs/features/RowSelection.js.map +1 -1
  22. package/build/cjs/features/Sorting.js +10 -22
  23. package/build/cjs/features/Sorting.js.map +1 -1
  24. package/build/cjs/features/Visibility.js +10 -2
  25. package/build/cjs/features/Visibility.js.map +1 -1
  26. package/build/cjs/filterTypes.js.map +1 -1
  27. package/build/cjs/index.js +12 -0
  28. package/build/cjs/index.js.map +1 -1
  29. package/build/cjs/sortTypes.js.map +1 -1
  30. package/build/cjs/types.js +22 -0
  31. package/build/cjs/types.js.map +1 -0
  32. package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
  33. package/build/cjs/utils/expandRowsFn.js.map +1 -1
  34. package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
  35. package/build/cjs/utils/groupRowsFn.js.map +1 -1
  36. package/build/cjs/utils/paginateRowsFn.js.map +1 -1
  37. package/build/cjs/utils/sortRowsFn.js.map +1 -1
  38. package/build/cjs/utils.js +44 -18
  39. package/build/cjs/utils.js.map +1 -1
  40. package/build/esm/index.js +1382 -1357
  41. package/build/esm/index.js.map +1 -1
  42. package/build/stats-html.html +1 -1
  43. package/build/stats-react.json +337 -321
  44. package/build/types/core.d.ts +63 -68
  45. package/build/types/createTable.d.ts +34 -44
  46. package/build/types/features/ColumnSizing.d.ts +13 -7
  47. package/build/types/features/Expanding.d.ts +11 -16
  48. package/build/types/features/Filters.d.ts +39 -47
  49. package/build/types/features/Grouping.d.ts +28 -27
  50. package/build/types/features/Headers.d.ts +30 -30
  51. package/build/types/features/Ordering.d.ts +5 -5
  52. package/build/types/features/Pagination.d.ts +11 -16
  53. package/build/types/features/Pinning.d.ts +5 -5
  54. package/build/types/features/RowSelection.d.ts +15 -23
  55. package/build/types/features/Sorting.d.ts +26 -25
  56. package/build/types/features/Visibility.d.ts +9 -9
  57. package/build/types/filterTypes.d.ts +10 -10
  58. package/build/types/index.d.ts +1 -0
  59. package/build/types/sortTypes.d.ts +7 -7
  60. package/build/types/types.d.ts +34 -23
  61. package/build/types/utils/columnFilterRowsFn.d.ts +2 -2
  62. package/build/types/utils/expandRowsFn.d.ts +2 -2
  63. package/build/types/utils/globalFilterRowsFn.d.ts +2 -2
  64. package/build/types/utils/groupRowsFn.d.ts +2 -2
  65. package/build/types/utils/paginateRowsFn.d.ts +2 -2
  66. package/build/types/utils/sortRowsFn.d.ts +2 -2
  67. package/build/types/utils.d.ts +5 -6
  68. package/build/umd/index.development.js +1395 -1359
  69. package/build/umd/index.development.js.map +1 -1
  70. package/build/umd/index.production.js +1 -1
  71. package/build/umd/index.production.js.map +1 -1
  72. package/package.json +1 -7
  73. package/src/core.tsx +189 -522
  74. package/src/createTable.tsx +133 -191
  75. package/src/features/ColumnSizing.ts +48 -77
  76. package/src/features/Expanding.ts +25 -113
  77. package/src/features/Filters.ts +91 -293
  78. package/src/features/Grouping.ts +60 -165
  79. package/src/features/Headers.ts +148 -331
  80. package/src/features/Ordering.ts +19 -42
  81. package/src/features/Pagination.ts +35 -110
  82. package/src/features/Pinning.ts +16 -40
  83. package/src/features/RowSelection.ts +47 -227
  84. package/src/features/Sorting.ts +49 -143
  85. package/src/features/Visibility.ts +23 -64
  86. package/src/filterTypes.ts +19 -82
  87. package/src/index.tsx +1 -0
  88. package/src/sortTypes.ts +19 -31
  89. package/src/types.ts +80 -100
  90. package/src/utils/columnFilterRowsFn.ts +11 -53
  91. package/src/utils/expandRowsFn.ts +7 -27
  92. package/src/utils/globalFilterRowsFn.ts +10 -43
  93. package/src/utils/groupRowsFn.ts +13 -37
  94. package/src/utils/paginateRowsFn.ts +5 -11
  95. package/src/utils/sortRowsFn.ts +8 -28
  96. package/src/utils.tsx +61 -35
package/build/cjs/core.js CHANGED
@@ -30,21 +30,17 @@ var features = [Visibility, Ordering, Pinning, Headers, Filters, Sorting, Groupi
30
30
  function createTableInstance(options) {
31
31
  var _options$initialState;
32
32
 
33
- if (process.env.NODE_ENV !== 'production' && options.debug) {
33
+ if (options.debugAll || options.debugTable) {
34
34
  console.info('Creating React Table Instance...');
35
35
  }
36
36
 
37
37
  var instance = {};
38
- var listeners = [];
39
38
  var defaultOptions = features.reduce(function (obj, feature) {
40
39
  return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(instance));
41
40
  }, {});
42
- var defaultState = {};
43
41
 
44
42
  var buildOptions = function buildOptions(options) {
45
- return _rollupPluginBabelHelpers["extends"]({
46
- state: defaultState
47
- }, defaultOptions, options);
43
+ return _rollupPluginBabelHelpers["extends"]({}, defaultOptions, options);
48
44
  };
49
45
 
50
46
  instance.options = buildOptions(options);
@@ -53,51 +49,24 @@ function createTableInstance(options) {
53
49
  return Object.assign(obj, feature.getInitialState == null ? void 0 : feature.getInitialState());
54
50
  }, {}), (_options$initialState = options.initialState) != null ? _options$initialState : {});
55
51
 
56
- var finalInstance = _rollupPluginBabelHelpers["extends"]({}, instance, {
57
- subscribe: function subscribe(cb) {
58
- listeners.push(cb);
59
- return function () {
60
- listeners = listeners.filter(function (l) {
61
- return l !== cb;
62
- });
63
- };
64
- },
65
- notify: function notify() {
66
- listeners.forEach(function (l) {
67
- return l();
68
- });
69
- }
70
- }, features.reduce(function (obj, feature) {
52
+ var finalInstance = _rollupPluginBabelHelpers["extends"]({}, instance, features.reduce(function (obj, feature) {
71
53
  return Object.assign(obj, feature.getInstance == null ? void 0 : feature.getInstance(instance));
72
54
  }, {}), {
73
55
  initialState: initialState,
74
- internalState: initialState,
75
56
  reset: function reset() {
76
57
  instance.setState(instance.initialState);
77
58
  },
78
- updateOptions: function updateOptions(newOptions) {
79
- instance.options = buildOptions(newOptions);
59
+ setOptions: function setOptions(updater) {
60
+ instance.options = buildOptions(utils.functionalUpdate(updater, instance.options));
80
61
  },
81
62
  getRowId: function getRowId(_, index, parent) {
82
63
  return "" + (parent ? [parent.id, index].join('.') : index);
83
64
  },
84
65
  getState: function getState() {
85
- var state = _rollupPluginBabelHelpers["extends"]({}, instance.internalState, instance.options.state);
86
-
87
- return state;
66
+ return instance.options.state;
88
67
  },
89
68
  setState: function setState(updater) {
90
- var onStateChange = instance.options.onStateChange;
91
- var internalState = instance.internalState;
92
- var newState = utils.functionalUpdate(updater, internalState);
93
- instance.internalState = newState;
94
-
95
- if (onStateChange) {
96
- onStateChange(newState);
97
- return;
98
- }
99
-
100
- instance.notify();
69
+ instance.options.onStateChange == null ? void 0 : instance.options.onStateChange(updater);
101
70
  },
102
71
  getDefaultColumn: utils.memo(function () {
103
72
  return [instance.options.defaultColumn];
@@ -121,7 +90,11 @@ function createTableInstance(options) {
121
90
  return Object.assign(obj, feature.getDefaultColumn == null ? void 0 : feature.getDefaultColumn());
122
91
  }, {}), defaultColumn);
123
92
  }, {
124
- debug: instance.options.debug,
93
+ debug: function debug() {
94
+ var _instance$options$deb;
95
+
96
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;
97
+ },
125
98
  key: 'getDefaultColumn'
126
99
  }),
127
100
  getColumnDefs: function getColumnDefs() {
@@ -170,7 +143,11 @@ function createTableInstance(options) {
170
143
  }));
171
144
  }, {
172
145
  key: 'column.getFlatColumns',
173
- debug: instance.options.debug
146
+ debug: function debug() {
147
+ var _instance$options$deb2;
148
+
149
+ return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;
150
+ }
174
151
  }),
175
152
  getLeafColumns: utils.memo(function () {
176
153
  return [instance.getOrderColumnsFn()];
@@ -187,7 +164,11 @@ function createTableInstance(options) {
187
164
  return [column];
188
165
  }, {
189
166
  key: 'column.getLeafColumns',
190
- debug: instance.options.debug
167
+ debug: function debug() {
168
+ var _instance$options$deb3;
169
+
170
+ return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugColumns;
171
+ }
191
172
  })
192
173
  });
193
174
 
@@ -200,8 +181,6 @@ function createTableInstance(options) {
200
181
  getAllColumns: utils.memo(function () {
201
182
  return [instance.getColumnDefs()];
202
183
  }, function (columnDefs) {
203
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Building Columns...');
204
-
205
184
  var recurseColumns = function recurseColumns(columnDefs, parent, depth) {
206
185
  if (depth === void 0) {
207
186
  depth = 0;
@@ -217,7 +196,11 @@ function createTableInstance(options) {
217
196
  return recurseColumns(columnDefs);
218
197
  }, {
219
198
  key: 'getAllColumns',
220
- debug: instance.options.debug
199
+ debug: function debug() {
200
+ var _instance$options$deb4;
201
+
202
+ return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugColumns;
203
+ }
221
204
  }),
222
205
  getAllFlatColumns: utils.memo(function () {
223
206
  return [instance.getAllColumns()];
@@ -227,7 +210,11 @@ function createTableInstance(options) {
227
210
  });
228
211
  }, {
229
212
  key: 'getAllFlatColumns',
230
- debug: instance.options.debug
213
+ debug: function debug() {
214
+ var _instance$options$deb5;
215
+
216
+ return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugColumns;
217
+ }
231
218
  }),
232
219
  getAllFlatColumnsById: utils.memo(function () {
233
220
  return [instance.getAllFlatColumns()];
@@ -238,7 +225,11 @@ function createTableInstance(options) {
238
225
  }, {});
239
226
  }, {
240
227
  key: 'getAllFlatColumnsById',
241
- debug: instance.options.debug
228
+ debug: function debug() {
229
+ var _instance$options$deb6;
230
+
231
+ return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : instance.options.debugColumns;
232
+ }
242
233
  }),
243
234
  getAllLeafColumns: utils.memo(function () {
244
235
  return [instance.getAllColumns(), instance.getOrderColumnsFn()];
@@ -249,7 +240,11 @@ function createTableInstance(options) {
249
240
  return orderColumns(leafColumns);
250
241
  }, {
251
242
  key: 'getAllLeafColumns',
252
- debug: instance.options.debug
243
+ debug: function debug() {
244
+ var _instance$options$deb7;
245
+
246
+ return (_instance$options$deb7 = instance.options.debugAll) != null ? _instance$options$deb7 : instance.options.debugColumns;
247
+ }
253
248
  }),
254
249
  getColumn: function getColumn(columnId) {
255
250
  var column = instance.getAllFlatColumnsById()[columnId];
@@ -325,7 +320,11 @@ function createTableInstance(options) {
325
320
  });
326
321
  }, {
327
322
  key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',
328
- debug: instance.options.debug
323
+ debug: function debug() {
324
+ var _instance$options$deb8;
325
+
326
+ return (_instance$options$deb8 = instance.options.debugAll) != null ? _instance$options$deb8 : instance.options.debugRows;
327
+ }
329
328
  });
330
329
  row.getAllCellsByColumnId = utils.memo(function () {
331
330
  return [row.getAllCells()];
@@ -336,18 +335,24 @@ function createTableInstance(options) {
336
335
  }, {});
337
336
  }, {
338
337
  key: 'row.getAllCellsByColumnId',
339
- debug: instance.options.debug
338
+ debug: function debug() {
339
+ var _instance$options$deb9;
340
+
341
+ return (_instance$options$deb9 = instance.options.debugAll) != null ? _instance$options$deb9 : instance.options.debugRows;
342
+ }
340
343
  });
341
- features.forEach(function (feature) {
344
+
345
+ for (var i = 0; i < features.length; i++) {
346
+ var feature = features[i];
342
347
  Object.assign(row, feature.createRow == null ? void 0 : feature.createRow(row, instance));
343
- });
348
+ }
349
+
344
350
  return row;
345
351
  },
346
352
  getCoreRowModel: utils.memo(function () {
347
353
  return [instance.options.data];
348
354
  }, function (data) {
349
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Accessing...'); // Access the row model using initial columns
350
-
355
+ // Access the row model using initial columns
351
356
  var rows = [];
352
357
  var flatRows = [];
353
358
  var rowsById = {};
@@ -416,39 +421,24 @@ function createTableInstance(options) {
416
421
  };
417
422
  }, {
418
423
  key: 'getRowModel',
419
- debug: instance.options.debug,
424
+ debug: function debug() {
425
+ var _instance$options$deb10;
426
+
427
+ return (_instance$options$deb10 = instance.options.debugAll) != null ? _instance$options$deb10 : instance.options.debugTable;
428
+ },
420
429
  onChange: function onChange() {
421
430
  instance._notifyRowSelectionReset();
422
431
 
423
432
  instance._notifyFiltersReset();
424
433
  }
425
434
  }),
426
- // The standard
427
- getCoreRows: function getCoreRows() {
428
- return instance.getCoreRowModel().rows;
429
- },
430
- getCoreFlatRows: function getCoreFlatRows() {
431
- return instance.getCoreRowModel().flatRows;
432
- },
433
- getCoreRowsById: function getCoreRowsById() {
434
- return instance.getCoreRowModel().rowsById;
435
- },
436
435
  // The final calls start at the bottom of the model,
437
436
  // expanded rows, which then work their way up
438
437
  getRowModel: function getRowModel() {
439
438
  return instance.getPaginationRowModel();
440
439
  },
441
- getRows: function getRows() {
442
- return instance.getRowModel().rows;
443
- },
444
- getFlatRows: function getFlatRows() {
445
- return instance.getRowModel().flatRows;
446
- },
447
- getRowsById: function getRowsById() {
448
- return instance.getRowModel().rowsById;
449
- },
450
440
  getRow: function getRow(id) {
451
- var row = instance.getRowsById()[id];
441
+ var row = instance.getRowModel().rowsById[id];
452
442
 
453
443
  if (!row) {
454
444
  if (process.env.NODE_ENV !== 'production') {
@@ -547,12 +537,7 @@ function createTableInstance(options) {
547
537
  }
548
538
  });
549
539
 
550
- instance = Object.assign(instance, finalInstance); // This won't trigger a rerender yet, but it will force
551
- // pagination derivation to run (particularly pageSize detection)
552
-
553
- instance.setPagination(function (d) {
554
- return d;
555
- });
540
+ instance = Object.assign(instance, finalInstance);
556
541
  return instance;
557
542
  }
558
543
 
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../../src/core.tsx"],"sourcesContent":["import {\n flattenBy,\n functionalUpdate,\n propGetter,\n memo,\n flexRender,\n RequiredKeys,\n} from './utils'\n\nimport {\n Updater,\n PropGetterValue,\n Options,\n TableState,\n ColumnDef,\n Row,\n Column,\n Cell,\n Header,\n AccessorFn,\n HeaderRenderProps,\n TableProps,\n TableBodyProps,\n PropGetter,\n Getter,\n RowProps,\n CellProps,\n ReactTable,\n RowValues,\n Renderable,\n} from './types'\n\nimport * as Visibility from './features/Visibility'\nimport * as Ordering from './features/Ordering'\nimport * as Pinning from './features/Pinning'\nimport * as Headers from './features/Headers'\nimport * as Filters from './features/Filters'\nimport * as Sorting from './features/Sorting'\nimport * as Grouping from './features/Grouping'\nimport * as Expanding from './features/Expanding'\nimport * as ColumnSizing from './features/ColumnSizing'\nimport * as Pagination from './features/Pagination'\nimport * as RowSelection from './features/RowSelection'\nimport { RowModel } from '.'\n\nconst features = [\n Visibility,\n Ordering,\n Pinning,\n Headers,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n ColumnSizing,\n Pagination,\n RowSelection,\n]\n\nexport type CoreOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n data: TData[]\n columns: ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n debug?: boolean\n defaultColumn?: Partial<\n ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n initialState?: Partial<TableState>\n state?: Partial<TableState>\n getSubRows?: (originalRow: TData, index: number) => TData[]\n getRowId?: (\n originalRow: TData,\n index: number,\n parent?: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => string\n onStateChange?: (newState: TableState) => void\n autoResetAll?: boolean\n}\n\nexport type TableCore<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =\n {\n subscribe: (cb: () => void) => () => void\n notify: () => void\n initialState: TableState\n internalState: TableState\n reset: () => void\n options: RequiredKeys<\n Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n 'state'\n >\n updateOptions: (\n newOptions: Options<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => void\n getRowId: (\n _: TData,\n index: number,\n parent?: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => string\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n getDefaultColumn: () => Partial<\n ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getColumnDefs: () => ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n createColumn: (\n columnDef: ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n depth: number,\n parent?: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getAllColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getAllFlatColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getAllFlatColumnsById: () => Record<\n string,\n Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getAllLeafColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getColumn: (\n columnId: string\n ) => Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getColumnWidth: (columnId: string) => number\n getTotalWidth: () => number\n createCell: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n value: any\n ) => Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n createRow: (\n id: string,\n original: TData | undefined,\n rowIndex: number,\n depth: number,\n values: Record<string, any>\n ) => Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getCoreRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getCoreRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCoreFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCoreRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getRow: (\n id: string\n ) => Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getCell: (\n rowId: string,\n columnId: string\n ) => Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getTableProps: PropGetter<TableProps>\n getTableBodyProps: PropGetter<TableBodyProps>\n getRowProps: <TGetter extends Getter<RowProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<RowProps, TGetter>\n getCellProps: <TGetter extends Getter<CellProps>>(\n rowId: string,\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<CellProps, TGetter>\n getTableWidth: () => number\n getLeftTableWidth: () => number\n getCenterTableWidth: () => number\n getRightTableWidth: () => number\n }\n\nexport type CoreRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {\n id: string\n index: number\n original?: TData\n depth: number\n values: RowValues\n leafRows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n subRows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n getRowProps: PropGetter<RowProps>\n originalSubRows?: TData[]\n getAllCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getAllCellsByColumnId: () => Record<\n string,\n Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\nexport type CoreColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n id: string\n accessorKey?: string & keyof TData\n accessorFn?: AccessorFn<TData>\n header?:\n | string\n | Renderable<{\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n header: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n }>\n __generated: true\n width?: number\n minWidth?: number\n maxWidth?: number\n columns?: ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n footer?: Renderable<{\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n header: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n }>\n cell?: Renderable<{\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n cell: Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n value: TValue\n }>\n defaultIsVisible?: boolean\n}\n\nexport type CoreColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData>\n columnDef: ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getWidth: () => number\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n parent?: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getFlatColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeafColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport function createTableInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n options: Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n if (process.env.NODE_ENV !== 'production' && options.debug) {\n console.info('Creating React Table Instance...')\n }\n\n let instance = {} as ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n\n let listeners: (() => void)[] = []\n\n const defaultOptions = features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getDefaultOptions?.(instance))\n }, {})\n\n const defaultState = {}\n\n const buildOptions = (\n options: Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => ({\n state: defaultState,\n ...defaultOptions,\n ...options,\n })\n\n instance.options = buildOptions(options)\n\n const initialState = {\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getInitialState?.())\n }, {}),\n ...(options.initialState ?? {}),\n } as TableState\n\n const finalInstance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n ...instance,\n subscribe: cb => {\n listeners.push(cb)\n return () => {\n listeners = listeners.filter(l => l !== cb)\n }\n },\n notify: () => {\n listeners.forEach(l => l())\n },\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getInstance?.(instance))\n }, {}),\n initialState,\n internalState: initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n updateOptions: newOptions => {\n instance.options = buildOptions(newOptions)\n },\n\n getRowId: (\n _: TData,\n index: number,\n parent?: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => `${parent ? [parent.id, index].join('.') : index}`,\n\n getState: () => {\n let state = {\n ...instance.internalState,\n ...instance.options.state,\n }\n\n return state\n },\n\n setState: (updater: Updater<TableState>) => {\n const onStateChange = instance.options.onStateChange\n\n let internalState = instance.internalState\n let newState = functionalUpdate(updater, internalState)\n\n instance.internalState = newState\n\n if (onStateChange) {\n onStateChange(newState)\n return\n }\n\n instance.notify()\n },\n\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<\n ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n\n return {\n header: (\n props: HeaderRenderProps<\n Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n ) => props.header.column.id,\n footer: (\n props: HeaderRenderProps<\n Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n ) => props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<\n ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n },\n { debug: instance.options.debug, key: 'getDefaultColumn' }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (columnDef, depth: number, parent) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TData) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n ...ColumnSizing.defaultColumnSizing,\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columns: [],\n getWidth: () => instance.getColumnWidth(column.id),\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: 'column.getFlatColumns',\n debug: instance.options.debug,\n }\n ),\n getLeafColumns: memo(\n () => [instance.getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [\n column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n ]\n },\n {\n key: 'column.getLeafColumns',\n debug: instance.options.debug,\n }\n ),\n }\n\n column = features.reduce((obj, feature) => {\n return Object.assign(\n obj,\n (feature as any).createColumn?.(column, instance)\n )\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Building Columns...')\n\n const recurseColumns = (\n columnDefs: ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n parent?: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n depth = 0\n ): Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n { key: 'getAllColumns', debug: instance.options.debug }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n { key: 'getAllFlatColumns', debug: instance.options.debug }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>>)\n },\n { key: 'getAllFlatColumnsById', debug: instance.options.debug }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance.getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n { key: 'getAllLeafColumns', debug: instance.options.debug }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[React Table] Column with id ${columnId} does not exist.`\n )\n }\n throw new Error()\n }\n\n return column\n },\n\n getColumnWidth: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minWidth ?? ColumnSizing.defaultColumnSizing.minWidth,\n columnSize ?? column.width ?? ColumnSizing.defaultColumnSizing.width\n ),\n column.maxWidth ?? ColumnSizing.defaultColumnSizing.maxWidth\n )\n },\n\n createCell: (row, column, value) => {\n const cell: Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n getCellProps: userProps =>\n instance.getCellProps(row.id, column.id, userProps)!,\n renderCell: () =>\n flexRender(column.cell, { instance, column, row, cell, value }),\n }\n\n features.forEach(feature => {\n Object.assign(\n cell,\n (feature as any).createCell?.(\n cell as Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > &\n Grouping.GroupingCell,\n column,\n row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance\n )\n )\n }, {})\n\n return cell\n },\n\n createRow: (id, original, rowIndex, depth, values) => {\n let row: CoreRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id,\n index: rowIndex,\n original,\n depth,\n values,\n subRows: [],\n leafRows: [],\n getRowProps: userProps => instance.getRowProps(row.id, userProps)!,\n getAllCells: undefined!,\n getAllCellsByColumnId: undefined!,\n }\n\n row.getAllCells = memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(\n row as Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n column,\n row.values[column.id]\n )\n })\n },\n {\n key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',\n debug: instance.options.debug,\n }\n )\n\n row.getAllCellsByColumnId = memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.columnId] = cell\n return acc\n }, {} as Record<string, Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>>)\n },\n {\n key: 'row.getAllCellsByColumnId',\n debug: instance.options.debug,\n }\n )\n\n features.forEach(feature => {\n Object.assign(row, (feature as any).createRow?.(row, instance))\n })\n\n return row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n },\n\n getCoreRowModel: memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n flatRows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n rowsById: Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n } => {\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Accessing...')\n\n // Access the row model using initial columns\n const rows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n const flatRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n const rowsById: Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n > = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TData,\n rowIndex: number,\n depth = 0,\n parentRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n parent?: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\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 const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TData,\n i,\n depth + 1,\n subRows,\n row\n )\n }\n // Keep the new subRows array on the row\n row.subRows = subRows\n row.leafRows = flattenBy(subRows, d => d.leafRows)\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TData, i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: 'getRowModel',\n debug: instance.options.debug,\n onChange: () => {\n instance._notifyRowSelectionReset()\n instance._notifyFiltersReset()\n },\n }\n ),\n\n // The standard\n\n getCoreRows: () => {\n return instance.getCoreRowModel().rows\n },\n\n getCoreFlatRows: () => {\n return instance.getCoreRowModel().flatRows\n },\n\n getCoreRowsById: () => {\n return instance.getCoreRowModel().rowsById\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return instance.getPaginationRowModel()\n },\n\n getRows: () => {\n return instance.getRowModel().rows\n },\n\n getFlatRows: () => {\n return instance.getRowModel().flatRows\n },\n\n getRowsById: () => {\n return instance.getRowModel().rowsById\n },\n\n getRow: (id: string) => {\n const row = instance.getRowsById()[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n\n getCell: (rowId: string, columnId: string) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[React Table] could not find row with id ${rowId}`)\n }\n throw new Error()\n }\n\n const cell = row.getAllCellsByColumnId()[columnId]\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `[React Table] could not find cell ${columnId} in row ${rowId}`\n )\n }\n throw new Error()\n }\n\n return cell\n },\n\n getTableProps: userProps => {\n return propGetter(\n {\n role: 'table',\n },\n userProps\n )\n },\n\n getTableBodyProps: userProps => {\n return propGetter(\n {\n role: 'rowgroup',\n },\n userProps\n )\n },\n\n getRowProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n if (!row) {\n return\n }\n\n return propGetter(\n {\n key: row.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getCellProps: (rowId, columnId, userProps) => {\n const cell = instance.getCell(rowId, columnId)\n\n if (!cell) {\n return\n }\n\n return propGetter(\n {\n key: cell.id,\n role: 'gridcell',\n },\n userProps\n )\n },\n\n getTableWidth: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getLeftTableWidth: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getCenterTableWidth: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getRightTableWidth: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n }\n\n instance = Object.assign(instance, finalInstance)\n\n // This won't trigger a rerender yet, but it will force\n // pagination derivation to run (particularly pageSize detection)\n instance.setPagination(d => d)\n\n return instance\n}\n"],"names":["features","Visibility","Ordering","Pinning","Headers","Filters","Sorting","Grouping","Expanding","ColumnSizing","Pagination","RowSelection","createTableInstance","options","process","env","NODE_ENV","debug","console","info","instance","listeners","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","defaultState","buildOptions","state","initialState","getInitialState","finalInstance","subscribe","cb","push","filter","l","notify","forEach","getInstance","internalState","reset","setState","updateOptions","newOptions","getRowId","_","index","parent","id","join","getState","updater","onStateChange","newState","functionalUpdate","getDefaultColumn","memo","defaultColumn","header","props","column","footer","cell","value","toString","key","getColumnDefs","columns","createColumn","columnDef","depth","accessorKey","undefined","accessorFn","originalRow","Error","getWidth","getColumnWidth","getFlatColumns","flatMap","d","getLeafColumns","getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","warn","columnSize","columnSizing","Math","min","max","minWidth","width","maxWidth","createCell","row","rowId","getCellProps","userProps","renderCell","flexRender","createRow","original","rowIndex","values","subRows","leafRows","getRowProps","getAllCells","getAllCellsByColumnId","allCells","getCoreRowModel","data","rows","flatRows","rowsById","accessRow","parentRows","i","getSubRows","originalSubRows","flattenBy","onChange","_notifyRowSelectionReset","_notifyFiltersReset","getCoreRows","getCoreFlatRows","getCoreRowsById","getRowModel","getPaginationRowModel","getRows","getFlatRows","getRowsById","getRow","getCell","getTableProps","propGetter","role","getTableBodyProps","getTableWidth","getHeaderGroups","headers","sum","getLeftTableWidth","getLeftHeaderGroups","getCenterTableWidth","getCenterHeaderGroups","getRightTableWidth","getRightHeaderGroups","setPagination"],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sources":["../../src/core.tsx"],"sourcesContent":["import {\n flattenBy,\n functionalUpdate,\n propGetter,\n memo,\n flexRender,\n RequiredKeys,\n} from './utils'\n\nimport {\n Updater,\n PropGetterValue,\n Options,\n TableState,\n ColumnDef,\n Row,\n Column,\n Cell,\n Header,\n AccessorFn,\n HeaderRenderProps,\n TableProps,\n TableBodyProps,\n PropGetter,\n Getter,\n RowProps,\n CellProps,\n TableInstance,\n RowValues,\n Renderable,\n Please_use_the_create_table_column_utilities_to_define_columns,\n PartialGenerics,\n} from './types'\n\nimport * as Visibility from './features/Visibility'\nimport * as Ordering from './features/Ordering'\nimport * as Pinning from './features/Pinning'\nimport * as Headers from './features/Headers'\nimport * as Filters from './features/Filters'\nimport * as Sorting from './features/Sorting'\nimport * as Grouping from './features/Grouping'\nimport * as Expanding from './features/Expanding'\nimport * as ColumnSizing from './features/ColumnSizing'\nimport * as Pagination from './features/Pagination'\nimport * as RowSelection from './features/RowSelection'\nimport { RowModel } from '.'\n\nconst features = [\n Visibility,\n Ordering,\n Pinning,\n Headers,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n ColumnSizing,\n Pagination,\n RowSelection,\n]\n\nexport type CoreOptions<TGenerics extends PartialGenerics> = {\n data: TGenerics['Row'][]\n columns: ColumnDef<TGenerics>[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n initialState?: Partial<TableState>\n getSubRows?: (\n originalRow: TGenerics['Row'],\n index: number\n ) => TGenerics['Row'][]\n getRowId?: (\n originalRow: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n autoResetAll?: boolean\n}\n\nexport type TableCore<TGenerics extends PartialGenerics> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<Options<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<Options<TGenerics>>) => void\n getRowId: (\n _: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n getColumnWidth: (columnId: string) => number\n getTotalWidth: () => number\n createCell: (\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n value: any\n ) => Cell<TGenerics>\n createRow: (\n id: string,\n original: TGenerics['Row'] | undefined,\n rowIndex: number,\n depth: number,\n values: Record<string, any>\n ) => Row<TGenerics>\n getCoreRowModel: () => RowModel<TGenerics>\n getRowModel: () => RowModel<TGenerics>\n getRow: (id: string) => Row<TGenerics>\n getCell: (rowId: string, columnId: string) => Cell<TGenerics>\n getTableProps: PropGetter<TableProps>\n getTableBodyProps: PropGetter<TableBodyProps>\n getRowProps: <TGetter extends Getter<RowProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<RowProps, TGetter>\n getCellProps: <TGetter extends Getter<CellProps>>(\n rowId: string,\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<CellProps, TGetter>\n getTableWidth: () => number\n getLeftTableWidth: () => number\n getCenterTableWidth: () => number\n getRightTableWidth: () => number\n}\n\nexport type CoreRow<TGenerics extends PartialGenerics> = {\n id: string\n index: number\n original?: TGenerics['Row']\n depth: number\n values: RowValues\n leafRows: Row<TGenerics>[]\n subRows: Row<TGenerics>[]\n getRowProps: PropGetter<RowProps>\n originalSubRows?: TGenerics['Row'][]\n getAllCells: () => Cell<TGenerics>[]\n getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>\n}\n\nexport type CoreColumnDef<TGenerics extends PartialGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n header?:\n | string\n | Renderable<{\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }>\n width?: number\n minWidth?: number\n maxWidth?: number\n columns?: ColumnDef<TGenerics>[]\n footer?: Renderable<{\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }>\n cell?: Renderable<{\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }>\n defaultIsVisible?: boolean\n [Please_use_the_create_table_column_utilities_to_define_columns]: true\n}\n\nexport type CoreColumn<TGenerics extends PartialGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n getWidth: () => number\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport function createTableInstance<TGenerics extends PartialGenerics>(\n options: Options<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating React Table Instance...')\n }\n\n let instance = {} as TableInstance<TGenerics>\n\n let listeners: (() => void)[] = []\n\n const defaultOptions = features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getDefaultOptions?.(instance))\n }, {})\n\n const buildOptions = (options: Options<TGenerics>) => ({\n ...defaultOptions,\n ...options,\n })\n\n instance.options = buildOptions(options)\n\n const initialState = {\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getInitialState?.())\n }, {}),\n ...(options.initialState ?? {}),\n } as TableState\n\n const finalInstance: TableInstance<TGenerics> = {\n ...instance,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getInstance?.(instance))\n }, {}),\n initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n instance.options = buildOptions(\n functionalUpdate(updater, instance.options)\n )\n },\n\n getRowId: (_: TGenerics['Row'], index: number, parent?: Row<TGenerics>) =>\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n key: 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (columnDef, depth: number, parent) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...ColumnSizing.defaultColumnSizing,\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columns: [],\n getWidth: () => instance.getColumnWidth(column.id),\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance.getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key: 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = features.reduce((obj, feature) => {\n return Object.assign(\n obj,\n (feature as any).createColumn?.(column, instance)\n )\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: 'getAllColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: 'getAllFlatColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key: 'getAllFlatColumnsById',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance.getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: 'getAllLeafColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[React Table] Column with id ${columnId} does not exist.`\n )\n }\n throw new Error()\n }\n\n return column\n },\n\n getColumnWidth: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minWidth ?? ColumnSizing.defaultColumnSizing.minWidth,\n columnSize ?? column.width ?? ColumnSizing.defaultColumnSizing.width\n ),\n column.maxWidth ?? ColumnSizing.defaultColumnSizing.maxWidth\n )\n },\n\n createCell: (row, column, value) => {\n const cell: Cell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n getCellProps: userProps =>\n instance.getCellProps(row.id, column.id, userProps)!,\n renderCell: () =>\n flexRender(column.cell, { instance, column, row, cell, value }),\n }\n\n features.forEach(feature => {\n Object.assign(\n cell,\n (feature as any).createCell?.(\n cell as Cell<TGenerics> & Grouping.GroupingCell,\n column,\n row as Row<TGenerics>,\n instance\n )\n )\n }, {})\n\n return cell\n },\n\n createRow: (id, original, rowIndex, depth, values) => {\n let row: CoreRow<TGenerics> = {\n id,\n index: rowIndex,\n original,\n depth,\n values,\n subRows: [],\n leafRows: [],\n getRowProps: userProps => instance.getRowProps(row.id, userProps)!,\n getAllCells: undefined!,\n getAllCellsByColumnId: undefined!,\n }\n\n row.getAllCells = memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(\n row as Row<TGenerics>,\n column,\n row.values[column.id]\n )\n })\n },\n {\n key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n row.getAllCellsByColumnId = memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.columnId] = cell\n return acc\n }, {} as Record<string, Cell<TGenerics>>)\n },\n {\n key: 'row.getAllCellsByColumnId',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n for (let i = 0; i < features.length; i++) {\n const feature = features[i]\n Object.assign(row, (feature as any).createRow?.(row, instance))\n }\n\n return row as Row<TGenerics>\n },\n\n getCoreRowModel: 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 // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\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 const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n // Keep the new subRows array on the row\n row.subRows = subRows\n row.leafRows = flattenBy(subRows, d => d.leafRows)\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._notifyRowSelectionReset()\n instance._notifyFiltersReset()\n },\n }\n ),\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return instance.getPaginationRowModel()\n },\n\n getRow: (id: string) => {\n const row = instance.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n\n getCell: (rowId: string, columnId: string) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[React Table] could not find row with id ${rowId}`)\n }\n throw new Error()\n }\n\n const cell = row.getAllCellsByColumnId()[columnId]\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `[React Table] could not find cell ${columnId} in row ${rowId}`\n )\n }\n throw new Error()\n }\n\n return cell\n },\n\n getTableProps: userProps => {\n return propGetter(\n {\n role: 'table',\n },\n userProps\n )\n },\n\n getTableBodyProps: userProps => {\n return propGetter(\n {\n role: 'rowgroup',\n },\n userProps\n )\n },\n\n getRowProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n if (!row) {\n return\n }\n\n return propGetter(\n {\n key: row.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getCellProps: (rowId, columnId, userProps) => {\n const cell = instance.getCell(rowId, columnId)\n\n if (!cell) {\n return\n }\n\n return propGetter(\n {\n key: cell.id,\n role: 'gridcell',\n },\n userProps\n )\n },\n\n getTableWidth: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getLeftTableWidth: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getCenterTableWidth: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getRightTableWidth: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n }\n\n instance = Object.assign(instance, finalInstance)\n\n return instance\n}\n"],"names":["features","Visibility","Ordering","Pinning","Headers","Filters","Sorting","Grouping","Expanding","ColumnSizing","Pagination","RowSelection","createTableInstance","options","debugAll","debugTable","console","info","instance","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","buildOptions","initialState","getInitialState","finalInstance","getInstance","reset","setState","setOptions","updater","functionalUpdate","getRowId","_","index","parent","id","join","getState","state","onStateChange","getDefaultColumn","memo","defaultColumn","header","props","column","footer","cell","value","toString","debug","debugColumns","key","getColumnDefs","columns","createColumn","columnDef","depth","accessorKey","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","getWidth","getColumnWidth","getFlatColumns","flatMap","d","getLeafColumns","getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","warn","columnSize","columnSizing","Math","min","max","minWidth","width","maxWidth","createCell","row","rowId","getCellProps","userProps","renderCell","flexRender","forEach","createRow","original","rowIndex","values","subRows","leafRows","getRowProps","getAllCells","getAllCellsByColumnId","debugRows","allCells","i","getCoreRowModel","data","rows","flatRows","rowsById","accessRow","parentRows","push","getSubRows","originalSubRows","flattenBy","onChange","_notifyRowSelectionReset","_notifyFiltersReset","getRowModel","getPaginationRowModel","getRow","getCell","getTableProps","propGetter","role","getTableBodyProps","getTableWidth","getHeaderGroups","headers","sum","getLeftTableWidth","getLeftHeaderGroups","getCenterTableWidth","getCenterHeaderGroups","getRightTableWidth","getRightHeaderGroups"],"mappings":"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"}
@@ -14,7 +14,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
15
  var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
16
  var React = require('react');
17
- var shim = require('use-sync-external-store/shim');
18
17
  var core = require('./core.js');
19
18
 
20
19
  function _interopNamespace(e) {
@@ -37,32 +36,25 @@ function _interopNamespace(e) {
37
36
 
38
37
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
39
38
 
39
+ function createTableFactory(opts) {
40
+ return function () {
41
+ return _createTable(undefined, undefined, opts);
42
+ };
43
+ }
40
44
  function createTable() {
45
+ return _createTable();
46
+ }
47
+
48
+ function _createTable(_, __, opts) {
41
49
  return {
42
- RowType: function RowType() {
43
- return createTable();
44
- },
45
- FilterFns: function FilterFns() {
46
- return createTable();
47
- },
48
- SortingFns: function SortingFns() {
49
- return createTable();
50
- },
51
- AggregationFns: function AggregationFns() {
52
- return createTable();
53
- },
54
50
  createColumns: function createColumns(columns) {
55
51
  return columns;
56
52
  },
57
53
  createDisplayColumn: function createDisplayColumn(column) {
58
- return _rollupPluginBabelHelpers["extends"]({}, column, {
59
- __generated: true
60
- });
54
+ return column;
61
55
  },
62
56
  createGroup: function createGroup(column) {
63
- return _rollupPluginBabelHelpers["extends"]({}, column, {
64
- __generated: true
65
- });
57
+ return column;
66
58
  },
67
59
  createDataColumn: function createDataColumn(accessor, column) {
68
60
  column = _rollupPluginBabelHelpers["extends"]({}, column, {
@@ -74,35 +66,57 @@ function createTable() {
74
66
 
75
67
  return _rollupPluginBabelHelpers["extends"]({}, column, {
76
68
  id: (_column$id = column.id) != null ? _column$id : accessor,
77
- accessorKey: accessor,
78
- __generated: true
69
+ accessorKey: accessor
79
70
  });
80
71
  }
81
72
 
82
73
  if (typeof accessor === 'function') {
83
74
  return _rollupPluginBabelHelpers["extends"]({}, column, {
84
- accessorFn: accessor,
85
- __generated: true
75
+ accessorFn: accessor
86
76
  });
87
77
  }
88
78
 
89
79
  throw new Error('Invalid accessor');
90
80
  },
91
81
  useTable: function useTable(options) {
82
+ // Compose in the generic options to the user options
83
+ var resolvedOptions = _rollupPluginBabelHelpers["extends"]({}, opts != null ? opts : {}, {
84
+ state: {},
85
+ // Dummy state
86
+ onStateChange: function onStateChange() {}
87
+ }, options); // Create a new table instance and store it in state
88
+
89
+
92
90
  var _React$useState = React__namespace.useState(function () {
93
- return core.createTableInstance(options);
91
+ return core.createTableInstance(resolvedOptions);
94
92
  }),
95
- instance = _React$useState[0];
93
+ instance = _React$useState[0]; // By default, manage table state here using the instance's initial state
96
94
 
97
- shim.useSyncExternalStore(instance.subscribe, function () {
98
- return instance.internalState;
95
+
96
+ var _React$useState2 = React__namespace.useState(function () {
97
+ return instance.initialState;
98
+ }),
99
+ state = _React$useState2[0],
100
+ setState = _React$useState2[1]; // Compose the default state above with any user state. This will allow the user
101
+ // to only control a subset of the state if desired.
102
+
103
+
104
+ instance.setOptions(function (prev) {
105
+ return _rollupPluginBabelHelpers["extends"]({}, prev, options, {
106
+ state: _rollupPluginBabelHelpers["extends"]({}, state, options.state),
107
+ // Similarly, we'll maintain both our internal state and any user-provided
108
+ // state.
109
+ onStateChange: function onStateChange(updater) {
110
+ setState(updater);
111
+ options.onStateChange == null ? void 0 : options.onStateChange(updater);
112
+ }
113
+ });
99
114
  });
100
- instance.updateOptions(options);
101
115
  return instance;
102
- },
103
- types: undefined
116
+ }
104
117
  };
105
118
  }
106
119
 
107
120
  exports.createTable = createTable;
121
+ exports.createTableFactory = createTableFactory;
108
122
  //# sourceMappingURL=createTable.js.map