@tanstack/table-core 8.0.0-alpha.22 → 8.0.0-alpha.25

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 (85) hide show
  1. package/build/cjs/aggregationTypes.js +21 -19
  2. package/build/cjs/aggregationTypes.js.map +1 -1
  3. package/build/cjs/core.js +17 -29
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js +2 -2
  6. package/build/cjs/createTable.js.map +1 -1
  7. package/build/cjs/features/ColumnSizing.js +23 -8
  8. package/build/cjs/features/ColumnSizing.js.map +1 -1
  9. package/build/cjs/features/Expanding.js +1 -8
  10. package/build/cjs/features/Expanding.js.map +1 -1
  11. package/build/cjs/features/Filters.js +1 -1
  12. package/build/cjs/features/Filters.js.map +1 -1
  13. package/build/cjs/features/Grouping.js +1 -1
  14. package/build/cjs/features/Grouping.js.map +1 -1
  15. package/build/cjs/features/Headers.js.map +1 -1
  16. package/build/cjs/features/Ordering.js.map +1 -1
  17. package/build/cjs/features/Pagination.js.map +1 -1
  18. package/build/cjs/features/Pinning.js.map +1 -1
  19. package/build/cjs/features/RowSelection.js +3 -3
  20. package/build/cjs/features/RowSelection.js.map +1 -1
  21. package/build/cjs/features/Sorting.js.map +1 -1
  22. package/build/cjs/features/Visibility.js.map +1 -1
  23. package/build/cjs/filterTypes.js.map +1 -1
  24. package/build/cjs/sortTypes.js.map +1 -1
  25. package/build/cjs/utils/columnFilterRowsFn.js +20 -78
  26. package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
  27. package/build/cjs/utils/filterRowsUtils.js +100 -0
  28. package/build/cjs/utils/filterRowsUtils.js.map +1 -0
  29. package/build/cjs/utils/globalFilterRowsFn.js +10 -62
  30. package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
  31. package/build/cjs/utils/groupRowsFn.js +15 -15
  32. package/build/cjs/utils/groupRowsFn.js.map +1 -1
  33. package/build/cjs/utils/sortRowsFn.js +1 -1
  34. package/build/cjs/utils/sortRowsFn.js.map +1 -1
  35. package/build/esm/index.js +2587 -2620
  36. package/build/esm/index.js.map +1 -1
  37. package/build/stats-html.html +1 -1
  38. package/build/stats-react.json +368 -335
  39. package/build/types/aggregationTypes.d.ts +9 -9
  40. package/build/types/core.d.ts +8 -13
  41. package/build/types/createTable.d.ts +4 -4
  42. package/build/types/features/ColumnSizing.d.ts +13 -8
  43. package/build/types/features/Expanding.d.ts +6 -6
  44. package/build/types/features/Filters.d.ts +15 -15
  45. package/build/types/features/Grouping.d.ts +16 -16
  46. package/build/types/features/Headers.d.ts +6 -6
  47. package/build/types/features/Ordering.d.ts +4 -4
  48. package/build/types/features/Pagination.d.ts +5 -5
  49. package/build/types/features/Pinning.d.ts +5 -5
  50. package/build/types/features/RowSelection.d.ts +8 -8
  51. package/build/types/features/Sorting.d.ts +12 -12
  52. package/build/types/features/Visibility.d.ts +6 -6
  53. package/build/types/filterTypes.d.ts +10 -10
  54. package/build/types/sortTypes.d.ts +7 -7
  55. package/build/types/types.d.ts +22 -13
  56. package/build/types/utils/filterRowsUtils.d.ts +3 -0
  57. package/build/types/utils/sortRowsQuicksortFn.d.ts +11 -0
  58. package/build/umd/index.development.js +2587 -2620
  59. package/build/umd/index.development.js.map +1 -1
  60. package/build/umd/index.production.js +1 -1
  61. package/build/umd/index.production.js.map +1 -1
  62. package/package.json +1 -1
  63. package/src/aggregationTypes.ts +23 -19
  64. package/src/core.tsx +29 -55
  65. package/src/createTable.tsx +17 -11
  66. package/src/features/ColumnSizing.ts +31 -7
  67. package/src/features/Expanding.ts +7 -15
  68. package/src/features/Filters.ts +15 -15
  69. package/src/features/Grouping.ts +19 -19
  70. package/src/features/Headers.ts +5 -5
  71. package/src/features/Ordering.ts +3 -3
  72. package/src/features/Pagination.ts +4 -4
  73. package/src/features/Pinning.ts +4 -4
  74. package/src/features/RowSelection.ts +9 -11
  75. package/src/features/Sorting.ts +11 -11
  76. package/src/features/Visibility.ts +5 -5
  77. package/src/filterTypes.ts +9 -9
  78. package/src/sortTypes.ts +6 -6
  79. package/src/types.ts +34 -25
  80. package/src/utils/columnFilterRowsFn.ts +12 -73
  81. package/src/utils/filterRowsUtils.ts +107 -0
  82. package/src/utils/globalFilterRowsFn.ts +10 -66
  83. package/src/utils/groupRowsFn.ts +15 -17
  84. package/src/utils/sortRowsFn.ts +6 -8
  85. package/src/utils/sortRowsQuicksortFn.ts +174 -0
