@tanstack/react-table 8.0.0-alpha.2 → 8.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/core.js +85 -52
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +11 -6
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +2 -16
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +23 -2
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +54 -5
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +23 -2
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +87 -24
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +4 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +198 -0
- package/build/cjs/features/Pagination.js.map +1 -0
- package/build/cjs/features/Pinning.js +0 -14
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +541 -0
- package/build/cjs/features/RowSelection.js.map +1 -0
- package/build/cjs/features/Sorting.js +76 -18
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +8 -2
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/index.js +2 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/sortTypes.js +1 -0
- package/build/cjs/sortTypes.js.map +1 -1
- package/build/cjs/utils/columnFilterRowsFn.js +3 -2
- package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/expandRowsFn.js +2 -2
- package/build/cjs/utils/expandRowsFn.js.map +1 -1
- package/build/cjs/utils/globalFilterRowsFn.js +3 -2
- package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/groupRowsFn.js +4 -3
- package/build/cjs/utils/groupRowsFn.js.map +1 -1
- package/build/cjs/utils/paginateRowsFn.js +44 -0
- package/build/cjs/utils/paginateRowsFn.js.map +1 -0
- package/build/cjs/utils/sortRowsFn.js +3 -2
- package/build/cjs/utils/sortRowsFn.js.map +1 -1
- package/build/cjs/utils.js +6 -3
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +2626 -1571
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +350 -248
- package/build/types/core.d.ts +10 -25
- package/build/types/createTable.d.ts +21 -4
- package/build/types/features/ColumnSizing.d.ts +4 -10
- package/build/types/features/Expanding.d.ts +2 -1
- package/build/types/features/Filters.d.ts +7 -2
- package/build/types/features/Grouping.d.ts +2 -2
- package/build/types/features/Ordering.d.ts +1 -1
- package/build/types/features/Pagination.d.ts +44 -0
- package/build/types/features/Pinning.d.ts +3 -3
- package/build/types/features/RowSelection.d.ts +66 -0
- package/build/types/features/Sorting.d.ts +5 -2
- package/build/types/index.d.ts +2 -1
- package/build/types/sortTypes.d.ts +1 -0
- package/build/types/types.d.ts +9 -6
- package/build/types/utils/columnFilterRowsFn.d.ts +2 -2
- package/build/types/utils/expandRowsFn.d.ts +2 -2
- package/build/types/utils/globalFilterRowsFn.d.ts +2 -2
- package/build/types/utils/groupRowsFn.d.ts +2 -2
- package/build/types/utils/paginateRowsFn.d.ts +2 -0
- package/build/types/utils/sortRowsFn.d.ts +2 -2
- package/build/types/utils.d.ts +5 -1
- package/build/umd/index.development.js +2626 -1570
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/core.tsx +222 -273
- package/src/createTable.tsx +69 -9
- package/src/features/ColumnSizing.ts +8 -37
- package/src/features/Expanding.ts +27 -11
- package/src/features/Filters.ts +74 -19
- package/src/features/Grouping.ts +27 -12
- package/src/features/Headers.ts +26 -58
- package/src/features/Ordering.ts +2 -3
- package/src/features/Pagination.ts +327 -0
- package/src/features/Pinning.ts +3 -16
- package/src/features/RowSelection.ts +831 -0
- package/src/features/Sorting.ts +82 -22
- package/src/features/Visibility.ts +2 -4
- package/src/index.tsx +2 -1
- package/src/sortTypes.ts +1 -1
- package/src/types.ts +25 -8
- package/src/utils/columnFilterRowsFn.ts +5 -12
- package/src/utils/expandRowsFn.ts +2 -5
- package/src/utils/globalFilterRowsFn.ts +3 -10
- package/src/utils/groupRowsFn.ts +3 -5
- package/src/utils/paginateRowsFn.ts +34 -0
- package/src/utils/sortRowsFn.ts +5 -5
- package/src/utils.tsx +12 -4
- package/src/features/withPagination.oldts +0 -208
- package/src/features/withRowSelection.oldts +0 -467
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-table",
|
|
3
3
|
"author": "Tanner Linsley",
|
|
4
|
-
"version": "8.0.0-alpha.
|
|
4
|
+
"version": "8.0.0-alpha.5",
|
|
5
5
|
"description": "Hooks for building lightweight, fast and extendable datagrids for React",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/tanstack/react-table#readme",
|
package/src/core.tsx
CHANGED
|
@@ -39,11 +39,23 @@ import * as Sorting from './features/Sorting'
|
|
|
39
39
|
import * as Grouping from './features/Grouping'
|
|
40
40
|
import * as Expanding from './features/Expanding'
|
|
41
41
|
import * as ColumnSizing from './features/ColumnSizing'
|
|
42
|
+
import * as Pagination from './features/Pagination'
|
|
43
|
+
import * as RowSelection from './features/RowSelection'
|
|
42
44
|
import { RowModel } from '.'
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
const features = [
|
|
47
|
+
Visibility,
|
|
48
|
+
Ordering,
|
|
49
|
+
Pinning,
|
|
50
|
+
Headers,
|
|
51
|
+
Filters,
|
|
52
|
+
Sorting,
|
|
53
|
+
Grouping,
|
|
54
|
+
Expanding,
|
|
55
|
+
ColumnSizing,
|
|
56
|
+
Pagination,
|
|
57
|
+
RowSelection,
|
|
58
|
+
]
|
|
47
59
|
|
|
48
60
|
export type CoreOptions<
|
|
49
61
|
TData,
|
|
@@ -67,6 +79,7 @@ export type CoreOptions<
|
|
|
67
79
|
parent?: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
68
80
|
) => string
|
|
69
81
|
onStateChange?: (newState: TableState) => void
|
|
82
|
+
autoResetAll?: boolean
|
|
70
83
|
}
|
|
71
84
|
|
|
72
85
|
export type TableCore<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =
|
|
@@ -261,93 +274,138 @@ export type CoreColumnDef<
|
|
|
261
274
|
TFilterFns,
|
|
262
275
|
TSortingFns,
|
|
263
276
|
TAggregationFns
|
|
264
|
-
> =
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
277
|
+
> = {
|
|
278
|
+
id: string
|
|
279
|
+
accessorKey?: string & keyof TData
|
|
280
|
+
accessorFn?: AccessorFn<TData>
|
|
281
|
+
header?:
|
|
282
|
+
| string
|
|
283
|
+
| Renderable<{
|
|
284
|
+
instance: ReactTable<
|
|
285
|
+
TData,
|
|
286
|
+
TValue,
|
|
287
|
+
TFilterFns,
|
|
288
|
+
TSortingFns,
|
|
289
|
+
TAggregationFns
|
|
290
|
+
>
|
|
291
|
+
header: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
292
|
+
column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
293
|
+
}>
|
|
294
|
+
} & // instance: ReactTable< // | Renderable<{ // | string // header?: // accessorKey?: never // id: string // accessorFn: AccessorFn<TData> // | {
|
|
295
|
+
// TData,
|
|
296
|
+
// TValue,
|
|
297
|
+
// TFilterFns,
|
|
298
|
+
// TSortingFns,
|
|
299
|
+
// TAggregationFns
|
|
300
|
+
// >
|
|
301
|
+
// header: Header<
|
|
302
|
+
// TData,
|
|
303
|
+
// TValue,
|
|
304
|
+
// TFilterFns,
|
|
305
|
+
// TSortingFns,
|
|
306
|
+
// TAggregationFns
|
|
307
|
+
// >
|
|
308
|
+
// column: Column<
|
|
309
|
+
// TData,
|
|
310
|
+
// TValue,
|
|
311
|
+
// TFilterFns,
|
|
312
|
+
// TSortingFns,
|
|
313
|
+
// TAggregationFns
|
|
314
|
+
// >
|
|
315
|
+
// }>
|
|
316
|
+
// }
|
|
317
|
+
// | {
|
|
318
|
+
// accessorKey: string & keyof TData
|
|
319
|
+
// id?: string
|
|
320
|
+
// accessorFn?: never
|
|
321
|
+
// header?:
|
|
322
|
+
// | string
|
|
323
|
+
// | Renderable<{
|
|
324
|
+
// instance: ReactTable<
|
|
325
|
+
// TData,
|
|
326
|
+
// TValue,
|
|
327
|
+
// TFilterFns,
|
|
328
|
+
// TSortingFns,
|
|
329
|
+
// TAggregationFns
|
|
330
|
+
// >
|
|
331
|
+
// header: Header<
|
|
332
|
+
// TData,
|
|
333
|
+
// TValue,
|
|
334
|
+
// TFilterFns,
|
|
335
|
+
// TSortingFns,
|
|
336
|
+
// TAggregationFns
|
|
337
|
+
// >
|
|
338
|
+
// column: Column<
|
|
339
|
+
// TData,
|
|
340
|
+
// TValue,
|
|
341
|
+
// TFilterFns,
|
|
342
|
+
// TSortingFns,
|
|
343
|
+
// TAggregationFns
|
|
344
|
+
// >
|
|
345
|
+
// }>
|
|
346
|
+
// }
|
|
347
|
+
// | {
|
|
348
|
+
// id: string
|
|
349
|
+
// accessorKey?: never
|
|
350
|
+
// accessorFn?: never
|
|
351
|
+
// header?:
|
|
352
|
+
// | string
|
|
353
|
+
// | Renderable<{
|
|
354
|
+
// instance: ReactTable<
|
|
355
|
+
// TData,
|
|
356
|
+
// TValue,
|
|
357
|
+
// TFilterFns,
|
|
358
|
+
// TSortingFns,
|
|
359
|
+
// TAggregationFns
|
|
360
|
+
// >
|
|
361
|
+
// header: Header<
|
|
362
|
+
// TData,
|
|
363
|
+
// TValue,
|
|
364
|
+
// TFilterFns,
|
|
365
|
+
// TSortingFns,
|
|
366
|
+
// TAggregationFns
|
|
367
|
+
// >
|
|
368
|
+
// column: Column<
|
|
369
|
+
// TData,
|
|
370
|
+
// TValue,
|
|
371
|
+
// TFilterFns,
|
|
372
|
+
// TSortingFns,
|
|
373
|
+
// TAggregationFns
|
|
374
|
+
// >
|
|
375
|
+
// }>
|
|
376
|
+
// }
|
|
377
|
+
// | {
|
|
378
|
+
// header: string
|
|
379
|
+
// id?: string
|
|
380
|
+
// accessorKey?: never
|
|
381
|
+
// accessorFn?: never
|
|
382
|
+
// }
|
|
383
|
+
{
|
|
341
384
|
__generated: true
|
|
342
385
|
width?: number
|
|
343
386
|
minWidth?: number
|
|
344
387
|
maxWidth?: number
|
|
345
388
|
columns?: ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]
|
|
346
389
|
footer?: Renderable<{
|
|
390
|
+
instance: ReactTable<
|
|
391
|
+
TData,
|
|
392
|
+
TValue,
|
|
393
|
+
TFilterFns,
|
|
394
|
+
TSortingFns,
|
|
395
|
+
TAggregationFns
|
|
396
|
+
>
|
|
347
397
|
header: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
348
398
|
column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
349
399
|
}>
|
|
350
400
|
cell?: Renderable<{
|
|
401
|
+
instance: ReactTable<
|
|
402
|
+
TData,
|
|
403
|
+
TValue,
|
|
404
|
+
TFilterFns,
|
|
405
|
+
TSortingFns,
|
|
406
|
+
TAggregationFns
|
|
407
|
+
>
|
|
408
|
+
row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
351
409
|
column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
352
410
|
cell: Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
353
411
|
value: TValue
|
|
@@ -407,16 +465,9 @@ export function createTableInstance<
|
|
|
407
465
|
TAggregationFns
|
|
408
466
|
>
|
|
409
467
|
|
|
410
|
-
const defaultOptions = {
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
...Pinning.getDefaultOptions(instance),
|
|
414
|
-
...Filters.getDefaultOptions(instance),
|
|
415
|
-
...Sorting.getDefaultOptions(instance),
|
|
416
|
-
...Grouping.getDefaultOptions(instance),
|
|
417
|
-
...Expanding.getDefaultOptions(instance),
|
|
418
|
-
...ColumnSizing.getDefaultOptions(instance),
|
|
419
|
-
}
|
|
468
|
+
const defaultOptions = features.reduce((obj, feature) => {
|
|
469
|
+
return Object.assign(obj, (feature as any).getDefaultOptions?.(instance))
|
|
470
|
+
}, {})
|
|
420
471
|
|
|
421
472
|
const defaultState = {}
|
|
422
473
|
|
|
@@ -431,16 +482,11 @@ export function createTableInstance<
|
|
|
431
482
|
instance.options = buildOptions(options)
|
|
432
483
|
|
|
433
484
|
const initialState = {
|
|
434
|
-
...
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
...Filters.getInitialState(),
|
|
438
|
-
...Sorting.getInitialState(),
|
|
439
|
-
...Grouping.getInitialState(),
|
|
440
|
-
...Expanding.getInitialState(),
|
|
441
|
-
...ColumnSizing.getInitialState(),
|
|
485
|
+
...features.reduce((obj, feature) => {
|
|
486
|
+
return Object.assign(obj, (feature as any).getInitialState?.())
|
|
487
|
+
}, {}),
|
|
442
488
|
...(options.initialState ?? {}),
|
|
443
|
-
}
|
|
489
|
+
} as TableState
|
|
444
490
|
|
|
445
491
|
const finalInstance: ReactTable<
|
|
446
492
|
TData,
|
|
@@ -450,15 +496,9 @@ export function createTableInstance<
|
|
|
450
496
|
TAggregationFns
|
|
451
497
|
> = {
|
|
452
498
|
...instance,
|
|
453
|
-
...
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
...Headers.getInstance(instance),
|
|
457
|
-
...Filters.getInstance(instance),
|
|
458
|
-
...Sorting.getInstance(instance),
|
|
459
|
-
...Grouping.getInstance(instance),
|
|
460
|
-
...Expanding.getInstance(instance),
|
|
461
|
-
...ColumnSizing.getInstance(instance),
|
|
499
|
+
...features.reduce((obj, feature) => {
|
|
500
|
+
return Object.assign(obj, (feature as any).getInstance?.(instance))
|
|
501
|
+
}, {}),
|
|
462
502
|
rerender,
|
|
463
503
|
initialState,
|
|
464
504
|
internalState: initialState,
|
|
@@ -476,19 +516,23 @@ export function createTableInstance<
|
|
|
476
516
|
) => `${parent ? [parent.id, index].join('.') : index}`,
|
|
477
517
|
|
|
478
518
|
getState: () => {
|
|
479
|
-
|
|
519
|
+
let state = {
|
|
480
520
|
...instance.internalState,
|
|
481
521
|
...instance.options.state,
|
|
482
522
|
}
|
|
523
|
+
|
|
524
|
+
return state
|
|
483
525
|
},
|
|
484
526
|
|
|
485
527
|
setState: (
|
|
486
528
|
updater: Updater<TableState>,
|
|
487
529
|
shouldRerender: boolean = true
|
|
488
530
|
) => {
|
|
489
|
-
const newState = functionalUpdate(updater, instance.internalState)
|
|
490
531
|
const onStateChange = instance.options.onStateChange
|
|
491
532
|
|
|
533
|
+
let internalState = instance.internalState
|
|
534
|
+
let newState = functionalUpdate(updater, internalState)
|
|
535
|
+
|
|
492
536
|
instance.internalState = newState
|
|
493
537
|
|
|
494
538
|
if (onStateChange) {
|
|
@@ -521,17 +565,15 @@ export function createTableInstance<
|
|
|
521
565
|
) => props.header.column.id,
|
|
522
566
|
cell: ({ value = '' }: { value: any }): JSX.Element =>
|
|
523
567
|
typeof value === 'boolean' ? value.toString() : value,
|
|
524
|
-
...
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
...Grouping.getDefaultColumn(),
|
|
568
|
+
...features.reduce((obj, feature) => {
|
|
569
|
+
return Object.assign(obj, (feature as any).getDefaultColumn?.())
|
|
570
|
+
}, {}),
|
|
528
571
|
...defaultColumn,
|
|
529
572
|
} as Partial<
|
|
530
573
|
ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
531
574
|
>
|
|
532
575
|
},
|
|
533
|
-
'getDefaultColumn'
|
|
534
|
-
instance.options.debug
|
|
576
|
+
{ debug: instance.options.debug, key: 'getDefaultColumn' }
|
|
535
577
|
),
|
|
536
578
|
|
|
537
579
|
getColumnDefs: () => instance.options.columns,
|
|
@@ -595,8 +637,10 @@ export function createTableInstance<
|
|
|
595
637
|
...column.columns?.flatMap(d => d.getFlatColumns()),
|
|
596
638
|
]
|
|
597
639
|
},
|
|
598
|
-
|
|
599
|
-
|
|
640
|
+
{
|
|
641
|
+
key: 'column.getFlatColumns',
|
|
642
|
+
debug: instance.options.debug,
|
|
643
|
+
}
|
|
600
644
|
),
|
|
601
645
|
getLeafColumns: memo(
|
|
602
646
|
() => [instance.getOrderColumnsFn()],
|
|
@@ -619,74 +663,19 @@ export function createTableInstance<
|
|
|
619
663
|
>,
|
|
620
664
|
]
|
|
621
665
|
},
|
|
622
|
-
|
|
623
|
-
|
|
666
|
+
{
|
|
667
|
+
key: 'column.getLeafColumns',
|
|
668
|
+
debug: instance.options.debug,
|
|
669
|
+
}
|
|
624
670
|
),
|
|
625
671
|
}
|
|
626
672
|
|
|
627
|
-
column =
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
TData,
|
|
632
|
-
TValue,
|
|
633
|
-
TFilterFns,
|
|
634
|
-
TSortingFns,
|
|
635
|
-
TAggregationFns
|
|
636
|
-
>,
|
|
637
|
-
instance
|
|
638
|
-
),
|
|
639
|
-
Pinning.createColumn(
|
|
640
|
-
column as Column<
|
|
641
|
-
TData,
|
|
642
|
-
TValue,
|
|
643
|
-
TFilterFns,
|
|
644
|
-
TSortingFns,
|
|
645
|
-
TAggregationFns
|
|
646
|
-
>,
|
|
647
|
-
instance
|
|
648
|
-
),
|
|
649
|
-
Filters.createColumn(
|
|
650
|
-
column as Column<
|
|
651
|
-
TData,
|
|
652
|
-
TValue,
|
|
653
|
-
TFilterFns,
|
|
654
|
-
TSortingFns,
|
|
655
|
-
TAggregationFns
|
|
656
|
-
>,
|
|
657
|
-
instance
|
|
658
|
-
),
|
|
659
|
-
Sorting.createColumn(
|
|
660
|
-
column as Column<
|
|
661
|
-
TData,
|
|
662
|
-
TValue,
|
|
663
|
-
TFilterFns,
|
|
664
|
-
TSortingFns,
|
|
665
|
-
TAggregationFns
|
|
666
|
-
>,
|
|
667
|
-
instance
|
|
668
|
-
),
|
|
669
|
-
Grouping.createColumn(
|
|
670
|
-
column as Column<
|
|
671
|
-
TData,
|
|
672
|
-
TValue,
|
|
673
|
-
TFilterFns,
|
|
674
|
-
TSortingFns,
|
|
675
|
-
TAggregationFns
|
|
676
|
-
>,
|
|
677
|
-
instance
|
|
678
|
-
),
|
|
679
|
-
ColumnSizing.createColumn(
|
|
680
|
-
column as Column<
|
|
681
|
-
TData,
|
|
682
|
-
TValue,
|
|
683
|
-
TFilterFns,
|
|
684
|
-
TSortingFns,
|
|
685
|
-
TAggregationFns
|
|
686
|
-
>,
|
|
687
|
-
instance
|
|
673
|
+
column = features.reduce((obj, feature) => {
|
|
674
|
+
return Object.assign(
|
|
675
|
+
obj,
|
|
676
|
+
(feature as any).createColumn?.(column, instance)
|
|
688
677
|
)
|
|
689
|
-
)
|
|
678
|
+
}, column)
|
|
690
679
|
|
|
691
680
|
// Yes, we have to convert instance to uknown, because we know more than the compiler here.
|
|
692
681
|
return column as Column<
|
|
@@ -740,8 +729,7 @@ export function createTableInstance<
|
|
|
740
729
|
|
|
741
730
|
return recurseColumns(columnDefs)
|
|
742
731
|
},
|
|
743
|
-
'getAllColumns',
|
|
744
|
-
instance.options.debug
|
|
732
|
+
{ key: 'getAllColumns', debug: instance.options.debug }
|
|
745
733
|
),
|
|
746
734
|
|
|
747
735
|
getAllFlatColumns: memo(
|
|
@@ -751,8 +739,7 @@ export function createTableInstance<
|
|
|
751
739
|
return column.getFlatColumns()
|
|
752
740
|
})
|
|
753
741
|
},
|
|
754
|
-
'getAllFlatColumns',
|
|
755
|
-
instance.options.debug
|
|
742
|
+
{ key: 'getAllFlatColumns', debug: instance.options.debug }
|
|
756
743
|
),
|
|
757
744
|
|
|
758
745
|
getAllFlatColumnsById: memo(
|
|
@@ -763,8 +750,7 @@ export function createTableInstance<
|
|
|
763
750
|
return acc
|
|
764
751
|
}, {} as Record<string, Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>>)
|
|
765
752
|
},
|
|
766
|
-
'getAllFlatColumnsById',
|
|
767
|
-
instance.options.debug
|
|
753
|
+
{ key: 'getAllFlatColumnsById', debug: instance.options.debug }
|
|
768
754
|
),
|
|
769
755
|
|
|
770
756
|
getAllLeafColumns: memo(
|
|
@@ -773,8 +759,7 @@ export function createTableInstance<
|
|
|
773
759
|
let leafColumns = allColumns.flatMap(column => column.getLeafColumns())
|
|
774
760
|
return orderColumns(leafColumns)
|
|
775
761
|
},
|
|
776
|
-
'getAllLeafColumns',
|
|
777
|
-
instance.options.debug
|
|
762
|
+
{ key: 'getAllLeafColumns', debug: instance.options.debug }
|
|
778
763
|
),
|
|
779
764
|
|
|
780
765
|
getColumn: columnId => {
|
|
@@ -826,24 +811,28 @@ export function createTableInstance<
|
|
|
826
811
|
value,
|
|
827
812
|
getCellProps: userProps =>
|
|
828
813
|
instance.getCellProps(row.id, column.id, userProps)!,
|
|
829
|
-
renderCell: () =>
|
|
814
|
+
renderCell: () =>
|
|
815
|
+
flexRender(column.cell, { instance, column, row, cell, value }),
|
|
830
816
|
}
|
|
831
817
|
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
cell
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
818
|
+
features.forEach(feature => {
|
|
819
|
+
Object.assign(
|
|
820
|
+
cell,
|
|
821
|
+
(feature as any).createCell?.(
|
|
822
|
+
cell as Cell<
|
|
823
|
+
TData,
|
|
824
|
+
TValue,
|
|
825
|
+
TFilterFns,
|
|
826
|
+
TSortingFns,
|
|
827
|
+
TAggregationFns
|
|
828
|
+
> &
|
|
829
|
+
Grouping.GroupingCell,
|
|
830
|
+
column,
|
|
831
|
+
row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,
|
|
832
|
+
instance
|
|
833
|
+
)
|
|
834
|
+
)
|
|
835
|
+
}, {})
|
|
847
836
|
|
|
848
837
|
return cell
|
|
849
838
|
},
|
|
@@ -885,8 +874,10 @@ export function createTableInstance<
|
|
|
885
874
|
)
|
|
886
875
|
})
|
|
887
876
|
},
|
|
888
|
-
|
|
889
|
-
|
|
877
|
+
{
|
|
878
|
+
key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',
|
|
879
|
+
debug: instance.options.debug,
|
|
880
|
+
}
|
|
890
881
|
)
|
|
891
882
|
|
|
892
883
|
row.getAllCellsByColumnId = memo(
|
|
@@ -897,25 +888,15 @@ export function createTableInstance<
|
|
|
897
888
|
return acc
|
|
898
889
|
}, {} as Record<string, Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>>)
|
|
899
890
|
},
|
|
900
|
-
|
|
901
|
-
|
|
891
|
+
{
|
|
892
|
+
key: 'row.getAllCellsByColumnId',
|
|
893
|
+
debug: instance.options.debug,
|
|
894
|
+
}
|
|
902
895
|
)
|
|
903
896
|
|
|
904
|
-
|
|
905
|
-
row,
|
|
906
|
-
|
|
907
|
-
row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,
|
|
908
|
-
instance
|
|
909
|
-
),
|
|
910
|
-
Grouping.createRow(
|
|
911
|
-
row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,
|
|
912
|
-
instance
|
|
913
|
-
),
|
|
914
|
-
Expanding.createRow(
|
|
915
|
-
row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,
|
|
916
|
-
instance
|
|
917
|
-
)
|
|
918
|
-
)
|
|
897
|
+
features.forEach(feature => {
|
|
898
|
+
Object.assign(row, (feature as any).createRow?.(row, instance))
|
|
899
|
+
})
|
|
919
900
|
|
|
920
901
|
return row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
921
902
|
},
|
|
@@ -935,50 +916,6 @@ export function createTableInstance<
|
|
|
935
916
|
if (process.env.NODE_ENV !== 'production' && instance.options.debug)
|
|
936
917
|
console.info('Accessing...')
|
|
937
918
|
|
|
938
|
-
// Auto-reset data-dependent states if configured
|
|
939
|
-
if (
|
|
940
|
-
instance.options.autoResetColumnFilters &&
|
|
941
|
-
// @ts-ignore
|
|
942
|
-
instance.getRowModelNonFirst
|
|
943
|
-
) {
|
|
944
|
-
instance.resetColumnFilters()
|
|
945
|
-
}
|
|
946
|
-
|
|
947
|
-
if (
|
|
948
|
-
instance.options.autoResetGlobalFilter &&
|
|
949
|
-
// @ts-ignore
|
|
950
|
-
instance.getRowModelNonFirst
|
|
951
|
-
) {
|
|
952
|
-
instance.resetGlobalFilter()
|
|
953
|
-
}
|
|
954
|
-
|
|
955
|
-
if (
|
|
956
|
-
instance.options.autoResetSorting &&
|
|
957
|
-
// @ts-ignore
|
|
958
|
-
instance.getRowModelNonFirst
|
|
959
|
-
) {
|
|
960
|
-
instance.resetSorting()
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
if (
|
|
964
|
-
instance.options.autoResetGrouping &&
|
|
965
|
-
// @ts-ignore
|
|
966
|
-
instance.getRowModelNonFirst
|
|
967
|
-
) {
|
|
968
|
-
instance.resetGrouping()
|
|
969
|
-
}
|
|
970
|
-
|
|
971
|
-
if (
|
|
972
|
-
instance.options.autoResetExpanded &&
|
|
973
|
-
// @ts-ignore
|
|
974
|
-
instance.getRowModelNonFirst
|
|
975
|
-
) {
|
|
976
|
-
instance.resetExpanded()
|
|
977
|
-
}
|
|
978
|
-
|
|
979
|
-
// @ts-ignore
|
|
980
|
-
instance.getRowModelNonFirst = true
|
|
981
|
-
|
|
982
919
|
// Access the row model using initial columns
|
|
983
920
|
const rows: Row<
|
|
984
921
|
TData,
|
|
@@ -1087,8 +1024,14 @@ export function createTableInstance<
|
|
|
1087
1024
|
|
|
1088
1025
|
return { rows, flatRows, rowsById }
|
|
1089
1026
|
},
|
|
1090
|
-
|
|
1091
|
-
|
|
1027
|
+
{
|
|
1028
|
+
key: 'getRowModel',
|
|
1029
|
+
debug: instance.options.debug,
|
|
1030
|
+
onChange: () => {
|
|
1031
|
+
instance._notifyRowSelectionReset()
|
|
1032
|
+
instance._notifyFiltersReset()
|
|
1033
|
+
},
|
|
1034
|
+
}
|
|
1092
1035
|
),
|
|
1093
1036
|
|
|
1094
1037
|
// The standard
|
|
@@ -1109,7 +1052,7 @@ export function createTableInstance<
|
|
|
1109
1052
|
// expanded rows, which then work their way up
|
|
1110
1053
|
|
|
1111
1054
|
getRowModel: () => {
|
|
1112
|
-
return instance.
|
|
1055
|
+
return instance.getPaginationRowModel()
|
|
1113
1056
|
},
|
|
1114
1057
|
|
|
1115
1058
|
getRows: () => {
|
|
@@ -1228,5 +1171,11 @@ export function createTableInstance<
|
|
|
1228
1171
|
}, 0) ?? 0,
|
|
1229
1172
|
}
|
|
1230
1173
|
|
|
1231
|
-
|
|
1174
|
+
instance = Object.assign(instance, finalInstance)
|
|
1175
|
+
|
|
1176
|
+
// This won't trigger a rerender yet, but it will force
|
|
1177
|
+
// pagination derivation to run (particularly pageSize detection)
|
|
1178
|
+
instance.setPagination(d => d)
|
|
1179
|
+
|
|
1180
|
+
return instance
|
|
1232
1181
|
}
|