@tanstack/table-core 8.5.19 → 8.5.20

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 (45) hide show
  1. package/build/cjs/columnHelper.js.map +1 -1
  2. package/build/cjs/core/cell.js.map +1 -1
  3. package/build/cjs/core/column.js.map +1 -1
  4. package/build/cjs/core/headers.js.map +1 -1
  5. package/build/cjs/core/row.js.map +1 -1
  6. package/build/cjs/core/table.js.map +1 -1
  7. package/build/cjs/features/ColumnSizing.js.map +1 -1
  8. package/build/cjs/features/Expanding.js.map +1 -1
  9. package/build/cjs/features/Filters.js.map +1 -1
  10. package/build/cjs/features/Grouping.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/utils.js +0 -4
  18. package/build/cjs/utils.js.map +1 -1
  19. package/build/esm/index.js +0 -4
  20. package/build/esm/index.js.map +1 -1
  21. package/build/stats-html.html +1 -1
  22. package/build/stats-react.json +312 -312
  23. package/build/types/index.d.ts +253 -199
  24. package/build/umd/index.development.js +0 -4
  25. package/build/umd/index.development.js.map +1 -1
  26. package/build/umd/index.production.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/columnHelper.ts +27 -20
  29. package/src/core/cell.ts +3 -3
  30. package/src/core/column.ts +2 -5
  31. package/src/core/headers.ts +5 -5
  32. package/src/core/row.ts +1 -1
  33. package/src/core/table.ts +6 -7
  34. package/src/features/ColumnSizing.ts +8 -8
  35. package/src/features/Expanding.ts +4 -4
  36. package/src/features/Filters.ts +17 -11
  37. package/src/features/Grouping.ts +16 -10
  38. package/src/features/Ordering.ts +5 -5
  39. package/src/features/Pagination.ts +6 -6
  40. package/src/features/Pinning.ts +8 -8
  41. package/src/features/RowSelection.ts +4 -4
  42. package/src/features/Sorting.ts +15 -9
  43. package/src/features/Visibility.ts +7 -7
  44. package/src/types.ts +133 -110
  45. package/src/utils.ts +59 -46
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tanstack/table-core",
3
3
  "author": "Tanner Linsley",
4
- "version": "8.5.19",
4
+ "version": "8.5.20",
5
5
  "description": "Headless UI for building powerful tables & datagrids for TS/JS.",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/tanstack/table#readme",
@@ -1,12 +1,12 @@
1
1
  import {
2
+ AccessorColumnDef,
2
3
  AccessorFn,
3
- ColumnDef,
4
4
  DisplayColumnDef,
5
5
  GroupColumnDef,
6
6
  IdentifiedColumnDef,
7
7
  RowData,
8
8
  } from './types'
9
- import { DeepKeys, DeepValue, RequiredKeys } from './utils'
9
+ import { DeepValue } from './utils'
10
10
 
11
11
  // type Person = {
12
12
  // firstName: string
@@ -49,22 +49,29 @@ import { DeepKeys, DeepValue, RequiredKeys } from './utils'
49
49
  // cell: info => info.getValue(),
50
50
  // })
51
51
 