@@ -24,17 +24,17 @@ export type ColumnFilter = {
24
24
 
25
25
  export type ColumnFiltersState = ColumnFilter[]
26
26
 
27
- export type FilterFn<TGenerics extends PartialGenerics> = {
27
+ export type FilterFn<TGenerics extends AnyGenerics> = {
28
28
  (rows: Row<TGenerics>[], columnIds: string[], filterValue: any): any
29
29
  autoRemove?: ColumnFilterAutoRemoveTestFn<TGenerics>
30
30
  }
31
31
 
32
- export type ColumnFilterAutoRemoveTestFn<TGenerics extends PartialGenerics> = (
32
+ export type ColumnFilterAutoRemoveTestFn<TGenerics extends AnyGenerics> = (
33
33
  value: unknown,
34
34
  column?: Column<TGenerics>
35
35
  ) => boolean
36
36
 
37
- export type CustomFilterTypes<TGenerics extends PartialGenerics> = Record<
37
+ export type CustomFilterTypes<TGenerics extends AnyGenerics> = Record<
38
38
  string,
39
39
  FilterFn<TGenerics>
40
40
  >
@@ -44,13 +44,13 @@ export type FiltersTableState = {
44
44
  globalFilter: any
45
45
  }
46
46
 
47
- export type FilterType<TGenerics extends PartialGenerics> =
47
+ export type FilterType<TGenerics extends AnyGenerics> =
48
48
  | 'auto'
49
49
  | BuiltInFilterType
50
50
  | TGenerics['FilterFns']
51
51
  | FilterFn<TGenerics>
52
52
 
53
- export type FiltersColumnDef<TGenerics extends PartialGenerics> = {
53
+ export type FiltersColumnDef<TGenerics extends AnyGenerics> = {
54
54
  filterType?: FilterType<Overwrite<TGenerics, { Value: any }>>
55
55
  enableAllFilters?: boolean
56
56
  enableColumnFilter?: boolean
@@ -60,7 +60,7 @@ export type FiltersColumnDef<TGenerics extends PartialGenerics> = {
60
60
  defaultCanGlobalFilter?: boolean
61
61
  }
62
62
 
63
- export type FiltersColumn<TGenerics extends PartialGenerics> = {
63
+ export type FiltersColumn<TGenerics extends AnyGenerics> = {
64
64
  filterType: FilterType<Overwrite<TGenerics, { Value: any }>>
65
65
  getCanColumnFilter: () => boolean
66
66
  getCanGlobalFilter: () => boolean
@@ -73,8 +73,8 @@ export type FiltersColumn<TGenerics extends PartialGenerics> = {
73
73
  getPreFilteredMinMaxValues: () => [any, any]
74
74
  }
75
75
 
76
- export type FiltersOptions<TGenerics extends PartialGenerics> = {
77
- filterFromChildrenUp?: boolean
76
+ export type FiltersOptions<TGenerics extends AnyGenerics> = {
77
+ filterFromLeafRows?: boolean
78
78
  filterTypes?: TGenerics['FilterFns']
79
79
  enableFilters?: boolean
80
80
  // Column
@@ -98,7 +98,7 @@ export type FiltersOptions<TGenerics extends PartialGenerics> = {
98
98
  getColumnCanGlobalFilterFn?: (column: Column<TGenerics>) => boolean
99
99
  }
100
100
 
101
- export type FiltersInstance<TGenerics extends PartialGenerics> = {
101
+ export type FiltersInstance<TGenerics extends AnyGenerics> = {
102
102
  _notifyFiltersReset: () => void
103
103
  getColumnAutoFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined
104
104
 
@@ -135,7 +135,7 @@ export type FiltersInstance<TGenerics extends PartialGenerics> = {
135
135
 
136
136
  export const Filters = {
137
137
  getDefaultColumn: <
138
- TGenerics extends PartialGenerics
138
+ TGenerics extends AnyGenerics
139
139
  >(): FiltersColumnDef<TGenerics> => {
140
140
  return {
141
141
  filterType: 'auto',
@@ -149,14 +149,14 @@ export const Filters = {
149
149
  }
150
150
  },
151
151
 
152
- getDefaultOptions: <TGenerics extends PartialGenerics>(
152
+ getDefaultOptions: <TGenerics extends AnyGenerics>(
153
153
  instance: TableInstance<TGenerics>
154
154
  ): FiltersOptions<TGenerics> => {
155
155
  return {
156
156
  onColumnFiltersChange: makeStateUpdater('columnFilters', instance),
157
157
  onGlobalFilterChange: makeStateUpdater('globalFilter', instance),
158
158
  autoResetColumnFilters: true,
159
- filterFromChildrenUp: true,
159
+ filterFromLeafRows: true,
160
160
  autoResetGlobalFilter: true,
161
161
  globalFilterType: 'auto',
162
162
  getColumnCanGlobalFilterFn: column => {
@@ -169,7 +169,7 @@ export const Filters = {
169
169
  }
170
170
  },
171
171
 
172
- createColumn: <TGenerics extends PartialGenerics>(
172
+ createColumn: <TGenerics extends AnyGenerics>(
173
173
  column: Column<TGenerics>,
174
174
  instance: TableInstance<TGenerics>
175
175
  ): FiltersColumn<TGenerics> => {
@@ -228,7 +228,7 @@ export const Filters = {
228
228
  }
229
229
  },
230
230
 
231
- getInstance: <TGenerics extends PartialGenerics>(
231
+ getInstance: <TGenerics extends AnyGenerics>(
232
232
  instance: TableInstance<TGenerics>
233
233
  ): FiltersInstance<TGenerics> => {
234
234
  let registered = false
@@ -553,7 +553,7 @@ export const Filters = {
553
553
  },
554
554
  }
555
555
 
556
- export function shouldAutoRemoveFilter<TGenerics extends PartialGenerics>(
556
+ export function shouldAutoRemoveFilter<TGenerics extends AnyGenerics>(
557
557
  filterFn?: FilterFn<TGenerics>,
558
558
  value?: any,
559
559
  column?: Column<TGenerics>
@@ -9,10 +9,10 @@ import {
9
9
  TableInstance,
10
10
  Row,
11
11
  Updater,
12
- AnyGenerics,
13
12
  PartialGenerics,
14
13
  Renderable,
15
14
  UseRenderer,
15
+ AnyGenerics,
16
16
  } from '../types'
17
17
  import {
18
18
  functionalUpdate,
@@ -25,17 +25,17 @@ import {
25
25
 
26
26
  export type GroupingState = string[]
27
27
 
28
- export type AggregationFn<TGenerics extends PartialGenerics> = (
29
- leafValues: TGenerics['Row'][],
30
- childValues: TGenerics['Row'][]
28
+ export type AggregationFn<TGenerics extends AnyGenerics> = (
29
+ getLeafValues: () => TGenerics['Row'][],
30
+ getChildValues: () => TGenerics['Row'][]
31
31
  ) => any
32
32
 
33
- export type CustomAggregationTypes<TGenerics extends PartialGenerics> = Record<
33
+ export type CustomAggregationTypes<TGenerics extends AnyGenerics> = Record<
34
34
  string,
35
35
  AggregationFn<TGenerics>
36
36
  >
37
37
 
38
- export type AggregationType<TGenerics extends PartialGenerics> =
38
+ export type AggregationType<TGenerics extends AnyGenerics> =
39
39
  | 'auto'
40
40
  | BuiltInAggregationType
41
41
  | keyof TGenerics['AggregationFns']
@@ -45,7 +45,7 @@ export type GroupingTableState = {
45
45
  grouping: GroupingState
46
46
  }
47
47
 
48
- export type GroupingColumnDef<TGenerics extends PartialGenerics> = {
48
+ export type GroupingColumnDef<TGenerics extends AnyGenerics> = {
49
49
  aggregationType?: AggregationType<Overwrite<TGenerics, { Value: any }>>
50
50
  aggregateValue?: (columnValue: unknown) => any
51
51
  aggregatedCell?: Renderable<
@@ -62,7 +62,7 @@ export type GroupingColumnDef<TGenerics extends PartialGenerics> = {
62
62
  defaultCanGroup?: boolean
63
63
  }
64
64
 
65
- export type GroupingColumn<TGenerics extends PartialGenerics> = {
65
+ export type GroupingColumn<TGenerics extends AnyGenerics> = {
66
66
  aggregationType?: AggregationType<Overwrite<TGenerics, { Value: any }>>
67
67
  getCanGroup: () => boolean
68
68
  getIsGrouped: () => boolean
@@ -79,7 +79,7 @@ export type GroupingRow = {
79
79
  getIsGrouped: () => boolean
80
80
  }
81
81
 
82
- export type GroupingCell<TGenerics extends PartialGenerics> = {
82
+ export type GroupingCell<TGenerics extends AnyGenerics> = {
83
83
  getIsGrouped: () => boolean
84
84
  getIsPlaceholder: () => boolean
85
85
  getIsAggregated: () => boolean
@@ -93,7 +93,7 @@ export type ColumnDefaultOptions = {
93
93
  enableGrouping: boolean
94
94
  }
95
95
 
96
- export type GroupingOptions<TGenerics extends PartialGenerics> = {
96
+ export type GroupingOptions<TGenerics extends AnyGenerics> = {
97
97
  aggregationTypes?: TGenerics['AggregationFns']
98
98
  onGroupingChange?: OnChangeFn<GroupingState>
99
99
  autoResetGrouping?: boolean
@@ -114,7 +114,7 @@ export type ToggleGroupingProps = {
114
114
  onClick?: (event: MouseEvent | TouchEvent) => void
115
115
  }
116
116
 
117
- export type GroupingInstance<TGenerics extends PartialGenerics> = {
117
+ export type GroupingInstance<TGenerics extends AnyGenerics> = {
118
118
  _notifyGroupingReset: () => void
119
119
  getColumnAutoAggregationFn: (
120
120
  columnId: string
@@ -141,7 +141,7 @@ export type GroupingInstance<TGenerics extends PartialGenerics> = {
141
141
 
142
142
  export const Grouping = {
143
143
  getDefaultColumn: <
144
- TGenerics extends PartialGenerics
144
+ TGenerics extends AnyGenerics
145
145
  >(): GroupingColumnDef<TGenerics> => {
146
146
  return {
147
147
  aggregationType: 'auto',
@@ -154,7 +154,7 @@ export const Grouping = {
154
154
  }
155
155
  },
156
156
 
157
- getDefaultOptions: <TGenerics extends PartialGenerics>(
157
+ getDefaultOptions: <TGenerics extends AnyGenerics>(
158
158
  instance: TableInstance<TGenerics>
159
159
  ): GroupingOptions<TGenerics> => {
160
160
  return {
@@ -164,7 +164,7 @@ export const Grouping = {
164
164
  }
165
165
  },
166
166
 
167
- createColumn: <TGenerics extends PartialGenerics>(
167
+ createColumn: <TGenerics extends AnyGenerics>(
168
168
  column: Column<TGenerics>,
169
169
  instance: TableInstance<TGenerics>
170
170
  ): GroupingColumn<TGenerics> => {
@@ -179,7 +179,7 @@ export const Grouping = {
179
179
  }
180
180
  },
181
181
 
182
- getInstance: <TGenerics extends PartialGenerics>(
182
+ getInstance: <TGenerics extends AnyGenerics>(
183
183
  instance: TableInstance<TGenerics>
184
184
  ): GroupingInstance<TGenerics> => {
185
185
  let registered = false
@@ -228,7 +228,7 @@ export const Grouping = {
228
228
  return isFunction(column.aggregationType)
229
229
  ? column.aggregationType
230
230
  : column.aggregationType === 'auto'
231
- ? instance.getColumnAutoFilterFn(columnId)
231
+ ? instance.getColumnAutoAggregationFn(columnId)
232
232
  : (userAggregationTypes as Record<string, any>)?.[
233
233
  column.aggregationType as string
234
234
  ] ??
@@ -322,7 +322,7 @@ export const Grouping = {
322
322
  }
323
323
  },
324
324
 
325
- createRow: <TGenerics extends PartialGenerics>(
325
+ createRow: <TGenerics extends AnyGenerics>(
326
326
  row: Row<TGenerics>,
327
327
  instance: TableInstance<TGenerics>
328
328
  ): GroupingRow => {
@@ -331,7 +331,7 @@ export const Grouping = {
331
331
  }
332
332
  },
333
333
 
334
- createCell: <TGenerics extends PartialGenerics>(
334
+ createCell: <TGenerics extends AnyGenerics>(
335
335
  cell: Cell<TGenerics>,
336
336
  column: Column<TGenerics>,
337
337
  row: Row<TGenerics>,
@@ -361,7 +361,7 @@ export const Grouping = {
361
361
  }
362
362
  },
363
363
 
364
- orderColumns: <TGenerics extends PartialGenerics>(
364
+ orderColumns: <TGenerics extends AnyGenerics>(
365
365
  leafColumns: Column<TGenerics>[],
366
366
  grouping: string[],
367
367
  groupedColumnMode?: GroupingColumnMode
@@ -18,7 +18,7 @@ import {
18
18
  import { propGetter, memo } from '../utils'
19
19
  import { ColumnSizing } from './ColumnSizing'
20
20
 
21
- export type HeadersRow<TGenerics extends PartialGenerics> = {
21
+ export type HeadersRow<TGenerics extends AnyGenerics> = {
22
22
  _getAllVisibleCells: () => Cell<TGenerics>[]
23
23
  getVisibleCells: () => Cell<TGenerics>[]
24
24
  getLeftVisibleCells: () => Cell<TGenerics>[]
@@ -26,7 +26,7 @@ export type HeadersRow<TGenerics extends PartialGenerics> = {
26
26
  getRightVisibleCells: () => Cell<TGenerics>[]
27
27
  }
28
28
 
29
- export type HeadersInstance<TGenerics extends PartialGenerics> = {
29
+ export type HeadersInstance<TGenerics extends AnyGenerics> = {
30
30
  createHeader: (
31
31
  column: Column<TGenerics>,
32
32
  options: {
@@ -80,7 +80,7 @@ export type HeadersInstance<TGenerics extends PartialGenerics> = {
80
80
  //
81
81
 
82
82
  export const Headers = {
83
- createRow: <TGenerics extends PartialGenerics>(
83
+ createRow: <TGenerics extends AnyGenerics>(
84
84
  row: Row<TGenerics>,
85
85
  instance: TableInstance<TGenerics>
86
86
  ): HeadersRow<TGenerics> => {
@@ -167,7 +167,7 @@ export const Headers = {
167
167
  }
168
168
  },
169
169
 
170
- getInstance: <TGenerics extends PartialGenerics>(
170
+ getInstance: <TGenerics extends AnyGenerics>(
171
171
  instance: TableInstance<TGenerics>
172
172
  ): HeadersInstance<TGenerics> => {
173
173
  return {
@@ -607,7 +607,7 @@ export const Headers = {
607
607
  },
608
608
  }
609
609
 
610
- export function buildHeaderGroups<TGenerics extends PartialGenerics>(
610
+ export function buildHeaderGroups<TGenerics extends AnyGenerics>(
611
611
  allColumns: Column<TGenerics>[],
612
612
  columnsToGroup: Column<TGenerics>[],
613
613
  instance: TableInstance<TGenerics>,
@@ -25,7 +25,7 @@ export type ColumnOrderDefaultOptions = {
25
25
  onColumnOrderChange: OnChangeFn<ColumnOrderState>
26
26
  }
27
27
 
28
- export type ColumnOrderInstance<TGenerics extends PartialGenerics> = {
28
+ export type ColumnOrderInstance<TGenerics extends AnyGenerics> = {
29
29
  setColumnOrder: (updater: Updater<ColumnOrderState>) => void
30
30
  resetColumnOrder: () => void
31
31
  getOrderColumnsFn: () => (columns: Column<TGenerics>[]) => Column<TGenerics>[]
@@ -40,7 +40,7 @@ export const Ordering = {
40
40
  }
41
41
  },
42
42
 
43
- getDefaultOptions: <TGenerics extends PartialGenerics>(
43
+ getDefaultOptions: <TGenerics extends AnyGenerics>(
44
44
  instance: TableInstance<TGenerics>
45
45
  ): ColumnOrderDefaultOptions => {
46
46
  return {
@@ -48,7 +48,7 @@ export const Ordering = {
48
48
  }
49
49
  },
50
50
 
51
- getInstance: <TGenerics extends PartialGenerics>(
51
+ getInstance: <TGenerics extends AnyGenerics>(
52
52
  instance: TableInstance<TGenerics>
53
53
  ): ColumnOrderInstance<TGenerics> => {
54
54
  return {
@@ -18,7 +18,7 @@ export type PaginationTableState = {
18
18
  pagination: PaginationState
19
19
  }
20
20
 
21
- export type PaginationOptions<TGenerics extends PartialGenerics> = {
21
+ export type PaginationOptions<TGenerics extends AnyGenerics> = {
22
22
  onPaginationChange?: OnChangeFn<PaginationState>
23
23
  autoResetPageIndex?: boolean
24
24
  paginateRowsFn?: (
@@ -32,7 +32,7 @@ export type PaginationDefaultOptions = {
32
32
  autoResetPageIndex: boolean
33
33
  }
34
34
 
35
- export type PaginationInstance<TGenerics extends PartialGenerics> = {
35
+ export type PaginationInstance<TGenerics extends AnyGenerics> = {
36
36
  _notifyPageIndexReset: () => void
37
37
  setPagination: (updater: Updater<PaginationState>) => void
38
38
  resetPagination: () => void
@@ -64,7 +64,7 @@ export const Pagination = {
64
64
  }
65
65
  },
66
66
 
67
- getDefaultOptions: <TGenerics extends PartialGenerics>(
67
+ getDefaultOptions: <TGenerics extends AnyGenerics>(
68
68
  instance: TableInstance<TGenerics>
69
69
  ): PaginationDefaultOptions => {
70
70
  return {
@@ -73,7 +73,7 @@ export const Pagination = {
73
73
  }
74
74
  },
75
75
 
76
- getInstance: <TGenerics extends PartialGenerics>(
76
+ getInstance: <TGenerics extends AnyGenerics>(
77
77
  instance: TableInstance<TGenerics>
78
78
  ): PaginationInstance<TGenerics> => {
79
79
  let registered = false
@@ -40,7 +40,7 @@ export type ColumnPinningColumn = {
40
40
  pin: (position: ColumnPinningPosition) => void
41
41
  }
42
42
 
43
- export type ColumnPinningInstance<TGenerics extends PartialGenerics> = {
43
+ export type ColumnPinningInstance<TGenerics extends AnyGenerics> = {
44
44
  setColumnPinning: (updater: Updater<ColumnPinningState>) => void
45
45
  resetColumnPinning: () => void
46
46
  pinColumn: (columnId: string, position: ColumnPinningPosition) => void
@@ -62,7 +62,7 @@ export const Pinning = {
62
62
  }
63
63
  },
64
64
 
65
- getDefaultOptions: <TGenerics extends PartialGenerics>(
65
+ getDefaultOptions: <TGenerics extends AnyGenerics>(
66
66
  instance: TableInstance<TGenerics>
67
67
  ): ColumnPinningDefaultOptions => {
68
68
  return {
@@ -70,7 +70,7 @@ export const Pinning = {
70
70
  }
71
71
  },
72
72
 
73
- createColumn: <TGenerics extends PartialGenerics>(
73
+ createColumn: <TGenerics extends AnyGenerics>(
74
74
  column: Column<TGenerics>,
75
75
  instance: TableInstance<TGenerics>
76
76
  ): ColumnPinningColumn => {
@@ -82,7 +82,7 @@ export const Pinning = {
82
82
  }
83
83
  },
84
84
 
85
- getInstance: <TGenerics extends PartialGenerics>(
85
+ getInstance: <TGenerics extends AnyGenerics>(
86
86
  instance: TableInstance<TGenerics>
87
87
  ): ColumnPinningInstance<TGenerics> => {
88
88
  return {
@@ -17,7 +17,7 @@ export type RowSelectionTableState = {
17
17
  rowSelection: RowSelectionState
18
18
  }
19
19
 
20
- export type RowSelectionOptions<TGenerics extends PartialGenerics> = {
20
+ export type RowSelectionOptions<TGenerics extends AnyGenerics> = {
21
21
  onRowSelectionChange?: OnChangeFn<RowSelectionState>
22
22
  autoResetRowSelection?: boolean
23
23
  enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)
@@ -60,7 +60,7 @@ export type RowSelectionRow = {
60
60
  ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>
61
61
  }
62
62
 
63
- export type RowSelectionInstance<TGenerics extends PartialGenerics> = {
63
+ export type RowSelectionInstance<TGenerics extends AnyGenerics> = {
64
64
  _notifyRowSelectionReset: () => void
65
65
  getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(
66
66
  rowId: string,
@@ -106,7 +106,7 @@ export const RowSelection = {
106
106
  }
107
107
  },
108
108
 
109
- getDefaultOptions: <TGenerics extends PartialGenerics>(
109
+ getDefaultOptions: <TGenerics extends AnyGenerics>(
110
110
  instance: TableInstance<TGenerics>
111
111
  ): RowSelectionOptions<TGenerics> => {
112
112
  return {
@@ -121,7 +121,7 @@ export const RowSelection = {
121
121
  }
122
122
  },
123
123
 
124
- getInstance: <TGenerics extends PartialGenerics>(
124
+ getInstance: <TGenerics extends AnyGenerics>(
125
125
  instance: TableInstance<TGenerics>
126
126
  ): RowSelectionInstance<TGenerics> => {
127
127
  let registered = false
@@ -160,9 +160,7 @@ export const RowSelection = {
160
160
  ? value
161
161
  : !instance.getIsAllRowsSelected()
162
162
 
163
- // Only remove/add the rows that are visible on the screen
164
- // Leave all the other rows that are selected alone.
165
- const rowSelection = Object.assign({}, old)
163
+ const rowSelection = { ...old }
166
164
 
167
165
  const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows
168
166
 
@@ -537,7 +535,7 @@ export const RowSelection = {
537
535
  }
538
536
  },
539
537
 
540
- createRow: <TGenerics extends PartialGenerics>(
538
+ createRow: <TGenerics extends AnyGenerics>(
541
539
  row: Row<TGenerics>,
542
540
  instance: TableInstance<TGenerics>
543
541
  ): RowSelectionRow => {
@@ -553,7 +551,7 @@ export const RowSelection = {
553
551
  },
554
552
  }
555
553
 
556
- const mutateRowIsSelected = <TGenerics extends PartialGenerics>(
554
+ const mutateRowIsSelected = <TGenerics extends AnyGenerics>(
557
555
  selectedRowIds: Record<string, boolean>,
558
556
  id: string,
559
557
  value: boolean,
@@ -581,7 +579,7 @@ const mutateRowIsSelected = <TGenerics extends PartialGenerics>(
581
579
  }
582
580
  }
583
581
 
584
- export function selectRowsFn<TGenerics extends PartialGenerics>(
582
+ export function selectRowsFn<TGenerics extends AnyGenerics>(
585
583
  instance: TableInstance<TGenerics>,
586
584
  rowModel: RowModel<TGenerics>
587
585
  ): RowModel<TGenerics> {
@@ -622,7 +620,7 @@ export function selectRowsFn<TGenerics extends PartialGenerics>(
622
620
  }
623
621
  }
624
622
 
625
- export function isRowSelected<TGenerics extends PartialGenerics>(
623
+ export function isRowSelected<TGenerics extends AnyGenerics>(
626
624
  row: Row<TGenerics>,
627
625
  selection: Record<string, boolean>,
628
626
  instance: TableInstance<TGenerics>
@@ -33,11 +33,11 @@ export type ColumnSort = {
33
33
 
34
34
  export type SortingState = ColumnSort[]
35
35
 
36
- export type SortingFn<TGenerics extends PartialGenerics> = {
36
+ export type SortingFn<TGenerics extends AnyGenerics> = {
37
37
  (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number
38
38
  }
39
39
 
40
- export type CustomSortingTypes<TGenerics extends PartialGenerics> = Record<
40
+ export type CustomSortingTypes<TGenerics extends AnyGenerics> = Record<
41
41
  string,
42
42
  SortingFn<TGenerics>
43
43
  >
@@ -46,13 +46,13 @@ export type SortingTableState = {
46
46
  sorting: SortingState
47
47
  }
48
48
 
49
- export type SortType<TGenerics extends PartialGenerics> =
49
+ export type SortType<TGenerics extends AnyGenerics> =
50
50
  | 'auto'
51
51
  | BuiltInSortType
52
52
  | keyof TGenerics['SortingFns']
53
53
  | SortingFn<TGenerics>
54
54
 
55
- export type SortingColumnDef<TGenerics extends PartialGenerics> = {
55
+ export type SortingColumnDef<TGenerics extends AnyGenerics> = {
56
56
  sortType?: SortType<Overwrite<TGenerics, { Value: any }>>
57
57
  sortDescFirst?: boolean
58
58
  enableSorting?: boolean
@@ -62,7 +62,7 @@ export type SortingColumnDef<TGenerics extends PartialGenerics> = {
62
62
  sortUndefined?: false | -1 | 1
63
63
  }
64
64
 
65
- export type SortingColumn<TGenerics extends PartialGenerics> = {
65
+ export type SortingColumn<TGenerics extends AnyGenerics> = {
66
66
  sortType: SortType<Overwrite<TGenerics, { Value: any }>>
67
67
  getCanSort: () => boolean
68
68
  getCanMultiSort: () => boolean
@@ -75,7 +75,7 @@ export type SortingColumn<TGenerics extends PartialGenerics> = {
75
75
  ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>
76
76
  }
77
77
 
78
- export type SortingOptions<TGenerics extends PartialGenerics> = {
78
+ export type SortingOptions<TGenerics extends AnyGenerics> = {
79
79
  sortTypes?: TGenerics['SortingFns']
80
80
  onSortingChange?: OnChangeFn<SortingState>
81
81
  autoResetSorting?: boolean
@@ -97,7 +97,7 @@ export type ToggleSortingProps = {
97
97
  onClick?: (event: MouseEvent | TouchEvent) => void
98
98
  }
99
99
 
100
- export type SortingInstance<TGenerics extends PartialGenerics> = {
100
+ export type SortingInstance<TGenerics extends AnyGenerics> = {
101
101
  _notifySortingReset: () => void
102
102
  getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined
103
103
  getColumnAutoSortDir: (columnId: string) => SortDirection
@@ -127,7 +127,7 @@ export type SortingInstance<TGenerics extends PartialGenerics> = {
127
127
 
128
128
  export const Sorting = {
129
129
  getDefaultColumn: <
130
- TGenerics extends PartialGenerics
130
+ TGenerics extends AnyGenerics
131
131
  >(): SortingColumnDef<TGenerics> => {
132
132
  return {
133
133
  sortType: 'auto',
@@ -140,7 +140,7 @@ export const Sorting = {
140
140
  }
141
141
  },
142
142
 
143
- getDefaultOptions: <TGenerics extends PartialGenerics>(
143
+ getDefaultOptions: <TGenerics extends AnyGenerics>(
144
144
  instance: TableInstance<TGenerics>
145
145
  ): SortingOptions<TGenerics> => {
146
146
  return {
@@ -152,7 +152,7 @@ export const Sorting = {
152
152
  }
153
153
  },
154
154
 
155
- createColumn: <TGenerics extends PartialGenerics>(
155
+ createColumn: <TGenerics extends AnyGenerics>(
156
156
  column: Column<TGenerics>,
157
157
  instance: TableInstance<TGenerics>
158
158
  ): SortingColumn<TGenerics> => {
@@ -170,7 +170,7 @@ export const Sorting = {
170
170
  }
171
171
  },
172
172
 
173
- getInstance: <TGenerics extends PartialGenerics>(
173
+ getInstance: <TGenerics extends AnyGenerics>(
174
174
  instance: TableInstance<TGenerics>
175
175
  ): SortingInstance<TGenerics> => {
176
176
  let registered = false
@@ -26,7 +26,7 @@ export type VisibilityTableState = {
26
26
  columnVisibility: VisibilityState
27
27
  }
28
28
 
29
- export type VisibilityInstance<TGenerics extends PartialGenerics> = {
29
+ export type VisibilityInstance<TGenerics extends AnyGenerics> = {
30
30
  getVisibleFlatColumns: () => Column<TGenerics>[]
31
31
  getVisibleLeafColumns: () => Column<TGenerics>[]
32
32
  setColumnVisibility: (updater: Updater<VisibilityState>) => void
@@ -52,7 +52,7 @@ export type VisibilityColumnDef = {
52
52
  defaultIsVisible?: boolean
53
53
  }
54
54
 
55
- export type VisibilityRow<TGenerics extends PartialGenerics> = {
55
+ export type VisibilityRow<TGenerics extends AnyGenerics> = {
56
56
  getVisibleCells: () => Cell<TGenerics>[]
57
57
  }
58
58
 
@@ -74,7 +74,7 @@ export const Visibility = {
74
74
  }
75
75
  },
76
76
 
77
- getDefaultOptions: <TGenerics extends PartialGenerics>(
77
+ getDefaultOptions: <TGenerics extends AnyGenerics>(
78
78
  instance: TableInstance<TGenerics>
79
79
  ): VisibilityDefaultOptions => {
80
80
  return {
@@ -88,7 +88,7 @@ export const Visibility = {
88
88
  }
89
89
  },
90
90
 
91
- createColumn: <TGenerics extends PartialGenerics>(
91
+ createColumn: <TGenerics extends AnyGenerics>(
92
92
  column: Column<TGenerics>,
93
93
  instance: TableInstance<TGenerics>
94
94
  ): VisibilityColumn => {
@@ -112,7 +112,7 @@ export const Visibility = {
112
112
  }
113
113
  },
114
114
 
115
- getInstance: <TGenerics extends PartialGenerics>(
115
+ getInstance: <TGenerics extends AnyGenerics>(
116
116
  instance: TableInstance<TGenerics>
117
117
  ): VisibilityInstance<TGenerics> => {
118
118
  return {