@tanstack/table-core 8.0.0-alpha.24 → 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 (61) hide show
  1. package/build/cjs/core.js +9 -21
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/createTable.js +2 -2
  4. package/build/cjs/createTable.js.map +1 -1
  5. package/build/cjs/features/ColumnSizing.js +23 -8
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Expanding.js.map +1 -1
  8. package/build/cjs/features/Filters.js.map +1 -1
  9. package/build/cjs/features/Grouping.js.map +1 -1
  10. package/build/cjs/features/Headers.js.map +1 -1
  11. package/build/cjs/features/Ordering.js.map +1 -1
  12. package/build/cjs/features/Pagination.js.map +1 -1
  13. package/build/cjs/features/Pinning.js.map +1 -1
  14. package/build/cjs/features/RowSelection.js.map +1 -1
  15. package/build/cjs/features/Sorting.js.map +1 -1
  16. package/build/cjs/features/Visibility.js.map +1 -1
  17. package/build/cjs/filterTypes.js.map +1 -1
  18. package/build/cjs/sortTypes.js.map +1 -1
  19. package/build/cjs/utils/groupRowsFn.js.map +1 -1
  20. package/build/esm/index.js +2606 -2603
  21. package/build/esm/index.js.map +1 -1
  22. package/build/stats-html.html +1 -1
  23. package/build/stats-react.json +334 -334
  24. package/build/types/core.d.ts +7 -12
  25. package/build/types/createTable.d.ts +4 -4
  26. package/build/types/features/ColumnSizing.d.ts +13 -8
  27. package/build/types/features/Expanding.d.ts +6 -6
  28. package/build/types/features/Filters.d.ts +14 -14
  29. package/build/types/features/Grouping.d.ts +16 -16
  30. package/build/types/features/Headers.d.ts +6 -6
  31. package/build/types/features/Ordering.d.ts +4 -4
  32. package/build/types/features/Pagination.d.ts +5 -5
  33. package/build/types/features/Pinning.d.ts +5 -5
  34. package/build/types/features/RowSelection.d.ts +8 -8
  35. package/build/types/features/Sorting.d.ts +12 -12
  36. package/build/types/features/Visibility.d.ts +6 -6
  37. package/build/types/filterTypes.d.ts +10 -10
  38. package/build/types/sortTypes.d.ts +7 -7
  39. package/build/types/types.d.ts +22 -13
  40. package/build/umd/index.development.js +2606 -2603
  41. package/build/umd/index.development.js.map +1 -1
  42. package/build/umd/index.production.js +1 -1
  43. package/build/umd/index.production.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/core.tsx +26 -50
  46. package/src/createTable.tsx +17 -11
  47. package/src/features/ColumnSizing.ts +31 -7
  48. package/src/features/Expanding.ts +5 -5
  49. package/src/features/Filters.ts +13 -13
  50. package/src/features/Grouping.ts +16 -15
  51. package/src/features/Headers.ts +5 -5
  52. package/src/features/Ordering.ts +3 -3
  53. package/src/features/Pagination.ts +4 -4
  54. package/src/features/Pinning.ts +4 -4
  55. package/src/features/RowSelection.ts +8 -8
  56. package/src/features/Sorting.ts +11 -11
  57. package/src/features/Visibility.ts +5 -5
  58. package/src/filterTypes.ts +9 -9
  59. package/src/sortTypes.ts +6 -6
  60. package/src/types.ts +34 -25
  61. package/src/utils/groupRowsFn.ts +1 -1
@@ -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
@@ -535,7 +535,7 @@ export const RowSelection = {
535
535
  }
536
536
  },
537
537
 