52
- export type ColumnHelper<TData extends RowData> = {
53
- accessor: <
54
- TAccessor extends AccessorFn<TData> | DeepKeys<TData>,
55
- TValue extends TAccessor extends AccessorFn<TData, infer TReturn>
56
- ? TReturn
57
- : TAccessor extends DeepKeys<TData>
58
- ? DeepValue<TData, TAccessor>
59
- : never
60
- >(
61
- accessor: TAccessor,
62
- column: TAccessor extends AccessorFn<TData>
63
- ? DisplayColumnDef<TData, TValue>
64
- : IdentifiedColumnDef<TData, TValue>
65
- ) => ColumnDef<TData, TValue>
66
- display: (column: DisplayColumnDef<TData>) => ColumnDef<TData, unknown>
67
- group: (column: GroupColumnDef<TData>) => ColumnDef<TData, unknown>
52
+ type AccessorType<TData, TAccessor> = TAccessor extends AccessorFn<
53
+ TData,
54
+ infer TReturn
55
+ >
56
+ ? TReturn
57
+ : DeepValue<TData, TAccessor>
58
+
59
+ type Accessor<TData extends RowData> = <
60
+ TAccessor extends AccessorFn<TData> | string,
61
+ TValue extends AccessorType<TData, TAccessor>
62
+ >(
63
+ accessor: TAccessor,
64
+ column: TAccessor extends AccessorFn<TData>
65
+ ? DisplayColumnDef<TData, TValue>
66
+ : IdentifiedColumnDef<TData, TValue>
67
+ ) => TValue extends never
68
+ ? never
69
+ : AccessorColumnDef<TData, AccessorType<TData, TAccessor>>
70
+
71
+ export interface ColumnHelper<TData extends RowData> {
72
+ accessor: Accessor<TData>
73
+ display: (column: DisplayColumnDef<TData>) => DisplayColumnDef<TData>
74
+ group: (column: GroupColumnDef<TData>) => GroupColumnDef<TData>
68
75
  }
69
76
 
70
77
  export function createColumnHelper<
@@ -82,7 +89,7 @@ export function createColumnHelper<
82
89
  accessorKey: accessor,
83
90
  }
84
91
  },
85
- display: column => column as ColumnDef<TData, unknown>,
86
- group: column => column as ColumnDef<TData, unknown>,
92
+ display: column => column as DisplayColumnDef<TData>,
93
+ group: column => column as GroupColumnDef<TData>,
87
94
  }
88
95
  }
package/src/core/cell.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { RowData, Cell, Column, Row, Table } from '../types'
2
2
  import { Getter, memo } from '../utils'
3
3
 
