@tanstack/table-core 8.0.0-alpha.58 → 8.0.0-alpha.61

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 (98) hide show
  1. package/build/cjs/core.js +10 -21
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/createTable.js +3 -3
  4. package/build/cjs/createTable.js.map +1 -1
  5. package/build/cjs/features/Cells.js +0 -15
  6. package/build/cjs/features/Cells.js.map +1 -1
  7. package/build/cjs/features/ColumnSizing.js +8 -19
  8. package/build/cjs/features/ColumnSizing.js.map +1 -1
  9. package/build/cjs/features/Columns.js.map +1 -1
  10. package/build/cjs/features/Expanding.js +12 -22
  11. package/build/cjs/features/Expanding.js.map +1 -1
  12. package/build/cjs/features/Filters.js +0 -23
  13. package/build/cjs/features/Filters.js.map +1 -1
  14. package/build/cjs/features/Grouping.js +6 -27
  15. package/build/cjs/features/Grouping.js.map +1 -1
  16. package/build/cjs/features/Headers.js +1 -67
  17. package/build/cjs/features/Headers.js.map +1 -1
  18. package/build/cjs/features/Pagination.js +4 -4
  19. package/build/cjs/features/Pagination.js.map +1 -1
  20. package/build/cjs/features/Pinning.js.map +1 -1
  21. package/build/cjs/features/RowSelection.js +15 -79
  22. package/build/cjs/features/RowSelection.js.map +1 -1
  23. package/build/cjs/features/Rows.js +0 -15
  24. package/build/cjs/features/Rows.js.map +1 -1
  25. package/build/cjs/features/Sorting.js +7 -28
  26. package/build/cjs/features/Sorting.js.map +1 -1
  27. package/build/cjs/features/Visibility.js +8 -21
  28. package/build/cjs/features/Visibility.js.map +1 -1
  29. package/build/cjs/filterFns.js +16 -0
  30. package/build/cjs/filterFns.js.map +1 -1
  31. package/build/cjs/index.js +0 -1
  32. package/build/cjs/index.js.map +1 -1
  33. package/build/cjs/utils/getColumnFilteredRowModelSync.js +1 -1
  34. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +1 -1
  35. package/build/cjs/utils/getCoreRowModelAsync.js +1 -2
  36. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
  37. package/build/cjs/utils/getCoreRowModelSync.js +1 -2
  38. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
  39. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +1 -1
  40. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +1 -1
  41. package/build/cjs/utils/getGroupedRowModel.js +3 -1
  42. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  43. package/build/cjs/utils/getSortedRowModelSync.js +1 -1
  44. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
  45. package/build/cjs/utils.js +0 -16
  46. package/build/cjs/utils.js.map +1 -1
  47. package/build/esm/index.js +100 -369
  48. package/build/esm/index.js.map +1 -1
  49. package/build/stats-html.html +1 -1
  50. package/build/stats-react.json +360 -360
  51. package/build/types/core.d.ts +8 -10
  52. package/build/types/createTable.d.ts +10 -11
  53. package/build/types/features/Cells.d.ts +1 -2
  54. package/build/types/features/ColumnSizing.d.ts +4 -18
  55. package/build/types/features/Expanding.d.ts +5 -9
  56. package/build/types/features/Filters.d.ts +0 -3
  57. package/build/types/features/Grouping.d.ts +4 -11
  58. package/build/types/features/Headers.d.ts +1 -5
  59. package/build/types/features/Pagination.d.ts +6 -7
  60. package/build/types/features/RowSelection.d.ts +5 -14
  61. package/build/types/features/Rows.d.ts +2 -4
  62. package/build/types/features/Sorting.d.ts +3 -9
  63. package/build/types/features/Visibility.d.ts +3 -6
  64. package/build/types/filterFns.d.ts +5 -0
  65. package/build/types/types.d.ts +10 -60
  66. package/build/types/utils.d.ts +1 -4
  67. package/build/umd/index.development.js +99 -369
  68. package/build/umd/index.development.js.map +1 -1
  69. package/build/umd/index.production.js +1 -1
  70. package/build/umd/index.production.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/core.ts +29 -53
  73. package/src/createTable.ts +13 -17
  74. package/src/features/Cells.ts +1 -27
  75. package/src/features/ColumnSizing.ts +14 -44
  76. package/src/features/Columns.ts +0 -2
  77. package/src/features/Expanding.ts +16 -44
  78. package/src/features/Filters.ts +0 -33
  79. package/src/features/Grouping.ts +10 -62
  80. package/src/features/Headers.ts +1 -95
  81. package/src/features/Pagination.ts +11 -4
  82. package/src/features/Pinning.ts +1 -1
  83. package/src/features/RowSelection.ts +25 -116
  84. package/src/features/Rows.ts +2 -30
  85. package/src/features/Sorting.ts +17 -63
  86. package/src/features/Visibility.ts +15 -43
  87. package/src/filterFns.ts +20 -0
  88. package/src/types.ts +36 -98
  89. package/src/utils/getColumnFilteredRowModelAsync.ts +2 -6
  90. package/src/utils/getColumnFilteredRowModelSync.ts +1 -1
  91. package/src/utils/getCoreRowModelAsync.ts +1 -2
  92. package/src/utils/getCoreRowModelSync.ts +1 -2
  93. package/src/utils/getGlobalFilteredRowModelAsync.ts +3 -7
  94. package/src/utils/getGlobalFilteredRowModelSync.ts +1 -1
  95. package/src/utils/getGroupedRowModel.ts +2 -1
  96. package/src/utils/getSortedRowModelAsync.ts +1 -2
  97. package/src/utils/getSortedRowModelSync.ts +1 -1
  98. package/src/utils.ts +1 -28