538
- createRow: <TGenerics extends PartialGenerics>(
538
+ createRow: <TGenerics extends AnyGenerics>(
539
539
  row: Row<TGenerics>,
540
540
  instance: TableInstance<TGenerics>
541
541
  ): RowSelectionRow => {
@@ -551,7 +551,7 @@ export const RowSelection = {
551
551
  },
552
552
  }
553
553
 
554
- const mutateRowIsSelected = <TGenerics extends PartialGenerics>(
554
+ const mutateRowIsSelected = <TGenerics extends AnyGenerics>(
555
555
  selectedRowIds: Record<string, boolean>,
556
556
  id: string,
557
557
  value: boolean,
@@ -579,7 +579,7 @@ const mutateRowIsSelected = <TGenerics extends PartialGenerics>(
579
579
  }
580
580
  }
581
581
 
582
- export function selectRowsFn<TGenerics extends PartialGenerics>(
582
+ export function selectRowsFn<TGenerics extends AnyGenerics>(
583
583
  instance: TableInstance<TGenerics>,
584
584
  rowModel: RowModel<TGenerics>
585
585
  ): RowModel<TGenerics> {
@@ -620,7 +620,7 @@ export function selectRowsFn<TGenerics extends PartialGenerics>(
620
620
  }
621
621
  }
622
622
 
623
- export function isRowSelected<TGenerics extends PartialGenerics>(
623
+ export function isRowSelected<TGenerics extends AnyGenerics>(
624
624
  row: Row<TGenerics>,
625
625
  selection: Record<string, boolean>,
626
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 {
@@ -14,7 +14,7 @@ export const filterTypes = {
14
14
 
15
15
  export type BuiltInFilterType = keyof typeof filterTypes
16
16
 
17
- function includesString<TGenerics extends PartialGenerics>(
17
+ function includesString<TGenerics extends AnyGenerics>(
18
18
  rows: Row<TGenerics>[],
19
19
  columnIds: string[],
20
20
  filterValue: unknown
@@ -31,7 +31,7 @@ function includesString<TGenerics extends PartialGenerics>(
31
31
 
32
32
  includesString.autoRemove = (val: any) => testFalsey(val)
33
33
 
34
- function includesStringSensitive<TGenerics extends PartialGenerics>(
34
+ function includesStringSensitive<TGenerics extends AnyGenerics>(
35
35
  rows: Row<TGenerics>[],
36
36
  columnIds: string[],
37
37
  filterValue: unknown
@@ -48,7 +48,7 @@ function includesStringSensitive<TGenerics extends PartialGenerics>(
48
48
 
49
49
  includesStringSensitive.autoRemove = (val: any) => testFalsey(val)
50
50
 
51
- function equalsString<TGenerics extends PartialGenerics>(
51
+ function equalsString<TGenerics extends AnyGenerics>(
52
52
  rows: Row<TGenerics>[],
53
53
  columnIds: string[],
54
54
  filterValue: unknown
@@ -67,7 +67,7 @@ function equalsString<TGenerics extends PartialGenerics>(
67
67
 
68
68
  equalsString.autoRemove = (val: any) => testFalsey(val)
69
69
 
70
- function equalsStringSensitive<TGenerics extends PartialGenerics>(
70
+ function equalsStringSensitive<TGenerics extends AnyGenerics>(
71
71
  rows: Row<TGenerics>[],
72
72
  columnIds: string[],
73
73
  filterValue: unknown
@@ -83,7 +83,7 @@ function equalsStringSensitive<TGenerics extends PartialGenerics>(
83
83
 
84
84
  equalsStringSensitive.autoRemove = (val: any) => testFalsey(val)
85
85
 
86
- function arrIncludes<TGenerics extends PartialGenerics>(
86
+ function arrIncludes<TGenerics extends AnyGenerics>(
87
87
  rows: Row<TGenerics>[],
88
88
  columnIds: string[],
89
89
  filterValue: unknown
@@ -98,7 +98,7 @@ function arrIncludes<TGenerics extends PartialGenerics>(
98
98
 
99
99
  arrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length
100
100
 
101
- function arrIncludesAll<TGenerics extends PartialGenerics>(
101
+ function arrIncludesAll<TGenerics extends AnyGenerics>(
102
102
  rows: Row<TGenerics>[],
103
103
  columnIds: string[],
104
104
  filterValue: unknown[]
@@ -117,7 +117,7 @@ function arrIncludesAll<TGenerics extends PartialGenerics>(
117
117
 
118
118
  arrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length
119
119
 
120
- function equals<TGenerics extends PartialGenerics>(
120
+ function equals<TGenerics extends AnyGenerics>(
121
121
  rows: Row<TGenerics>[],
122
122
  columnIds: string[],
123
123
  filterValue: unknown
@@ -132,7 +132,7 @@ function equals<TGenerics extends PartialGenerics>(
132
132
 
133
133
  equals.autoRemove = (val: any) => testFalsey(val)
134
134
 
135
- function weakEquals<TGenerics extends PartialGenerics>(
135
+ function weakEquals<TGenerics extends AnyGenerics>(
136
136
  rows: Row<TGenerics>[],
137
137
  columnIds: string[],
138
138
  filterValue: unknown
@@ -148,7 +148,7 @@ function weakEquals<TGenerics extends PartialGenerics>(
148
148
 
149
149
  weakEquals.autoRemove = (val: any) => testFalsey(val)
150
150
 
151
- function betweenNumberRange<TGenerics extends PartialGenerics>(
151
+ function betweenNumberRange<TGenerics extends AnyGenerics>(
152
152
  rows: Row<TGenerics>[],
153
153
  columnIds: string[],
154
154
  filterValue: [unknown, unknown]
package/src/sortTypes.ts CHANGED
@@ -13,7 +13,7 @@ export const sortTypes = {
13
13
 
14
14
  export type BuiltInSortType = keyof typeof sortTypes
15
15
 
16
- function alphanumeric<TGenerics extends PartialGenerics>(
16
+ function alphanumeric<TGenerics extends AnyGenerics>(
17
17
  rowA: Row<TGenerics>,
18
18
  rowB: Row<TGenerics>,
19
19
  columnId: string
@@ -24,7 +24,7 @@ function alphanumeric<TGenerics extends PartialGenerics>(
24
24
  )
25
25
  }
26
26
 
27
- function alphanumericCaseSensitive<TGenerics extends PartialGenerics>(
27
+ function alphanumericCaseSensitive<TGenerics extends AnyGenerics>(
28
28
  rowA: Row<TGenerics>,
29
29
  rowB: Row<TGenerics>,
30
30
  columnId: string
@@ -84,7 +84,7 @@ function compareAlphanumeric(aStr: string, bStr: string) {
84
84
 
85
85
  // The text filter is more basic (less numeric support)
86
86
  // but is much faster
87
- function text<TGenerics extends PartialGenerics>(
87
+ function text<TGenerics extends AnyGenerics>(
88
88
  rowA: Row<TGenerics>,
89
89
  rowB: Row<TGenerics>,
90
90
  columnId: string
@@ -97,7 +97,7 @@ function text<TGenerics extends PartialGenerics>(
97
97
 
98
98
  // The text filter is more basic (less numeric support)
99
99
  // but is much faster
100
- function textCaseSensitive<TGenerics extends PartialGenerics>(
100
+ function textCaseSensitive<TGenerics extends AnyGenerics>(
101
101
  rowA: Row<TGenerics>,
102
102
  rowB: Row<TGenerics>,
103
103
  columnId: string
@@ -108,7 +108,7 @@ function textCaseSensitive<TGenerics extends PartialGenerics>(
108
108
  )
109
109
  }
110
110
 
111
- function datetime<TGenerics extends PartialGenerics>(
111
+ function datetime<TGenerics extends AnyGenerics>(
112
112
  rowA: Row<TGenerics>,
113
113
  rowB: Row<TGenerics>,
114
114
  columnId: string
@@ -119,7 +119,7 @@ function datetime<TGenerics extends PartialGenerics>(
119
119
  )
120
120
  }
121
121
 
122
- function basic<TGenerics extends PartialGenerics>(
122
+ function basic<TGenerics extends AnyGenerics>(
123
123
  rowA: Row<TGenerics>,
124
124
  rowB: Row<TGenerics>,
125
125
  columnId: string
package/src/types.ts CHANGED
@@ -88,7 +88,7 @@ export type DefaultGenerics = {
88
88
 
89
89
  export type AnyRender = (Comp: any, props: any) => any
90
90
 
91
- export type UseRenderer<TGenerics extends PartialGenerics> =
91
+ export type UseRenderer<TGenerics extends AnyGenerics> =
92
92
  TGenerics['Render'] extends (...args: any) => any ? TGenerics['Render'] : any
93
93
 
94
94
  export type PartialGenerics = Partial<DefaultGenerics>
@@ -97,7 +97,17 @@ export type AnyGenerics = {
97
97
  [TKey in keyof PartialGenerics]?: any
98
98
  }
99
99
 
100
- export type TableInstance<TGenerics extends PartialGenerics> =
100
+ export type TableFeature = {
101
+ getDefaultOptions?: (instance: any) => any
102
+ getInitialState?: () => any
103
+ getInstance?: (instance: any) => any
104
+ getDefaultColumn?: () => any
105
+ createColumn?: (column: any, instance: any) => any
106
+ createCell?: (cell: any, column: any, row: any, instance: any) => any
107
+ createRow?: (row: any, instance: any) => any
108
+ }
109
+
110
+ export type TableInstance<TGenerics extends AnyGenerics> =
101
111
  TableCore<TGenerics> &
102
112
  VisibilityInstance<TGenerics> &
103
113
  ColumnOrderInstance<TGenerics> &
@@ -113,18 +123,17 @@ export type TableInstance<TGenerics extends PartialGenerics> =
113
123
 
114
124
  //
115
125
 
116
- export type Options<TGenerics extends PartialGenerics> =
117
- CoreOptions<TGenerics> &
118
- VisibilityOptions &
119
- ColumnOrderOptions &
120
- ColumnPinningOptions &
121
- FiltersOptions<TGenerics> &
122
- SortingOptions<TGenerics> &
123
- GroupingOptions<TGenerics> &
124
- ExpandedOptions<TGenerics> &
125
- ColumnSizingOptions &
126
- PaginationOptions<TGenerics> &
127
- RowSelectionOptions<TGenerics>
126
+ export type Options<TGenerics extends AnyGenerics> = CoreOptions<TGenerics> &
127
+ VisibilityOptions &
128
+ ColumnOrderOptions &
129
+ ColumnPinningOptions &
130
+ FiltersOptions<TGenerics> &
131
+ SortingOptions<TGenerics> &
132
+ GroupingOptions<TGenerics> &
133
+ ExpandedOptions<TGenerics> &
134
+ ColumnSizingOptions &
135
+ PaginationOptions<TGenerics> &
136
+ RowSelectionOptions<TGenerics>
128
137
 
129
138
  export type Updater<T> = T | ((old: T) => T)
130
139
  export type OnChangeFn<T> = (updaterOrValue: Updater<T>, value: T) => void
@@ -140,7 +149,7 @@ export type TableState = VisibilityTableState &
140
149
  PaginationTableState &
141
150
  RowSelectionTableState
142
151
 
143
- export type Row<TGenerics extends PartialGenerics> = CoreRow<TGenerics> &
152
+ export type Row<TGenerics extends AnyGenerics> = CoreRow<TGenerics> &
144
153
  VisibilityRow<TGenerics> &
145
154
  HeadersRow<TGenerics> &
146
155
  GroupingRow &
@@ -151,7 +160,7 @@ export type RowValues = {
151
160
  [key: string]: any
152
161
  }
153
162
 
154
- export type RowModel<TGenerics extends PartialGenerics> = {
163
+ export type RowModel<TGenerics extends AnyGenerics> = {
155
164
  rows: Row<TGenerics>[]
156
165
  flatRows: Row<TGenerics>[]
157
166
  rowsById: Record<string, Row<TGenerics>>
@@ -159,7 +168,7 @@ export type RowModel<TGenerics extends PartialGenerics> = {
159
168
 
160
169
  export type AccessorFn<TData> = (originalRow: TData, index: number) => any
161
170
 
162
- // export type UserColumnDef<TGenerics extends PartialGenerics> = Overwrite<
171
+ // export type UserColumnDef<TGenerics extends AnyGenerics> = Overwrite<
163
172
  // ColumnDef<TGenerics>,
164
173
  // GeneratedProperties<false>
165
174
  // >
@@ -178,11 +187,11 @@ export type AccessorFn<TData> = (originalRow: TData, index: number) => any
178
187
  // }
179
188
  // : never
180
189
 
181
- export type Renderable<TGenerics extends PartialGenerics, TProps> =
190
+ export type Renderable<TGenerics extends AnyGenerics, TProps> =
182
191
  | string
183
192
  | ((props: TProps) => ReturnType<UseRenderer<TGenerics>>)
184
193
 
185
- export type ColumnDef<TGenerics extends PartialGenerics> =
194
+ export type ColumnDef<TGenerics extends AnyGenerics> =
186
195
  CoreColumnDef<TGenerics> &
187
196
  VisibilityColumnDef &
188
197
  ColumnPinningColumnDef &
@@ -191,7 +200,7 @@ export type ColumnDef<TGenerics extends PartialGenerics> =
191
200
  GroupingColumnDef<TGenerics> &
192
201
  ColumnSizingColumnDef
193
202
 
194
- export type Column<TGenerics extends PartialGenerics> = ColumnDef<TGenerics> &
203
+ export type Column<TGenerics extends AnyGenerics> = ColumnDef<TGenerics> &
195
204
  CoreColumn<TGenerics> &
196
205
  ColumnVisibilityColumn &
197
206
  ColumnPinningColumn &
@@ -200,10 +209,10 @@ export type Column<TGenerics extends PartialGenerics> = ColumnDef<TGenerics> &
200
209
  GroupingColumn<TGenerics> &
201
210
  ColumnSizingColumn<TGenerics>
202
211
 
203
- export type Cell<TGenerics extends PartialGenerics> = CoreCell<TGenerics> &
212
+ export type Cell<TGenerics extends AnyGenerics> = CoreCell<TGenerics> &
204
213
  GroupingCell<TGenerics>
205
214
 
206
- export type CoreCell<TGenerics extends PartialGenerics> = {
215
+ export type CoreCell<TGenerics extends AnyGenerics> = {
207
216
  id: string
208
217
  rowId: string
209
218
  columnId: string
@@ -214,10 +223,10 @@ export type CoreCell<TGenerics extends PartialGenerics> = {
214
223
  renderCell: () => string | null | ReturnType<UseRenderer<TGenerics>>
215
224
  }
216
225
 
217
- export type Header<TGenerics extends PartialGenerics> = CoreHeader<TGenerics> &
226
+ export type Header<TGenerics extends AnyGenerics> = CoreHeader<TGenerics> &
218
227
  ColumnSizingHeader<TGenerics>
219
228
 
220
- export type CoreHeader<TGenerics extends PartialGenerics> = {
229
+ export type CoreHeader<TGenerics extends AnyGenerics> = {
221
230
  id: string
222
231
  depth: number
223
232
  column: Column<TGenerics>
@@ -238,7 +247,7 @@ export type CoreHeader<TGenerics extends PartialGenerics> = {
238
247
  }) => string | null | ReturnType<UseRenderer<TGenerics>>
239
248
  }
240
249
 
241
- export type HeaderGroup<TGenerics extends PartialGenerics> = {
250
+ export type HeaderGroup<TGenerics extends AnyGenerics> = {
242
251
  id: string
243
252
  depth: number
244
253
  headers: Header<TGenerics>[]
@@ -155,7 +155,7 @@ export function groupRowsFn<TGenerics extends AnyGenerics>(
155
155
  }
156
156
  }
157
157
 
158
- function groupBy<TGenerics extends PartialGenerics>(
158
+ function groupBy<TGenerics extends AnyGenerics>(
159
159
  rows: Row<TGenerics>[],
160
160
  columnId: string
161
161
  ) {