4
- export type CellContext<TData extends RowData, TValue> = {
4
+ export interface CellContext<TData extends RowData, TValue> {
5
5
  table: Table<TData>
6
6
  column: Column<TData, TValue>
7
7
  row: Row<TData>
@@ -10,7 +10,7 @@ export type CellContext<TData extends RowData, TValue> = {
10
10
  renderValue: Getter<TValue | null>
11
11
  }
12
12
 
13
- export type CoreCell<TData extends RowData, TValue> = {
13
+ export interface CoreCell<TData extends RowData, TValue> {
14
14
  id: string
15
15
  getValue: CellContext<TData, TValue>['getValue']
16
16
  renderValue: CellContext<TData, TValue>['renderValue']
@@ -24,7 +24,7 @@ export function createCell<TData extends RowData, TValue>(
24
24
  row: Row<TData>,
25
25
  column: Column<TData, TValue>,
26
26
  columnId: string
27
- ) {
27
+ ): Cell<TData, TValue> {
28
28
  const getRenderValue = () =>
29
29
  cell.getValue() ?? table.options.renderFallbackValue
30
30
 
@@ -1,17 +1,14 @@
1
- import { TaggedTemplateExpression } from '@babel/types'
2
1
  import {
3
2
  Column,
4
3
  Table,
5
4
  AccessorFn,
6
5
  ColumnDef,
7
- ColumnDefTemplate,
8
6
  RowData,
9
- ColumnMeta,
10
7
  ColumnDefResolved,
11
8
  } from '../types'
12
9
  import { memo } from '../utils'
13
10
 
14
- export type CoreColumn<TData extends RowData, TValue> = {
11
+ export interface CoreColumn<TData extends RowData, TValue> {
15
12
  id: string
16
13
  depth: number
17
14
  accessorFn?: AccessorFn<TData, TValue>
@@ -27,7 +24,7 @@ export function createColumn<TData extends RowData, TValue>(
27
24
  columnDef: ColumnDef<TData, TValue>,
28
25
  depth: number,
29
26
  parent?: Column<TData, TValue>
30
- ) {
27
+ ): Column<TData, TValue> {
31
28
  const defaultColumn = table._getDefaultColumnDef()
32
29
 
33
30
  const resolvedColumnDef = {
@@ -2,19 +2,19 @@ import { RowData, Column, Header, HeaderGroup, Table } from '../types'
2
2
  import { memo } from '../utils'
3
3
  import { TableFeature } from './table'
4
4
 
5
- export type CoreHeaderGroup<TData extends RowData> = {
5
+ export interface CoreHeaderGroup<TData extends RowData> {
6
6
  id: string
7
7
  depth: number
8
8
  headers: Header<TData, unknown>[]
9
9
  }
10
10
 
11
- export type HeaderContext<TData, TValue> = {
11
+ export interface HeaderContext<TData, TValue> {
12
12
  table: Table<TData>
13
13
  header: Header<TData, TValue>
14
14
  column: Column<TData, TValue>
15
15
  }
16
16
 
17
- export type CoreHeader<TData extends RowData, TValue> = {
17
+ export interface CoreHeader<TData extends RowData, TValue> {
18
18
  id: string
19
19
  index: number
20
20
  depth: number
@@ -29,7 +29,7 @@ export type CoreHeader<TData extends RowData, TValue> = {
29
29
  getContext: () => HeaderContext<TData, TValue>
30
30
  }
31
31
 
32
- export type HeadersInstance<TData extends RowData> = {
32
+ export interface HeadersInstance<TData extends RowData> {
33
33
  getHeaderGroups: () => HeaderGroup<TData>[]
34
34
  getLeftHeaderGroups: () => HeaderGroup<TData>[]
35
35
  getCenterHeaderGroups: () => HeaderGroup<TData>[]
@@ -63,7 +63,7 @@ function createHeader<TData extends RowData, TValue>(
63
63
  index: number
64
64
  depth: number
65
65
  }
66
- ) {
66
+ ): Header<TData, TValue> {
67
67
  const id = options.id ?? column.id
68
68
 
69
69
  let header: CoreHeader<TData, TValue> = {
package/src/core/row.ts CHANGED
@@ -2,7 +2,7 @@ import { RowData, Cell, Row, Table } from '../types'
2
2
  import { flattenBy, memo } from '../utils'
3
3
  import { createCell } from './cell'
4
4
 
5
- export type CoreRow<TData extends RowData> = {
5
+ export interface CoreRow<TData extends RowData> {
6
6
  id: string
7
7
  index: number
8
8
  original: TData
package/src/core/table.ts CHANGED
@@ -1,11 +1,10 @@
1
- import { flattenBy, functionalUpdate, memo, RequiredKeys } from '../utils'
1
+ import { functionalUpdate, memo, RequiredKeys } from '../utils'
2
2
 
3
3
  import {
4
4
  Updater,
5
5
  TableOptionsResolved,
6
6
  TableState,
7
7
  Table,
8
- ColumnDefTemplate,
9
8
  InitialTableState,
10
9
  Row,
11
10
  Column,
@@ -26,7 +25,7 @@ import { Headers } from './headers'
26
25
  import { ColumnSizing } from '../features/ColumnSizing'
27
26
  import { Expanding } from '../features/Expanding'
28
27
  import { Filters } from '../features/Filters'
29
- import { Grouping, GroupingColumnDef } from '../features/Grouping'
28
+ import { Grouping } from '../features/Grouping'
30
29
  import { Ordering } from '../features/Ordering'
31
30
  import { Pagination } from '../features/Pagination'
32
31
  import { Pinning } from '../features/Pinning'
@@ -34,7 +33,7 @@ import { RowSelection } from '../features/RowSelection'
34
33
  import { Sorting } from '../features/Sorting'
35
34
  import { Visibility } from '../features/Visibility'
36
35
 
37
- export type TableFeature = {
36
+ export interface TableFeature {
38
37
  getDefaultOptions?: (table: any) => any
39
38
  getInitialState?: (initialState?: InitialTableState) => any
40
39
  createTable?: (table: any) => any
@@ -61,9 +60,9 @@ const features = [
61
60
 
62
61
  //
63
62
 
64
- export type CoreTableState = {}
63
+ export interface CoreTableState {}
65
64
 
66
- export type CoreOptions<TData extends RowData> = {
65
+ export interface CoreOptions<TData extends RowData> {
67
66
  data: TData[]
68
67
  state: Partial<TableState>
69
68
  onStateChange: (updater: Updater<TableState>) => void
@@ -87,7 +86,7 @@ export type CoreOptions<TData extends RowData> = {
87
86
  renderFallbackValue: any
88
87
  }
89
88
 
90
- export type CoreInstance<TData extends RowData> = {
89
+ export interface CoreInstance<TData extends RowData> {
91
90
  initialState: TableState
92
91
  reset: () => void
93
92
  options: RequiredKeys<TableOptionsResolved<TData>, 'state'>
@@ -5,14 +5,14 @@ import { ColumnPinningPosition } from './Pinning'
5
5
 
6
6
  //
7
7
 
8
- export type ColumnSizingTableState = {
8
+ export interface ColumnSizingTableState {
9
9
  columnSizing: ColumnSizingState
10
10
  columnSizingInfo: ColumnSizingInfoState
11
11
  }
12
12
 
13
13
  export type ColumnSizingState = Record<string, number>
14
14
 
15
- export type ColumnSizingInfoState = {
15
+ export interface ColumnSizingInfoState {
16
16
  startOffset: null | number
17
17
  startSize: null | number
18
18
  deltaOffset: null | number
@@ -23,20 +23,20 @@ export type ColumnSizingInfoState = {
23
23
 
24
24
  export type ColumnResizeMode = 'onChange' | 'onEnd'
25
25
 
26
- export type ColumnSizingOptions = {
26
+ export interface ColumnSizingOptions {
27
27
  enableColumnResizing?: boolean
28
28
  columnResizeMode?: ColumnResizeMode
29
29
  onColumnSizingChange?: OnChangeFn<ColumnSizingState>
30
30
  onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>
31
31
  }
32
32
 
33
- export type ColumnSizingDefaultOptions = {
33
+ export interface ColumnSizingDefaultOptions {
34
34
  columnResizeMode: ColumnResizeMode
35
35
  onColumnSizingChange: OnChangeFn<ColumnSizingState>
36
36
  onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>
37
37
  }
38
38
 
39
- export type ColumnSizingInstance = {
39
+ export interface ColumnSizingInstance {
40
40
  setColumnSizing: (updater: Updater<ColumnSizingState>) => void
41
41
  setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void
42
42
  resetColumnSizing: (defaultState?: boolean) => void
@@ -47,14 +47,14 @@ export type ColumnSizingInstance = {
47
47
  getRightTotalSize: () => number
48
48
  }
49
49
 
50
- export type ColumnSizingColumnDef = {
50
+ export interface ColumnSizingColumnDef {
51
51
  enableResizing?: boolean
52
52
  size?: number
53
53
  minSize?: number
54
54
  maxSize?: number
55
55
  }
56
56
 
57
- export type ColumnSizingColumn = {
57
+ export interface ColumnSizingColumn {
58
58
  getSize: () => number
59
59
  getStart: (position?: ColumnPinningPosition) => number
60
60
  getCanResize: () => boolean
@@ -62,7 +62,7 @@ export type ColumnSizingColumn = {
62
62
  resetSize: () => void
63
63
  }
64
64
 
65
- export type ColumnSizingHeader = {
65
+ export interface ColumnSizingHeader {
66
66
  getSize: () => number
67
67
  getStart: (position?: ColumnPinningPosition) => number
68
68
  getResizeHandler: () => (event: unknown) => void
@@ -5,18 +5,18 @@ import { makeStateUpdater } from '../utils'
5
5
 
6
6
  export type ExpandedStateList = Record<string, boolean>
7
7
  export type ExpandedState = true | Record<string, boolean>
8
- export type ExpandedTableState = {
8
+ export interface ExpandedTableState {
9
9
  expanded: ExpandedState
10
10
  }
11
11
 
12
- export type ExpandedRow = {
12
+ export interface ExpandedRow {
13
13
  toggleExpanded: (expanded?: boolean) => void
14
14
  getIsExpanded: () => boolean
15
15
  getCanExpand: () => boolean
16
16
  getToggleExpandedHandler: () => () => void
17
17
  }
18
18
 
19
- export type ExpandedOptions<TData extends RowData> = {
19
+ export interface ExpandedOptions<TData extends RowData> {
20
20
  manualExpanding?: boolean
21
21
  onExpandedChange?: OnChangeFn<ExpandedState>
22
22
  autoResetExpanded?: boolean
@@ -27,7 +27,7 @@ export type ExpandedOptions<TData extends RowData> = {
27
27
  paginateExpandedRows?: boolean
28
28
  }
29
29
 
30
- export type ExpandedInstance<TData extends RowData> = {
30
+ export interface ExpandedInstance<TData extends RowData> {
31
31
  _autoResetExpanded: () => void
32
32
  setExpanded: (updater: Updater<ExpandedState>) => void
33
33
  toggleAllRowsExpanded: (expanded?: boolean) => void
@@ -13,25 +13,25 @@ import {
13
13
  } from '../types'
14
14
  import { functionalUpdate, isFunction, makeStateUpdater } from '../utils'
15
15
 
16
- export type FiltersTableState = {
16
+ export interface FiltersTableState {
17
17
  columnFilters: ColumnFiltersState
18
18
  globalFilter: any
19
19
  }
20
20
 
21
21
  export type ColumnFiltersState = ColumnFilter[]
22
22
 
23
- export type ColumnFilter = {
23
+ export interface ColumnFilter {
24
24
  id: string
25
25
  value: unknown
26
26
  }
27
27
 
28
- export type ResolvedColumnFilter<TData extends RowData> = {
28
+ export interface ResolvedColumnFilter<TData extends RowData> {
29
29
  id: string
30
30
  resolvedValue: unknown
31
31
  filterFn: FilterFn<TData>
32
32
  }
33
33
 
34
- export type FilterFn<TData extends RowData> = {
34
+ export interface FilterFn<TData extends RowData> {
35
35
  (
36
36
  row: Row<TData>,
37
37
  columnId: string,
@@ -64,13 +64,13 @@ export type FilterFnOption<TData extends RowData> =
64
64
  | keyof FilterFns
65
65
  | FilterFn<TData>
66
66
 
67
- export type FiltersColumnDef<TData extends RowData> = {
67
+ export interface FiltersColumnDef<TData extends RowData> {
68
68
  filterFn?: FilterFnOption<TData>
69
69
  enableColumnFilter?: boolean
70
70
  enableGlobalFilter?: boolean
71
71
  }
72
72
 
73
- export type FiltersColumn<TData extends RowData> = {
73
+ export interface FiltersColumn<TData extends RowData> {
74
74
  getAutoFilterFn: () => FilterFn<TData> | undefined
75
75
  getFilterFn: () => FilterFn<TData> | undefined
76
76
  setFilterValue: (updater: Updater<any>) => void
@@ -87,12 +87,12 @@ export type FiltersColumn<TData extends RowData> = {
87
87
  _getFacetedMinMaxValues?: () => undefined | [number, number]
88
88
  }
89
89
 
90
- export type FiltersRow<TData extends RowData> = {
90
+ export interface FiltersRow<TData extends RowData> {
91
91
  columnFilters: Record<string, boolean>
92
92
  columnFiltersMeta: Record<string, FilterMeta>
93
93
  }
94
94
 
95
- export type FiltersOptions<TData extends RowData> = {
95
+ interface FiltersOptionsBase<TData extends RowData> {
96
96
  enableFilters?: boolean
97
97
  manualFiltering?: boolean
98
98
  filterFromLeafRows?: boolean
@@ -121,15 +121,21 @@ export type FiltersOptions<TData extends RowData> = {
121
121
  table: Table<TData>,
122
122
  columnId: string
123
123
  ) => () => undefined | [number, number]
124
- } & (keyof FilterFns extends never
124
+ }
125
+
126
+ type ResolvedFilterFns = keyof FilterFns extends never
125
127
  ? {
126
128
  filterFns?: Record<string, FilterFn<any>>
127
129
  }
128
130
  : {
129
131
  filterFns: Record<keyof FilterFns, FilterFn<any>>
130
- })
132
+ }
133
+
134
+ export interface FiltersOptions<TData extends RowData>
135
+ extends FiltersOptionsBase<TData>,
136
+ ResolvedFilterFns {}
131
137
 
132
- export type FiltersInstance<TData extends RowData> = {
138
+ export interface FiltersInstance<TData extends RowData> {
133
139
  setColumnFilters: (updater: Updater<ColumnFiltersState>) => void
134
140
 
135
141
  resetColumnFilters: (defaultState?: boolean) => void
@@ -16,7 +16,7 @@ import { isFunction, makeStateUpdater } from '../utils'
16
16
 
17
17
  export type GroupingState = string[]
18
18
 
19
- export type GroupingTableState = {
19
+ export interface GroupingTableState {
20
20
  grouping: GroupingState
21
21
  }
22
22
 
@@ -34,7 +34,7 @@ export type AggregationFnOption<TData extends RowData> =
34
34
  | BuiltInAggregationFn
35
35
  | AggregationFn<TData>
36
36
 
37
- export type GroupingColumnDef<TData extends RowData, TValue> = {
37
+ export interface GroupingColumnDef<TData extends RowData, TValue> {
38
38
  aggregationFn?: AggregationFnOption<TData>
39
39
  aggregatedCell?: ColumnDefTemplate<
40
40
  ReturnType<Cell<TData, TValue>['getContext']>
@@ -42,7 +42,7 @@ export type GroupingColumnDef<TData extends RowData, TValue> = {
42
42
  enableGrouping?: boolean
43
43
  }
44
44
 
45
- export type GroupingColumn<TData extends RowData> = {
45
+ export interface GroupingColumn<TData extends RowData> {
46
46
  getCanGroup: () => boolean
47
47
  getIsGrouped: () => boolean
48
48
  getGroupedIndex: () => number
@@ -52,42 +52,48 @@ export type GroupingColumn<TData extends RowData> = {
52
52
  getAggregationFn: () => AggregationFn<TData> | undefined
53
53
  }
54
54
 
55
- export type GroupingRow = {
55
+ export interface GroupingRow {
56
56
  groupingColumnId?: string
57
57
  groupingValue?: unknown
58
58
  getIsGrouped: () => boolean
59
59
  _groupingValuesCache: Record<string, any>
60
60
  }
61
61
 
62
- export type GroupingCell = {
62
+ export interface GroupingCell {
63
63
  getIsGrouped: () => boolean
64
64
  getIsPlaceholder: () => boolean
65
65
  getIsAggregated: () => boolean
66
66
  }
67
67
 
68
- export type ColumnDefaultOptions = {
68
+ export interface ColumnDefaultOptions {
69
69
  // Column
70
70
  onGroupingChange: OnChangeFn<GroupingState>
71
71
  enableGrouping: boolean
72
72
  }
73
73
 
74
- export type GroupingOptions = {
74
+ interface GroupingOptionsBase {
75
75
  manualGrouping?: boolean
76
76
  onGroupingChange?: OnChangeFn<GroupingState>
77
77
  enableGrouping?: boolean
78
78
  getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>
79
79
  groupedColumnMode?: false | 'reorder' | 'remove'
80
- } & (keyof AggregationFns extends never
80
+ }
81
+
82
+ type ResolvedAggregationFns = keyof AggregationFns extends never
81
83
  ? {
82
84
  aggregationFns?: Record<string, AggregationFn<any>>
83
85
  }
84
86
  : {
85
87
  aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>
86
- })
88
+ }
89
+
90
+ export interface GroupingOptions
91
+ extends GroupingOptionsBase,
92
+ ResolvedAggregationFns {}
87
93
 
88
94
  export type GroupingColumnMode = false | 'reorder' | 'remove'
89
95
 
90
- export type GroupingInstance<TData extends RowData> = {
96
+ export interface GroupingInstance<TData extends RowData> {
91
97
  setGrouping: (updater: Updater<GroupingState>) => void
92
98
  resetGrouping: (defaultState?: boolean) => void
93
99
  getPreGroupedRowModel: () => RowModel<TData>
@@ -2,24 +2,24 @@ import { makeStateUpdater, memo } from '../utils'
2
2
 
3
3
  import { Table, OnChangeFn, Updater, Column, RowData } from '../types'
4
4
 
5
- import { Grouping, orderColumns } from './Grouping'
5
+ import { orderColumns } from './Grouping'
6
6
  import { TableFeature } from '../core/table'
7
7
 
8
- export type ColumnOrderTableState = {
8
+ export interface ColumnOrderTableState {
9
9
  columnOrder: ColumnOrderState
10
10
  }
11
11
 
12
12
  export type ColumnOrderState = string[]
13
13
 
14
- export type ColumnOrderOptions = {
14
+ export interface ColumnOrderOptions {
15
15
  onColumnOrderChange?: OnChangeFn<ColumnOrderState>
16
16
  }
17
17
 
18
- export type ColumnOrderDefaultOptions = {
18
+ export interface ColumnOrderDefaultOptions {
19
19
  onColumnOrderChange: OnChangeFn<ColumnOrderState>
20
20
  }
21
21
 
22
- export type ColumnOrderInstance<TData extends RowData> = {
22
+ export interface ColumnOrderInstance<TData extends RowData> {
23
23
  setColumnOrder: (updater: Updater<ColumnOrderState>) => void
24
24
  resetColumnOrder: (defaultState?: boolean) => void
25
25
  _getOrderColumnsFn: () => (
@@ -2,20 +2,20 @@ import { TableFeature } from '../core/table'
2
2
  import { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'
3
3
  import { functionalUpdate, makeStateUpdater, memo } from '../utils'
4
4
 
5
- export type PaginationState = {
5
+ export interface PaginationState {
6
6
  pageIndex: number
7
7
  pageSize: number
8
8
  }
9
9
 
10
- export type PaginationTableState = {
10
+ export interface PaginationTableState {
11
11
  pagination: PaginationState
12
12
  }
13
13
 
14
- export type PaginationInitialTableState = {
14
+ export interface PaginationInitialTableState {
15
15
  pagination?: Partial<PaginationState>
16
16
  }
17
17
 
18
- export type PaginationOptions = {
18
+ export interface PaginationOptions {
19
19
  pageCount?: number
20
20
  manualPagination?: boolean
21
21
  onPaginationChange?: OnChangeFn<PaginationState>
@@ -23,11 +23,11 @@ export type PaginationOptions = {
23
23
  getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>
24
24
  }
25
25
 
26
- export type PaginationDefaultOptions = {
26
+ export interface PaginationDefaultOptions {
27
27
  onPaginationChange: OnChangeFn<PaginationState>
28
28
  }
29
29
 
30
- export type PaginationInstance<TData extends RowData> = {
30
+ export interface PaginationInstance<TData extends RowData> {
31
31
  _autoResetPageIndex: () => void
32
32
  setPagination: (updater: Updater<PaginationState>) => void
33
33
  resetPagination: (defaultState?: boolean) => void
@@ -12,42 +12,42 @@ import { makeStateUpdater, memo } from '../utils'
12
12
 
13
13
  export type ColumnPinningPosition = false | 'left' | 'right'
14
14
 
15
- export type ColumnPinningState = {
15
+ export interface ColumnPinningState {
16
16
  left?: string[]
17
17
  right?: string[]
18
18
  }
19
19
 
20
- export type ColumnPinningTableState = {
20
+ export interface ColumnPinningTableState {
21
21
  columnPinning: ColumnPinningState
22
22
  }
23
23
 
24
- export type ColumnPinningOptions = {
24
+ export interface ColumnPinningOptions {
25
25
  onColumnPinningChange?: OnChangeFn<ColumnPinningState>
26
26
  enablePinning?: boolean
27
27
  }
28
28
 
29
- export type ColumnPinningDefaultOptions = {
29
+ export interface ColumnPinningDefaultOptions {
30
30
  onColumnPinningChange: OnChangeFn<ColumnPinningState>
31
31
  }
32
32
 
33
- export type ColumnPinningColumnDef = {
33
+ export interface ColumnPinningColumnDef {
34
34
  enablePinning?: boolean
35
35
  }
36
36
 
37
- export type ColumnPinningColumn = {
37
+ export interface ColumnPinningColumn {
38
38
  getCanPin: () => boolean
39
39
  getPinnedIndex: () => number
40
40
  getIsPinned: () => ColumnPinningPosition
41
41
  pin: (position: ColumnPinningPosition) => void
42
42
  }
43
43
 
44
- export type ColumnPinningRow<TData extends RowData> = {
44
+ export interface ColumnPinningRow<TData extends RowData> {
45
45
  getLeftVisibleCells: () => Cell<TData, unknown>[]
46
46
  getCenterVisibleCells: () => Cell<TData, unknown>[]
47
47
  getRightVisibleCells: () => Cell<TData, unknown>[]
48
48
  }
49
49
 
50
- export type ColumnPinningInstance<TData extends RowData> = {
50
+ export interface ColumnPinningInstance<TData extends RowData> {
51
51
  setColumnPinning: (updater: Updater<ColumnPinningState>) => void
52
52
  resetColumnPinning: (defaultState?: boolean) => void
53
53
  getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean
@@ -4,11 +4,11 @@ import { makeStateUpdater, memo } from '../utils'
4
4
 
5
5
  export type RowSelectionState = Record<string, boolean>
6
6
 
7
- export type RowSelectionTableState = {
7
+ export interface RowSelectionTableState {
8
8
  rowSelection: RowSelectionState
9
9
  }
10
10
 
11
- export type RowSelectionOptions<TData extends RowData> = {
11
+ export interface RowSelectionOptions<TData extends RowData> {
12
12
  enableRowSelection?: boolean | ((row: Row<TData>) => boolean)
13
13
  enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)
14
14
  enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)
@@ -26,7 +26,7 @@ export type RowSelectionOptions<TData extends RowData> = {
26
26
  // ) => RowModel<TData>
27
27
  }
28
28
 
29
- export type RowSelectionRow = {
29
+ export interface RowSelectionRow {
30
30
  getIsSelected: () => boolean
31
31
  getIsSomeSelected: () => boolean
32
32
  getIsAllSubRowsSelected: () => boolean
@@ -37,7 +37,7 @@ export type RowSelectionRow = {
37
37
  getToggleSelectedHandler: () => (event: unknown) => void
38
38
  }
39
39
 
40
- export type RowSelectionInstance<TData extends RowData> = {
40
+ export interface RowSelectionInstance<TData extends RowData> {
41
41
  getToggleAllRowsSelectedHandler: () => (event: unknown) => void
42
42
  getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void
43
43
  setRowSelection: (updater: Updater<RowSelectionState>) => void