@@ -3,24 +3,14 @@ import { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'
3
3
  import {
4
4
  Cell,
5
5
  Column,
6
- Getter,
7
6
  OnChangeFn,
8
- PropGetterValue,
9
7
  TableInstance,
10
8
  Row,
11
9
  Updater,
12
10
  Renderable,
13
- UseRenderer,
14
11
  TableGenerics,
15
12
  } from '../types'
16
- import {
17
- functionalUpdate,
18
- isFunction,
19
- makeStateUpdater,
20
- memo,
21
- Overwrite,
22
- propGetter,
23
- } from '../utils'
13
+ import { isFunction, makeStateUpdater, Overwrite } from '../utils'
24
14
 
25
15
  export type GroupingState = string[]
26
16
 
@@ -67,9 +57,7 @@ export type GroupingColumn<TGenerics extends TableGenerics> = {
67
57
  getIsGrouped: () => boolean
68
58
  getGroupedIndex: () => number
69
59
  toggleGrouping: () => void
70
- getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(
71
- userProps?: TGetter
72
- ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>
60
+ getToggleGroupingHandler: () => () => void
73
61
  }
74
62
 
75
63
  export type GroupingRow = {
@@ -82,13 +70,12 @@ export type GroupingCell<TGenerics extends TableGenerics> = {
82
70
  getIsGrouped: () => boolean
83
71
  getIsPlaceholder: () => boolean
84
72
  getIsAggregated: () => boolean
85
- renderAggregatedCell: () => string | null | ReturnType<UseRenderer<TGenerics>>
73
+ renderAggregatedCell: () => string | null | TGenerics['Rendered']
86
74
  }
87
75
 
88
76
  export type ColumnDefaultOptions = {
89
77
  // Column
90
78
  onGroupingChange: OnChangeFn<GroupingState>
91
- autoResetGrouping: boolean
92
79
  enableGrouping: boolean
93
80
  }
94
81
 
@@ -96,7 +83,6 @@ export type GroupingOptions<TGenerics extends TableGenerics> = {
96
83
  manualGrouping?: boolean
97
84
  aggregationFns?: TGenerics['AggregationFns']
98
85
  onGroupingChange?: OnChangeFn<GroupingState>
99
- autoResetGrouping?: boolean
100
86
  enableGrouping?: boolean
101
87
  enableGroupingRemoval?: boolean
102
88
  getGroupedRowModel?: (
@@ -108,13 +94,7 @@ export type GroupingOptions<TGenerics extends TableGenerics> = {
108
94
 
109
95
  export type GroupingColumnMode = false | 'reorder' | 'remove'
110
96
 
111
- export type ToggleGroupingProps = {
112
- title?: string
113
- onClick?: (event: unknown) => void
114
- }
115
-
116
97
  export type GroupingInstance<TGenerics extends TableGenerics> = {
117
- queueResetGrouping: () => void
118
98
  getColumnAutoAggregationFn: (
119
99
  columnId: string
120
100
  ) => AggregationFn<TGenerics> | undefined
@@ -127,10 +107,7 @@ export type GroupingInstance<TGenerics extends TableGenerics> = {
127
107
  getColumnCanGroup: (columnId: string) => boolean
128
108
  getColumnIsGrouped: (columnId: string) => boolean
129
109
  getColumnGroupedIndex: (columnId: string) => number
130
- getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(
131
- columnId: string,
132
- userProps?: TGetter
133
- ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>
110
+ getToggleGroupingHandler: (columnId: string) => undefined | (() => void)
134
111
  getRowIsGrouped: (rowId: string) => boolean
135
112
  getPreGroupedRowModel: () => RowModel<TGenerics>
136
113
  getGroupedRowModel: () => RowModel<TGenerics>
@@ -159,7 +136,6 @@ export const Grouping = {
159
136
  ): GroupingOptions<TGenerics> => {
160
137
  return {
161
138
  onGroupingChange: makeStateUpdater('grouping', instance),
162
- autoResetGrouping: true,
163
139
  groupedColumnMode: 'reorder',
164
140
  }
165
141
  },
@@ -174,36 +150,15 @@ export const Grouping = {
174
150
  getGroupedIndex: () => instance.getColumnGroupedIndex(column.id),
175
151
  getIsGrouped: () => instance.getColumnIsGrouped(column.id),
176
152
  toggleGrouping: () => instance.toggleColumnGrouping(column.id),
177
- getToggleGroupingProps: userProps =>
178
- instance.getToggleGroupingProps(column.id, userProps),
153
+ getToggleGroupingHandler: () =>
154
+ instance.getToggleGroupingHandler(column.id)!,
179
155
  }
180
156
  },
181
157
 
182
158
  createInstance: <TGenerics extends TableGenerics>(
183
159
  instance: TableInstance<TGenerics>
184
160
  ): GroupingInstance<TGenerics> => {
185
- let registered = false
186
-
187
161
  return {
188
- queueResetGrouping: () => {
189
- instance.queueResetExpanded()
190
-
191
- if (!registered) {
192
- registered = true
193
- return
194
- }
195
-
196
- if (instance.options.autoResetAll === false) {
197
- return
198
- }
199
-
200
- if (
201
- instance.options.autoResetAll === true ||
202
- instance.options.autoResetGrouping
203
- ) {
204
- instance.resetGrouping()
205
- }
206
- },
207
162
  getColumnAutoAggregationFn: columnId => {
208
163
  const firstRow = instance.getCoreRowModel().flatRows[0]
209
164
 
@@ -278,21 +233,14 @@ export const Grouping = {
278
233
  instance.setGrouping(instance.initialState?.grouping ?? [])
279
234
  },
280
235
 
281
- getToggleGroupingProps: (columnId, userProps) => {
236
+ getToggleGroupingHandler: columnId => {
282
237
  const column = instance.getColumn(columnId)
283
-
284
238
  const canGroup = column.getCanGroup()
285
239
 
286
- const initialProps: ToggleGroupingProps = {
287
- title: canGroup ? 'Toggle Grouping' : undefined,
288
- onClick: canGroup
289
- ? (e: unknown) => {
290
- column.toggleGrouping?.()
291
- }
292
- : undefined,
240
+ return () => {
241
+ if (!canGroup) return
242
+ column.toggleGrouping?.()
293
243
  }
294
-
295
- return propGetter(initialProps, userProps)
296
244
  },
297
245
 
298
246
  getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,
@@ -1,20 +1,12 @@
1
1
  import {
2
- Cell,
3
2
  Column,
4
3
  CoreHeader,
5
- FooterGroupProps,
6
- FooterProps,
7
- Getter,
8
4
  Header,
9
5
  HeaderGroup,
10
- HeaderGroupProps,
11
- HeaderProps,
12
6
  TableGenerics,
13
- PropGetterValue,
14
7
  TableInstance,
15
- Row,
16
8
  } from '../types'
17
- import { propGetter, memo } from '../utils'
9
+ import { memo } from '../utils'
18
10
 
19
11
  export type HeadersInstance<TGenerics extends TableGenerics> = {
20
12
  createHeader: (
@@ -48,23 +40,6 @@ export type HeadersInstance<TGenerics extends TableGenerics> = {
48
40
  getRightLeafHeaders: () => Header<TGenerics>[]
49
41
 
50
42
  getHeader: (id: string) => Header<TGenerics>
51
-
52
- getHeaderGroupProps: <TGetter extends Getter<HeaderGroupProps>>(
53
- id: string,
54
- userProps?: TGetter
55
- ) => undefined | PropGetterValue<HeaderGroupProps, TGetter>
56
- getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(
57
- id: string,
58
- userProps?: TGetter
59
- ) => undefined | PropGetterValue<FooterGroupProps, TGetter>
60
- getHeaderProps: <TGetter extends Getter<HeaderProps>>(
61
- headerId: string,
62
- userProps?: TGetter
63
- ) => undefined | PropGetterValue<HeaderProps, TGetter>
64
- getFooterProps: <TGetter extends Getter<FooterProps>>(
65
- headerId: string,
66
- userProps?: TGetter
67
- ) => undefined | PropGetterValue<FooterProps, TGetter>
68
43
  }
69
44
 
70
45
  //
@@ -135,10 +110,6 @@ export const Headers = {
135
110
 
136
111
  return leafHeaders as Header<TGenerics>[]
137
112
  },
138
- getHeaderProps: userProps =>
139
- instance.getHeaderProps(header.id, userProps)!,
140
- getFooterProps: userProps =>
141
- instance.getFooterProps(header.id, userProps)!,
142
113
  renderHeader: () =>
143
114
  column.header
144
115
  ? instance.render(column.header, {
@@ -447,67 +418,6 @@ export const Headers = {
447
418
 
448
419
  return header
449
420
  },
450
-
451
- getHeaderGroupProps: (id, userProps) => {
452
- const headerGroup = instance.getHeaderGroups().find(d => d.id === id)
453
-
454
- if (!headerGroup) {
455
- return
456
- }
457
-
458
- return propGetter(
459
- {
460
- key: headerGroup.id,
461
- role: 'row',
462
- },
463
- userProps
464
- )
465
- },
466
-
467
- getFooterGroupProps: (id, userProps) => {
468
- const headerGroup = instance.getFooterGroups().find(d => d.id === id)
469
-
470
- if (!headerGroup) {
471
- return
472
- }
473
-
474
- const initialProps = {
475
- key: headerGroup.id,
476
- role: 'row',
477
- }
478
-
479
- return propGetter(initialProps, userProps)
480
- },
481
-
482
- getHeaderProps: (id, userProps) => {
483
- const header = instance.getHeader(id)
484
-
485
- if (!header) {
486
- throw new Error()
487
- }
488
-
489
- const initialProps: HeaderProps = {
490
- key: header.id,
491
- role: 'columnheader',
492
- colSpan: header.colSpan,
493
- rowSpan: header.rowSpan,
494
- }
495
-
496
- return propGetter(initialProps, userProps)
497
- },
498
-
499
- getFooterProps: (id, userProps) => {
500
- const header = instance.getHeader(id)
501
-
502
- const initialProps: FooterProps = {
503
- key: header.id,
504
- role: 'columnfooter',
505
- colSpan: header.colSpan,
506
- rowSpan: header.rowSpan,
507
- }
508
-
509
- return propGetter(initialProps, userProps)
510
- },
511
421
  }
512
422
  },
513
423
  }
@@ -551,10 +461,6 @@ export function buildHeaderGroups<TGenerics extends TableGenerics>(
551
461
  depth,
552
462
  id: [headerFamily, `${depth}`].filter(Boolean).join('_'),
553
463
  headers: [],
554
- getHeaderGroupProps: getterValue =>
555
- instance.getHeaderGroupProps(`${depth}`, getterValue)!,
556
- getFooterGroupProps: getterValue =>
557
- instance.getFooterGroupProps(`${depth}`, getterValue)!,
558
464
  }
559
465
 
560
466
  // The parent columns we're going to scan next
@@ -4,6 +4,7 @@ import {
4
4
  TableInstance,
5
5
  RowModel,
6
6
  Updater,
7
+ TableFeature,
7
8
  } from '../types'
8
9
  import { functionalUpdate, makeStateUpdater, memo } from '../utils'
9
10
 
@@ -17,6 +18,10 @@ export type PaginationTableState = {
17
18
  pagination: PaginationState
18
19
  }
19
20
 
21
+ export type PaginationInitialTableState = {
22
+ pagination?: Partial<PaginationState>
23
+ }
24
+
20
25
  export type PaginationOptions<TGenerics extends TableGenerics> = {
21
26
  manualPagination?: boolean
22
27
  onPaginationChange?: OnChangeFn<PaginationState>
@@ -32,7 +37,7 @@ export type PaginationDefaultOptions = {
32
37
  }
33
38
 
34
39
  export type PaginationInstance<TGenerics extends TableGenerics> = {
35
- queueResetPageIndex: () => void
40
+ _autoResetPageIndex: () => void
36
41
  setPagination: (updater: Updater<PaginationState>) => void
37
42
  resetPagination: () => void
38
43
  setPageIndex: (updater: Updater<number>) => void
@@ -53,13 +58,14 @@ export type PaginationInstance<TGenerics extends TableGenerics> = {
53
58
 
54
59
  //
55
60
 
56
- export const Pagination = {
57
- getInitialState: (): PaginationTableState => {
61
+ export const Pagination: TableFeature = {
62
+ getInitialState: (initialState): PaginationTableState => {
58
63
  return {
59
64
  pagination: {
60
65
  pageCount: -1,
61
66
  pageIndex: 0,
62
67
  pageSize: 10,
68
+ ...initialState?.pagination,
63
69
  },
64
70
  }
65
71
  },
@@ -77,8 +83,9 @@ export const Pagination = {
77
83
  instance: TableInstance<TGenerics>
78
84
  ): PaginationInstance<TGenerics> => {
79
85
  let registered = false
86
+
80
87
  return {
81
- queueResetPageIndex: () => {
88
+ _autoResetPageIndex: () => {
82
89
  if (!registered) {
83
90
  registered = true
84
91
  return
@@ -7,7 +7,7 @@ import {
7
7
  Row,
8
8
  Cell,
9
9
  } from '../types'
10
- import { functionalUpdate, makeStateUpdater, memo } from '../utils'
10
+ import { makeStateUpdater, memo } from '../utils'
11
11
 
12
12
  export type ColumnPinningPosition = false | 'left' | 'right'
13
13
 
@@ -1,14 +1,12 @@
1
1
  import {
2
- Getter,
3
2
  OnChangeFn,
4
3
  TableGenerics,
5
- PropGetterValue,
6
4
  TableInstance,
7
5
  Row,
8
6
  RowModel,
9
7
  Updater,
10
8
  } from '../types'
11
- import { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'
9
+ import { makeStateUpdater, memo } from '../utils'
12
10
 
13
11
  export type RowSelectionState = Record<string, boolean>
14
12
 
@@ -18,7 +16,6 @@ export type RowSelectionTableState = {
18
16
 
19
17
  export type RowSelectionOptions<TGenerics extends TableGenerics> = {
20
18
  onRowSelectionChange?: OnChangeFn<RowSelectionState>
21
- autoResetRowSelection?: boolean
22
19
  enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)
23
20
  enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)
24
21
  enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)
@@ -41,40 +38,21 @@ export type RowSelectionOptions<TGenerics extends TableGenerics> = {
41
38
  // ) => RowModel<TGenerics>
42
39
  }
43
40
 
44
- type ToggleRowSelectedProps = {
45
- onChange?: (e: unknown) => void
46
- checked?: boolean
47
- title?: string
48
- indeterminate?: boolean
49
- }
50
-
51
41
  export type RowSelectionRow = {
52
42
  getIsSelected: () => boolean
53
43
  getIsSomeSelected: () => boolean
54
44
  getCanSelect: () => boolean
55
45
  getCanMultiSelect: () => boolean
56
46
  toggleSelected: (value?: boolean) => void
57
- getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(
58
- userProps?: TGetter
59
- ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>
47
+ getToggleSelectedHandler: () => (event: unknown) => void
60
48
  }
61
49
 
62
50
  export type RowSelectionInstance<TGenerics extends TableGenerics> = {
63
- queueResetRowSelection: () => void
64
- getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(
65
- rowId: string,
66
- userProps?: TGetter
67
- ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>
68
- getToggleAllRowsSelectedProps: <
69
- TGetter extends Getter<ToggleRowSelectedProps>
70
- >(
71
- userProps?: TGetter
72
- ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>
73
- getToggleAllPageRowsSelectedProps: <
74
- TGetter extends Getter<ToggleRowSelectedProps>
75
- >(
76
- userProps?: TGetter
77
- ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>
51
+ getToggleRowSelectedHandler: (
52
+ rowId: string
53
+ ) => undefined | ((e: unknown) => void)
54
+ getToggleAllRowsSelectedHandler: () => (event: unknown) => void
55
+ getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void
78
56
  setRowSelection: (updater: Updater<RowSelectionState>) => void
79
57
  resetRowSelection: () => void
80
58
  toggleRowSelected: (rowId: string, value?: boolean) => void
@@ -110,7 +88,6 @@ export const RowSelection = {
110
88
  ): RowSelectionOptions<TGenerics> => {
111
89
  return {
112
90
  onRowSelectionChange: makeStateUpdater('rowSelection', instance),
113
- autoResetRowSelection: true,
114
91
  enableRowSelection: true,
115
92
  enableMultiRowSelection: true,
116
93
  enableSubRowSelection: true,
@@ -123,28 +100,7 @@ export const RowSelection = {
123
100
  createInstance: <TGenerics extends TableGenerics>(
124
101
  instance: TableInstance<TGenerics>
125
102
  ): RowSelectionInstance<TGenerics> => {
126
- let registered = false
127
-
128
- // const pageRows = instance.getPageRows()
129
-
130
103
  return {
131
- queueResetRowSelection: () => {
132
- if (!registered) {
133
- registered = true
134
- return
135
- }
136
-
137
- if (instance.options.autoResetAll === false) {
138
- return
139
- }
140
-
141
- if (
142
- instance.options.autoResetAll === true ||
143
- instance.options.autoResetRowSelection
144
- ) {
145
- instance.resetRowSelection()
146
- }
147
- },
148
104
  setRowSelection: updater =>
149
105
  instance.options.onRowSelectionChange?.(updater),
150
106
  resetRowSelection: () =>
@@ -283,9 +239,6 @@ export const RowSelection = {
283
239
  {
284
240
  key: 'getSelectedRowModel',
285
241
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
286
- onChange: () => {
287
- instance.queue(() => instance.queueResetExpanded())
288
- },
289
242
  }
290
243
  ),
291
244
 
@@ -308,7 +261,6 @@ export const RowSelection = {
308
261
  {
309
262
  key: 'getFilteredSelectedRowModel',
310
263
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
311
- onChange: () => instance.queue(() => instance.queueResetExpanded()),
312
264
  }
313
265
  ),
314
266
 
@@ -328,7 +280,6 @@ export const RowSelection = {
328
280
  {
329
281
  key: 'getGroupedSelectedRowModel',
330
282
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
331
- onChange: () => instance.queue(() => instance.queueResetExpanded()),
332
283
  }
333
284
  ),
334
285
 
@@ -460,77 +411,35 @@ export const RowSelection = {
460
411
  : !!paginationFlatRows?.length
461
412
  },
462
413
 
463
- getToggleRowSelectedProps: (rowId, userProps) => {
414
+ getToggleRowSelectedHandler: rowId => {
464
415
  const row = instance.getRow(rowId)
465
416
 
466
417
  const isSelected = row.getIsSelected()
467
418
  const isSomeSelected = row.getIsSomeSelected()
468
419
  const canSelect = row.getCanSelect()
469
420
 
470
- const initialProps: ToggleRowSelectedProps = {
471
- onChange: canSelect
472
- ? (e: unknown) => {
473
- row.toggleSelected(
474
- ((e as MouseEvent).target as HTMLInputElement).checked
475
- )
476
- }
477
- : undefined,
478
- checked: isSelected,
479
- title: 'Toggle Row Selected',
480
- indeterminate: isSomeSelected,
481
- // onChange: forInput
482
- // ? (e: Event) => e.stopPropagation()
483
- // : (e: Event) => {
484
- // if (instance.options.isAdditiveSelectEvent(e)) {
485
- // row.toggleSelected()
486
- // } else if (instance.options.isInclusiveSelectEvent(e)) {
487
- // instance.addRowSelectionRange(row.id)
488
- // } else {
489
- // instance.setRowSelection({})
490
- // row.toggleSelected()
491
- // }
492
-
493
- // if (props.onClick) props.onClick(e)
494
- // },
421
+ return (e: unknown) => {
422
+ if (!canSelect) return
423
+ row.toggleSelected(
424
+ ((e as MouseEvent).target as HTMLInputElement)?.checked
425
+ )
495
426
  }
496
-
497
- return propGetter(initialProps, userProps)
498
427
  },
499
428
 
500
- getToggleAllRowsSelectedProps: userProps => {
501
- const isSomeRowsSelected = instance.getIsSomeRowsSelected()
502
- const isAllRowsSelected = instance.getIsAllRowsSelected()
503
-
504
- const initialProps: ToggleRowSelectedProps = {
505
- onChange: (e: unknown) => {
506
- instance.toggleAllRowsSelected(
507
- ((e as MouseEvent).target as HTMLInputElement).checked
508
- )
509
- },
510
- checked: isAllRowsSelected,
511
- title: 'Toggle All Rows Selected',
512
- indeterminate: isSomeRowsSelected,
429
+ getToggleAllRowsSelectedHandler: () => {
430
+ return (e: unknown) => {
431
+ instance.toggleAllRowsSelected(
432
+ ((e as MouseEvent).target as HTMLInputElement).checked
433
+ )
513
434
  }
514
-
515
- return propGetter(initialProps, userProps)
516
435
  },
517
436
 
518
- getToggleAllPageRowsSelectedProps: userProps => {
519
- const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()
520
- const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()
521
-
522
- const initialProps: ToggleRowSelectedProps = {
523
- onChange: (e: unknown) => {
524
- instance.toggleAllPageRowsSelected(
525
- ((e as MouseEvent).target as HTMLInputElement).checked
526
- )
527
- },
528
- checked: isAllPageRowsSelected,
529
- title: 'Toggle All Current Page Rows Selected',
530
- indeterminate: isSomePageRowsSelected,
437
+ getToggleAllPageRowsSelectedHandler: () => {
438
+ return (e: unknown) => {
439
+ instance.toggleAllPageRowsSelected(
440
+ ((e as MouseEvent).target as HTMLInputElement).checked
441
+ )
531
442
  }
532
-
533
- return propGetter(initialProps, userProps)
534
443
  },
535
444
  }
536
445
  },
@@ -543,8 +452,8 @@ export const RowSelection = {
543
452
  getIsSelected: () => instance.getRowIsSelected(row.id),
544
453
  getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),
545
454
  toggleSelected: value => instance.toggleRowSelected(row.id, value),
546
- getToggleSelectedProps: userProps =>
547
- instance.getToggleRowSelectedProps(row.id, userProps),
455
+ getToggleSelectedHandler: () =>
456
+ instance.getToggleRowSelectedHandler(row.id)!,
548
457
  getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),
549
458
  getCanSelect: () => instance.getRowCanSelect(row.id),
550
459
  }
@@ -1,19 +1,11 @@
1
1
  import {
2
- Cell,
3
2
  TableGenerics,
4
3
  TableInstance,
5
4
  Row,
6
- Column,
7
- CoreCell,
8
- Getter,
9
- CellProps,
10
- PropGetterValue,
11
- RowProps,
12
5
  RowModel,
13
6
  RowValues,
14
- PropGetter,
15
7
  } from '../types'
16
- import { flattenBy, memo, propGetter } from '../utils'
8
+ import { flattenBy } from '../utils'
17
9
 
18
10
  export type CoreRow<TGenerics extends TableGenerics> = {
19
11
  id: string
@@ -23,7 +15,6 @@ export type CoreRow<TGenerics extends TableGenerics> = {
23
15
  values: RowValues
24
16
  subRows: Row<TGenerics>[]
25
17
  getLeafRows: () => Row<TGenerics>[]
26
- getRowProps: PropGetter<RowProps>
27
18
  originalSubRows?: TGenerics['Row'][]
28
19
  }
29
20
 
@@ -34,7 +25,7 @@ export type RowsOptions<TGenerics extends TableGenerics> = {
34
25
  getSubRows?: (
35
26
  originalRow: TGenerics['Row'],
36
27
  index: number
37
- ) => TGenerics['Row'][]
28
+ ) => undefined | TGenerics['Row'][]
38
29
  getRowId?: (
39
30
  originalRow: TGenerics['Row'],
40
31
  index: number,
@@ -59,10 +50,6 @@ export type RowsInstance<TGenerics extends TableGenerics> = {
59
50
  _getCoreRowModel?: () => RowModel<TGenerics>
60
51
  getRowModel: () => RowModel<TGenerics>
61
52
  getRow: (id: string) => Row<TGenerics>
62
- getRowProps: <TGetter extends Getter<RowProps>>(
63
- rowId: string,
64
- userProps?: TGetter
65
- ) => undefined | PropGetterValue<RowProps, TGetter>
66
53
  }
67
54
 
68
55
  //
@@ -95,7 +82,6 @@ export const Rows = {
95
82
  values,
96
83
  subRows: [],
97
84
  getLeafRows: () => flattenBy(row.subRows, d => d.subRows),
98
- getRowProps: userProps => instance.getRowProps(row.id, userProps)!,
99
85
  }
100
86
 
101
87
  for (let i = 0; i < instance._features.length; i++) {
@@ -132,20 +118,6 @@ export const Rows = {
132
118
 
133
119
  return row
134
120
  },
135
- getRowProps: (rowId, userProps) => {
136
- const row = instance.getRow(rowId)
137
- if (!row) {
138
- return
139
- }
140
-
141
- return propGetter(
142
- {
143
- key: row.id,
144
- role: 'row',
145
- },
146
- userProps
147
- )
148
- },
149
121
  }
150
122
  },
151
123
  }