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

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 (74) hide show
  1. package/build/cjs/core.js +9 -384
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/features/Cells.js +122 -0
  4. package/build/cjs/features/Cells.js.map +1 -0
  5. package/build/cjs/features/ColumnSizing.js +90 -37
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Columns.js +216 -0
  8. package/build/cjs/features/Columns.js.map +1 -0
  9. package/build/cjs/features/Expanding.js +2 -2
  10. package/build/cjs/features/Expanding.js.map +1 -1
  11. package/build/cjs/features/Filters.js +3 -3
  12. package/build/cjs/features/Filters.js.map +1 -1
  13. package/build/cjs/features/Grouping.js +2 -2
  14. package/build/cjs/features/Grouping.js.map +1 -1
  15. package/build/cjs/features/Headers.js +78 -153
  16. package/build/cjs/features/Headers.js.map +1 -1
  17. package/build/cjs/features/Ordering.js +1 -1
  18. package/build/cjs/features/Ordering.js.map +1 -1
  19. package/build/cjs/features/Pagination.js +2 -2
  20. package/build/cjs/features/Pagination.js.map +1 -1
  21. package/build/cjs/features/Pinning.js +172 -2
  22. package/build/cjs/features/Pinning.js.map +1 -1
  23. package/build/cjs/features/RowSelection.js +1 -1
  24. package/build/cjs/features/RowSelection.js.map +1 -1
  25. package/build/cjs/features/Rows.js +99 -0
  26. package/build/cjs/features/Rows.js.map +1 -0
  27. package/build/cjs/features/Sorting.js +2 -2
  28. package/build/cjs/features/Sorting.js.map +1 -1
  29. package/build/cjs/features/Visibility.js +51 -17
  30. package/build/cjs/features/Visibility.js.map +1 -1
  31. package/build/cjs/utils.js.map +1 -1
  32. package/build/esm/index.js +881 -695
  33. package/build/esm/index.js.map +1 -1
  34. package/build/stats-html.html +1 -1
  35. package/build/stats-react.json +418 -316
  36. package/build/types/core.d.ts +2 -79
  37. package/build/types/features/Cells.d.ts +14 -0
  38. package/build/types/features/ColumnSizing.d.ts +26 -18
  39. package/build/types/features/Columns.d.ts +54 -0
  40. package/build/types/features/Expanding.d.ts +2 -1
  41. package/build/types/features/Filters.d.ts +3 -1
  42. package/build/types/features/Grouping.d.ts +2 -1
  43. package/build/types/features/Headers.d.ts +3 -11
  44. package/build/types/features/Ordering.d.ts +1 -1
  45. package/build/types/features/Pagination.d.ts +2 -1
  46. package/build/types/features/Pinning.d.ts +18 -4
  47. package/build/types/features/RowSelection.d.ts +1 -1
  48. package/build/types/features/Rows.d.ts +29 -0
  49. package/build/types/features/Sorting.d.ts +2 -1
  50. package/build/types/features/Visibility.d.ts +7 -2
  51. package/build/types/types.d.ts +18 -10
  52. package/build/types/utils.d.ts +0 -1
  53. package/build/umd/index.development.js +882 -696
  54. package/build/umd/index.development.js.map +1 -1
  55. package/build/umd/index.production.js +1 -1
  56. package/build/umd/index.production.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/core.ts +28 -550
  59. package/src/features/Cells.ts +156 -0
  60. package/src/features/ColumnSizing.ts +103 -51
  61. package/src/features/Columns.ts +290 -0
  62. package/src/features/Expanding.ts +7 -3
  63. package/src/features/Filters.ts +11 -3
  64. package/src/features/Grouping.ts +3 -2
  65. package/src/features/Headers.ts +48 -138
  66. package/src/features/Ordering.ts +1 -1
  67. package/src/features/Pagination.ts +6 -2
  68. package/src/features/Pinning.ts +194 -3
  69. package/src/features/RowSelection.ts +1 -1
  70. package/src/features/Rows.ts +151 -0
  71. package/src/features/Sorting.ts +3 -2
  72. package/src/features/Visibility.ts +67 -20
  73. package/src/types.ts +25 -37
  74. package/src/utils.ts +1 -3
@@ -1,24 +1,19 @@
1
1
  import { RequiredKeys } from './utils';
2
- import { Updater, PropGetterValue, Options, TableState, ColumnDef, Row, Column, Cell, Header, AccessorFn, TableProps, TableBodyProps, PropGetter, Getter, RowProps, CellProps, TableInstance, RowValues, Renderable, UseRenderer, RowModel, TableFeature, TableGenerics } from './types';
2
+ import { Updater, Options, TableState, TableProps, TableBodyProps, PropGetter, TableInstance, Renderable, UseRenderer, TableFeature, TableGenerics } from './types';
3
3
  export declare type CoreTableState = {
4
4
  coreProgress: number;
5
5
  };
6
6
  export declare type CoreOptions<TGenerics extends TableGenerics> = {
7
7
  data: TGenerics['Row'][];
8
- columns: ColumnDef<TGenerics>[];
9
8
  state: Partial<TableState>;
10
9
  onStateChange: (updater: Updater<TableState>) => void;
11
10
  render: TGenerics['Render'];
12
- getCoreRowModel: (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics>;
13
11
  debugAll?: boolean;
14
12
  debugTable?: boolean;
15
13
  debugHeaders?: boolean;
16
14
  debugColumns?: boolean;
17
15
  debugRows?: boolean;
18
- defaultColumn?: Partial<ColumnDef<TGenerics>>;
19
16
  initialState?: Partial<TableState>;
20
- getSubRows?: (originalRow: TGenerics['Row'], index: number) => TGenerics['Row'][];
21
- getRowId?: (originalRow: TGenerics['Row'], index: number, parent?: Row<TGenerics>) => string;
22
17
  autoResetAll?: boolean;
23
18
  mergeOptions?: (defaultOptions: TableFeature, options: Partial<Options<TGenerics>>) => Options<TGenerics>;
24
19
  meta?: TGenerics['TableMeta'];
@@ -30,84 +25,12 @@ export declare type TableCore<TGenerics extends TableGenerics> = {
30
25
  setOptions: (newOptions: Updater<Options<TGenerics>>) => void;
31
26
  queue: (cb: () => void) => void;
32
27
  willUpdate: () => void;
33
- getRowId: (_: TGenerics['Row'], index: number, parent?: Row<TGenerics>) => string;
34
28
  getState: () => TableState;
35
29
  setState: (updater: Updater<TableState>) => void;
36
- getDefaultColumn: () => Partial<ColumnDef<TGenerics>>;
37
- getColumnDefs: () => ColumnDef<TGenerics>[];
38
- createColumn: (columnDef: ColumnDef<TGenerics>, depth: number, parent?: Column<TGenerics>) => Column<TGenerics>;
39
- getAllColumns: () => Column<TGenerics>[];
40
- getAllFlatColumns: () => Column<TGenerics>[];
41
- getAllFlatColumnsById: () => Record<string, Column<TGenerics>>;
42
- getAllLeafColumns: () => Column<TGenerics>[];
43
- getColumn: (columnId: string) => Column<TGenerics>;
44
- getTotalWidth: () => number;
45
- createCell: (row: Row<TGenerics>, column: Column<TGenerics>, value: any) => Cell<TGenerics>;
46
- createRow: (id: string, original: TGenerics['Row'] | undefined, rowIndex: number, depth: number, values: Record<string, any>) => Row<TGenerics>;
47
- getCoreRowModel: () => RowModel<TGenerics>;
48
- _getCoreRowModel?: () => RowModel<TGenerics>;
49
- getRowModel: () => RowModel<TGenerics>;
50
- getRow: (id: string) => Row<TGenerics>;
51
- getCell: (rowId: string, columnId: string) => Cell<TGenerics>;
52
30
  getTableProps: PropGetter<TableProps>;
53
31
  getTableBodyProps: PropGetter<TableBodyProps>;
54
- getRowProps: <TGetter extends Getter<RowProps>>(rowId: string, userProps?: TGetter) => undefined | PropGetterValue<RowProps, TGetter>;
55
- getCellProps: <TGetter extends Getter<CellProps>>(rowId: string, columnId: string, userProps?: TGetter) => undefined | PropGetterValue<CellProps, TGetter>;
56
- getTableWidth: () => number;
57
- getLeftTableWidth: () => number;
58
- getCenterTableWidth: () => number;
59
- getRightTableWidth: () => number;
60
32
  render: <TProps>(template: Renderable<TGenerics, TProps>, props: TProps) => string | null | ReturnType<UseRenderer<TGenerics>>;
61
33
  getOverallProgress: () => number;
62
- };
63
- export declare type CoreRow<TGenerics extends TableGenerics> = {
64
- id: string;
65
- index: number;
66
- original?: TGenerics['Row'];
67
- depth: number;
68
- values: RowValues;
69
- subRows: Row<TGenerics>[];
70
- getLeafRows: () => Row<TGenerics>[];
71
- getRowProps: PropGetter<RowProps>;
72
- originalSubRows?: TGenerics['Row'][];
73
- getAllCells: () => Cell<TGenerics>[];
74
- getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>;
75
- };
76
- export declare type CoreColumnDef<TGenerics extends TableGenerics> = {
77
- id: string;
78
- accessorKey?: string & keyof TGenerics['Row'];
79
- accessorFn?: AccessorFn<TGenerics['Row']>;
80
- columns?: ColumnDef<TGenerics>[];
81
- header?: Renderable<TGenerics, {
82
- instance: TableInstance<TGenerics>;
83
- header: Header<TGenerics>;
84
- column: Column<TGenerics>;
85
- }>;
86
- footer?: Renderable<TGenerics, {
87
- instance: TableInstance<TGenerics>;
88
- header: Header<TGenerics>;
89
- column: Column<TGenerics>;
90
- }>;
91
- cell?: Renderable<TGenerics, {
92
- instance: TableInstance<TGenerics>;
93
- row: Row<TGenerics>;
94
- column: Column<TGenerics>;
95
- cell: Cell<TGenerics>;
96
- value: TGenerics['Value'];
97
- }>;
98
- meta?: TGenerics['ColumnMeta'];
99
- };
100
- export declare type CoreColumnDefType = 'data' | 'display' | 'group';
101
- export declare type CoreColumn<TGenerics extends TableGenerics> = {
102
- id: string;
103
- depth: number;
104
- accessorFn?: AccessorFn<TGenerics['Row']>;
105
- columnDef: ColumnDef<TGenerics>;
106
- columnDefType: CoreColumnDefType;
107
- getWidth: () => number;
108
- columns: Column<TGenerics>[];
109
- parent?: Column<TGenerics>;
110
- getFlatColumns: () => Column<TGenerics>[];
111
- getLeafColumns: () => Column<TGenerics>[];
34
+ _features: readonly TableFeature[];
112
35
  };
113
36
  export declare function createTableInstance<TGenerics extends TableGenerics>(options: Options<TGenerics>): TableInstance<TGenerics>;
@@ -0,0 +1,14 @@
1
+ import { Cell, TableGenerics, TableInstance, Row, Column, Getter, CellProps, PropGetterValue } from '../types';
2
+ export declare type CellsRow<TGenerics extends TableGenerics> = {
3
+ getAllCells: () => Cell<TGenerics>[];
4
+ getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>;
5
+ };
6
+ export declare type CellsInstance<TGenerics extends TableGenerics> = {
7
+ createCell: (row: Row<TGenerics>, column: Column<TGenerics>, value: any) => Cell<TGenerics>;
8
+ getCell: (rowId: string, columnId: string) => Cell<TGenerics>;
9
+ getCellProps: <TGetter extends Getter<CellProps>>(rowId: string, columnId: string, userProps?: TGetter) => undefined | PropGetterValue<CellProps, TGetter>;
10
+ };
11
+ export declare const Cells: {
12
+ createRow: <TGenerics extends TableGenerics>(row: Row<TGenerics>, instance: TableInstance<TGenerics>) => CellsRow<TGenerics>;
13
+ createInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => CellsInstance<TGenerics_1>;
14
+ };
@@ -1,5 +1,10 @@
1
1
  import { Column, Getter, Header, OnChangeFn, TableGenerics, PropGetterValue, TableInstance, Updater } from '../types';
2
- export declare type ColumnSizing = Record<string, number>;
2
+ import { ColumnPinningPosition } from './Pinning';
3
+ export declare type ColumnSizingTableState = {
4
+ columnSizing: ColumnSizingState;
5
+ columnSizingInfo: ColumnSizingInfoState;
6
+ };
7
+ export declare type ColumnSizingState = Record<string, number>;
3
8
  export declare type ColumnSizingInfoState = {
4
9
  startOffset: null | number;
5
10
  startSize: null | number;
@@ -8,20 +13,16 @@ export declare type ColumnSizingInfoState = {
8
13
  isResizingColumn: false | string;
9
14
  columnSizingStart: [string, number][];
10
15
  };
11
- export declare type ColumnSizingTableState = {
12
- columnSizing: ColumnSizing;
13
- columnSizingInfo: ColumnSizingInfoState;
14
- };
15
16
  export declare type ColumnResizeMode = 'onChange' | 'onEnd';
16
17
  export declare type ColumnSizingOptions = {
17
18
  enableColumnResizing?: boolean;
18
19
  columnResizeMode?: ColumnResizeMode;
19
- onColumnSizingChange?: OnChangeFn<ColumnSizing>;
20
+ onColumnSizingChange?: OnChangeFn<ColumnSizingState>;
20
21
  onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>;
21
22
  };
22
23
  export declare type ColumnSizingDefaultOptions = {
23
24
  columnResizeMode: ColumnResizeMode;
24
- onColumnSizingChange: OnChangeFn<ColumnSizing>;
25
+ onColumnSizingChange: OnChangeFn<ColumnSizingState>;
25
26
  onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>;
26
27
  };
27
28
  export declare type ColumnResizerProps = {
@@ -32,8 +33,9 @@ export declare type ColumnResizerProps = {
32
33
  role?: string;
33
34
  };
34
35
  export declare type ColumnSizingInstance<TGenerics extends TableGenerics> = {
35
- getColumnWidth: (columnId: string) => number;
36
- setColumnSizing: (updater: Updater<ColumnSizing>) => void;
36
+ getColumnSize: (columnId: string) => number;
37
+ getColumnStart: (columnId: string, position?: ColumnPinningPosition) => number;
38
+ setColumnSizing: (updater: Updater<ColumnSizingState>) => void;
37
39
  setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void;
38
40
  resetColumnSizing: () => void;
39
41
  resetColumnSize: (columnId: string) => void;
@@ -44,15 +46,21 @@ export declare type ColumnSizingInstance<TGenerics extends TableGenerics> = {
44
46
  getHeaderResizerProps: <TGetter extends Getter<ColumnResizerProps>>(headerId: string, userProps?: TGetter) => undefined | PropGetterValue<ColumnResizerProps, TGetter>;
45
47
  getColumnIsResizing: (columnId: string) => boolean;
46
48
  getHeaderIsResizing: (headerId: string) => boolean;
49
+ getTotalSize: () => number;
50
+ getLeftTotalSize: () => number;
51
+ getCenterTotalSize: () => number;
52
+ getRightTotalSize: () => number;
47
53
  };
48
54
  export declare type ColumnSizingColumnDef = {
49
55
  enableResizing?: boolean;
50
56
  defaultCanResize?: boolean;
51
- width?: number;
52
- minWidth?: number;
53
- maxWidth?: number;
57
+ size?: number;
58
+ minSize?: number;
59
+ maxSize?: number;
54
60
  };
55
61
  export declare type ColumnSizingColumn<TGenerics extends TableGenerics> = {
62
+ getSize: () => number;
63
+ getStart: (position?: ColumnPinningPosition) => number;
56
64
  getCanResize: () => boolean;
57
65
  getIsResizing: () => boolean;
58
66
  resetSize: () => void;
@@ -64,16 +72,16 @@ export declare type ColumnSizingHeader<TGenerics extends TableGenerics> = {
64
72
  resetSize: () => void;
65
73
  };
66
74
  export declare const defaultColumnSizing: {
67
- width: number;
68
- minWidth: number;
69
- maxWidth: number;
75
+ size: number;
76
+ minSize: number;
77
+ maxSize: number;
70
78
  };
71
79
  export declare const ColumnSizing: {
72
80
  getDefaultColumn: () => ColumnSizingColumnDef;
73
81
  getInitialState: () => ColumnSizingTableState;
74
82
  getDefaultOptions: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>) => ColumnSizingDefaultOptions;
75
- getInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => ColumnSizingInstance<TGenerics_1>;
76
- createColumn: <TGenerics_2 extends TableGenerics>(column: Column<TGenerics_2>, instance: TableInstance<TGenerics_2>) => ColumnSizingColumn<TGenerics_2>;
77
- createHeader: <TGenerics_3 extends TableGenerics>(header: Header<TGenerics_3>, instance: TableInstance<TGenerics_3>) => ColumnSizingHeader<TGenerics_3>;
83
+ createColumn: <TGenerics_1 extends TableGenerics>(column: Column<TGenerics_1>, instance: TableInstance<TGenerics_1>) => ColumnSizingColumn<TGenerics_1>;
84
+ createHeader: <TGenerics_2 extends TableGenerics>(header: Header<TGenerics_2>, instance: TableInstance<TGenerics_2>) => ColumnSizingHeader<TGenerics_2>;
85
+ createInstance: <TGenerics_3 extends TableGenerics>(instance: TableInstance<TGenerics_3>) => ColumnSizingInstance<TGenerics_3>;
78
86
  };
79
87
  export declare function passiveEventSupported(): boolean;
@@ -0,0 +1,54 @@
1
+ import { Cell, Column, Header, TableGenerics, TableInstance, Row, AccessorFn, ColumnDef, Renderable } from '../types';
2
+ export declare type CoreColumnDefType = 'data' | 'display' | 'group';
3
+ export declare type CoreColumnDef<TGenerics extends TableGenerics> = {
4
+ id: string;
5
+ accessorKey?: string & keyof TGenerics['Row'];
6
+ accessorFn?: AccessorFn<TGenerics['Row']>;
7
+ columns?: ColumnDef<TGenerics>[];
8
+ header?: Renderable<TGenerics, {
9
+ instance: TableInstance<TGenerics>;
10
+ header: Header<TGenerics>;
11
+ column: Column<TGenerics>;
12
+ }>;
13
+ footer?: Renderable<TGenerics, {
14
+ instance: TableInstance<TGenerics>;
15
+ header: Header<TGenerics>;
16
+ column: Column<TGenerics>;
17
+ }>;
18
+ cell?: Renderable<TGenerics, {
19
+ instance: TableInstance<TGenerics>;
20
+ row: Row<TGenerics>;
21
+ column: Column<TGenerics>;
22
+ cell: Cell<TGenerics>;
23
+ value: TGenerics['Value'];
24
+ }>;
25
+ meta?: TGenerics['ColumnMeta'];
26
+ };
27
+ export declare type CoreColumn<TGenerics extends TableGenerics> = {
28
+ id: string;
29
+ depth: number;
30
+ accessorFn?: AccessorFn<TGenerics['Row']>;
31
+ columnDef: ColumnDef<TGenerics>;
32
+ columnDefType: CoreColumnDefType;
33
+ columns: Column<TGenerics>[];
34
+ parent?: Column<TGenerics>;
35
+ getFlatColumns: () => Column<TGenerics>[];
36
+ getLeafColumns: () => Column<TGenerics>[];
37
+ };
38
+ export declare type ColumnsOptions<TGenerics extends TableGenerics> = {
39
+ columns: ColumnDef<TGenerics>[];
40
+ defaultColumn?: Partial<ColumnDef<TGenerics>>;
41
+ };
42
+ export declare type ColumnsInstance<TGenerics extends TableGenerics> = {
43
+ getDefaultColumn: () => Partial<ColumnDef<TGenerics>>;
44
+ getColumnDefs: () => ColumnDef<TGenerics>[];
45
+ createColumn: (columnDef: ColumnDef<TGenerics>, depth: number, parent?: Column<TGenerics>) => Column<TGenerics>;
46
+ getAllColumns: () => Column<TGenerics>[];
47
+ getAllFlatColumns: () => Column<TGenerics>[];
48
+ getAllFlatColumnsById: () => Record<string, Column<TGenerics>>;
49
+ getAllLeafColumns: () => Column<TGenerics>[];
50
+ getColumn: (columnId: string) => Column<TGenerics>;
51
+ };
52
+ export declare const Columns: {
53
+ createInstance: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>) => ColumnsInstance<TGenerics>;
54
+ };
@@ -12,6 +12,7 @@ export declare type ExpandedRow = {
12
12
  getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(userProps?: TGetter) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>;
13
13
  };
14
14
  export declare type ExpandedOptions<TGenerics extends TableGenerics> = {
15
+ manualExpanding?: boolean;
15
16
  onExpandedChange?: OnChangeFn<ExpandedState>;
16
17
  autoResetExpanded?: boolean;
17
18
  enableExpanded?: boolean;
@@ -47,6 +48,6 @@ export declare type ExpandedInstance<TGenerics extends TableGenerics> = {
47
48
  export declare const Expanding: {
48
49
  getInitialState: () => ExpandedTableState;
49
50
  getDefaultOptions: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>) => ExpandedOptions<TGenerics>;
50
- getInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => ExpandedInstance<TGenerics_1>;
51
+ createInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => ExpandedInstance<TGenerics_1>;
51
52
  createRow: <TGenerics_2 extends TableGenerics>(row: Row<TGenerics_2>, instance: TableInstance<TGenerics_2>) => ExpandedRow;
52
53
  };
@@ -49,10 +49,12 @@ export declare type FiltersOptions<TGenerics extends TableGenerics> = {
49
49
  filterFromLeafRows?: boolean;
50
50
  filterFns?: TGenerics['FilterFns'];
51
51
  enableFilters?: boolean;
52
+ manualColumnFiltering?: boolean;
52
53
  onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>;
53
54
  autoResetColumnFilters?: boolean;
54
55
  enableColumnFilters?: boolean;
55
56
  getColumnFilteredRowModel?: (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics>;
57
+ manualGlobalFiltering?: boolean;
56
58
  globalFilterFn?: FilterFnOption<TGenerics>;
57
59
  onGlobalFilterChange?: OnChangeFn<any>;
58
60
  autoResetGlobalFilter?: boolean;
@@ -88,6 +90,6 @@ export declare const Filters: {
88
90
  getInitialState: () => FiltersTableState;
89
91
  getDefaultOptions: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => FiltersOptions<TGenerics_1>;
90
92
  createColumn: <TGenerics_2 extends TableGenerics>(column: Column<TGenerics_2>, instance: TableInstance<TGenerics_2>) => FiltersColumn<TGenerics_2>;
91
- getInstance: <TGenerics_3 extends TableGenerics>(instance: TableInstance<TGenerics_3>) => FiltersInstance<TGenerics_3>;
93
+ createInstance: <TGenerics_3 extends TableGenerics>(instance: TableInstance<TGenerics_3>) => FiltersInstance<TGenerics_3>;
92
94
  };
93
95
  export declare function shouldAutoRemoveFilter<TGenerics extends TableGenerics>(filterFn?: FilterFn<TGenerics>, value?: any, column?: Column<TGenerics>): boolean;
@@ -51,6 +51,7 @@ export declare type ColumnDefaultOptions = {
51
51
  enableGrouping: boolean;
52
52
  };
53
53
  export declare type GroupingOptions<TGenerics extends TableGenerics> = {
54
+ manualGrouping?: boolean;
54
55
  aggregationFns?: TGenerics['AggregationFns'];
55
56
  onGroupingChange?: OnChangeFn<GroupingState>;
56
57
  autoResetGrouping?: boolean;
@@ -85,7 +86,7 @@ export declare const Grouping: {
85
86
  getInitialState: () => GroupingTableState;
86
87
  getDefaultOptions: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => GroupingOptions<TGenerics_1>;
87
88
  createColumn: <TGenerics_2 extends TableGenerics>(column: Column<TGenerics_2>, instance: TableInstance<TGenerics_2>) => GroupingColumn<TGenerics_2>;
88
- getInstance: <TGenerics_3 extends TableGenerics>(instance: TableInstance<TGenerics_3>) => GroupingInstance<TGenerics_3>;
89
+ createInstance: <TGenerics_3 extends TableGenerics>(instance: TableInstance<TGenerics_3>) => GroupingInstance<TGenerics_3>;
89
90
  createRow: <TGenerics_4 extends TableGenerics>(row: Row<TGenerics_4>, instance: TableInstance<TGenerics_4>) => GroupingRow;
90
91
  createCell: <TGenerics_5 extends TableGenerics>(cell: Cell<TGenerics_5>, column: Column<TGenerics_5>, row: Row<TGenerics_5>, instance: TableInstance<TGenerics_5>) => GroupingCell<TGenerics_5>;
91
92
  orderColumns: <TGenerics_6 extends TableGenerics>(leafColumns: Column<TGenerics_6>[], grouping: string[], groupedColumnMode?: GroupingColumnMode) => Column<TGenerics_6>[];
@@ -1,16 +1,10 @@
1
- import { Cell, Column, FooterGroupProps, FooterProps, Getter, Header, HeaderGroup, HeaderGroupProps, HeaderProps, TableGenerics, PropGetterValue, TableInstance, Row } from '../types';
2
- export declare type HeadersRow<TGenerics extends TableGenerics> = {
3
- _getAllVisibleCells: () => Cell<TGenerics>[];
4
- getVisibleCells: () => Cell<TGenerics>[];
5
- getLeftVisibleCells: () => Cell<TGenerics>[];
6
- getCenterVisibleCells: () => Cell<TGenerics>[];
7
- getRightVisibleCells: () => Cell<TGenerics>[];
8
- };
1
+ import { Column, FooterGroupProps, FooterProps, Getter, Header, HeaderGroup, HeaderGroupProps, HeaderProps, TableGenerics, PropGetterValue, TableInstance } from '../types';
9
2
  export declare type HeadersInstance<TGenerics extends TableGenerics> = {
10
3
  createHeader: (column: Column<TGenerics>, options: {
11
4
  id?: string;
12
5
  isPlaceholder?: boolean;
13
6
  placeholderId?: string;
7
+ index: number;
14
8
  depth: number;
15
9
  }) => Header<TGenerics>;
16
10
  getHeaderGroups: () => HeaderGroup<TGenerics>[];
@@ -34,10 +28,8 @@ export declare type HeadersInstance<TGenerics extends TableGenerics> = {
34
28
  getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(id: string, userProps?: TGetter) => undefined | PropGetterValue<FooterGroupProps, TGetter>;
35
29
  getHeaderProps: <TGetter extends Getter<HeaderProps>>(headerId: string, userProps?: TGetter) => undefined | PropGetterValue<HeaderProps, TGetter>;
36
30
  getFooterProps: <TGetter extends Getter<FooterProps>>(headerId: string, userProps?: TGetter) => undefined | PropGetterValue<FooterProps, TGetter>;
37
- getTotalWidth: () => number;
38
31
  };
39
32
  export declare const Headers: {
40
- createRow: <TGenerics extends TableGenerics>(row: Row<TGenerics>, instance: TableInstance<TGenerics>) => HeadersRow<TGenerics>;
41
- getInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => HeadersInstance<TGenerics_1>;
33
+ createInstance: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>) => HeadersInstance<TGenerics>;
42
34
  };
43
35
  export declare function buildHeaderGroups<TGenerics extends TableGenerics>(allColumns: Column<TGenerics>[], columnsToGroup: Column<TGenerics>[], instance: TableInstance<TGenerics>, headerFamily?: 'center' | 'left' | 'right'): HeaderGroup<TGenerics>[];
@@ -17,5 +17,5 @@ export declare type ColumnOrderInstance<TGenerics extends TableGenerics> = {
17
17
  export declare const Ordering: {
18
18
  getInitialState: () => ColumnOrderTableState;
19
19
  getDefaultOptions: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>) => ColumnOrderDefaultOptions;
20
- getInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => ColumnOrderInstance<TGenerics_1>;
20
+ createInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => ColumnOrderInstance<TGenerics_1>;
21
21
  };
@@ -8,6 +8,7 @@ export declare type PaginationTableState = {
8
8
  pagination: PaginationState;
9
9
  };
10
10
  export declare type PaginationOptions<TGenerics extends TableGenerics> = {
11
+ manualPagination?: boolean;
11
12
  onPaginationChange?: OnChangeFn<PaginationState>;
12
13
  autoResetPageIndex?: boolean;
13
14
  getPaginationRowModel?: (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics>;
@@ -38,5 +39,5 @@ export declare type PaginationInstance<TGenerics extends TableGenerics> = {
38
39
  export declare const Pagination: {
39
40
  getInitialState: () => PaginationTableState;
40
41
  getDefaultOptions: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>) => PaginationDefaultOptions;
41
- getInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => PaginationInstance<TGenerics_1>;
42
+ createInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => PaginationInstance<TGenerics_1>;
42
43
  };
@@ -1,5 +1,5 @@
1
- import { OnChangeFn, Updater, TableInstance, Column, TableGenerics } from '../types';
2
- declare type ColumnPinningPosition = false | 'left' | 'right';
1
+ import { OnChangeFn, Updater, TableInstance, Column, TableGenerics, Row, Cell } from '../types';
2
+ export declare type ColumnPinningPosition = false | 'left' | 'right';
3
3
  export declare type ColumnPinningState = {
4
4
  left?: string[];
5
5
  right?: string[];
@@ -24,6 +24,16 @@ export declare type ColumnPinningColumn = {
24
24
  getIsPinned: () => ColumnPinningPosition;
25
25
  pin: (position: ColumnPinningPosition) => void;
26
26
  };
27
+ export declare type ColumnPinningRow<TGenerics extends TableGenerics> = {
28
+ getLeftVisibleCells: () => Cell<TGenerics>[];
29
+ getCenterVisibleCells: () => Cell<TGenerics>[];
30
+ getRightVisibleCells: () => Cell<TGenerics>[];
31
+ };
32
+ export declare type ColumnPinningCell<TGenerics extends TableGenerics> = {
33
+ getLeftVisibleCells: () => Cell<TGenerics>[];
34
+ getCenterVisibleCells: () => Cell<TGenerics>[];
35
+ getRightVisibleCells: () => Cell<TGenerics>[];
36
+ };
27
37
  export declare type ColumnPinningInstance<TGenerics extends TableGenerics> = {
28
38
  setColumnPinning: (updater: Updater<ColumnPinningState>) => void;
29
39
  resetColumnPinning: () => void;
@@ -32,11 +42,15 @@ export declare type ColumnPinningInstance<TGenerics extends TableGenerics> = {
32
42
  getColumnIsPinned: (columnId: string) => ColumnPinningPosition;
33
43
  getColumnPinnedIndex: (columnId: string) => number;
34
44
  getIsSomeColumnsPinned: () => boolean;
45
+ getLeftLeafColumns: () => Column<TGenerics>[];
46
+ getRightLeafColumns: () => Column<TGenerics>[];
47
+ getCenterLeafColumns: () => Column<TGenerics>[];
35
48
  };
36
49
  export declare const Pinning: {
37
50
  getInitialState: () => ColumnPinningTableState;
38
51
  getDefaultOptions: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>) => ColumnPinningDefaultOptions;
39
52
  createColumn: <TGenerics_1 extends TableGenerics>(column: Column<TGenerics_1>, instance: TableInstance<TGenerics_1>) => ColumnPinningColumn;
40
- getInstance: <TGenerics_2 extends TableGenerics>(instance: TableInstance<TGenerics_2>) => ColumnPinningInstance<TGenerics_2>;
53
+ createRow: <TGenerics_2 extends TableGenerics>(row: Row<TGenerics_2>, instance: TableInstance<TGenerics_2>) => ColumnPinningRow<TGenerics_2>;
54
+ createCell: <TGenerics_3 extends TableGenerics>(cell: Cell<TGenerics_3>, instance: TableInstance<TGenerics_3>) => ColumnPinningCell<TGenerics_3>;
55
+ createInstance: <TGenerics_4 extends TableGenerics>(instance: TableInstance<TGenerics_4>) => ColumnPinningInstance<TGenerics_4>;
41
56
  };
42
- export {};
@@ -51,7 +51,7 @@ export declare type RowSelectionInstance<TGenerics extends TableGenerics> = {
51
51
  export declare const RowSelection: {
52
52
  getInitialState: () => RowSelectionTableState;
53
53
  getDefaultOptions: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>) => RowSelectionOptions<TGenerics>;
54
- getInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => RowSelectionInstance<TGenerics_1>;
54
+ createInstance: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => RowSelectionInstance<TGenerics_1>;
55
55
  createRow: <TGenerics_2 extends TableGenerics>(row: Row<TGenerics_2>, instance: TableInstance<TGenerics_2>) => RowSelectionRow;
56
56
  };
57
57
  export declare function selectRowsFn<TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>, rowModel: RowModel<TGenerics>): RowModel<TGenerics>;
@@ -0,0 +1,29 @@
1
+ import { TableGenerics, TableInstance, Row, Getter, PropGetterValue, RowProps, RowModel, RowValues, PropGetter } from '../types';
2
+ export declare type CoreRow<TGenerics extends TableGenerics> = {
3
+ id: string;
4
+ index: number;
5
+ original?: TGenerics['Row'];
6
+ depth: number;
7
+ values: RowValues;
8
+ subRows: Row<TGenerics>[];
9
+ getLeafRows: () => Row<TGenerics>[];
10
+ getRowProps: PropGetter<RowProps>;
11
+ originalSubRows?: TGenerics['Row'][];
12
+ };
13
+ export declare type RowsOptions<TGenerics extends TableGenerics> = {
14
+ getCoreRowModel: (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics>;
15
+ getSubRows?: (originalRow: TGenerics['Row'], index: number) => TGenerics['Row'][];
16
+ getRowId?: (originalRow: TGenerics['Row'], index: number, parent?: Row<TGenerics>) => string;
17
+ };
18
+ export declare type RowsInstance<TGenerics extends TableGenerics> = {
19
+ getRowId: (_: TGenerics['Row'], index: number, parent?: Row<TGenerics>) => string;
20
+ createRow: (id: string, original: TGenerics['Row'] | undefined, rowIndex: number, depth: number, values: Record<string, any>) => Row<TGenerics>;
21
+ getCoreRowModel: () => RowModel<TGenerics>;
22
+ _getCoreRowModel?: () => RowModel<TGenerics>;
23
+ getRowModel: () => RowModel<TGenerics>;
24
+ getRow: (id: string) => Row<TGenerics>;
25
+ getRowProps: <TGetter extends Getter<RowProps>>(rowId: string, userProps?: TGetter) => undefined | PropGetterValue<RowProps, TGetter>;
26
+ };
27
+ export declare const Rows: {
28
+ createInstance: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>) => RowsInstance<TGenerics>;
29
+ };
@@ -40,6 +40,7 @@ export declare type SortingColumn<TGenerics extends TableGenerics> = {
40
40
  getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(userProps?: TGetter) => undefined | PropGetterValue<ToggleSortingProps, TGetter>;
41
41
  };
42
42
  export declare type SortingOptions<TGenerics extends TableGenerics> = {
43
+ manualSorting?: boolean;
43
44
  sortingFns?: TGenerics['SortingFns'];
44
45
  onSortingChange?: OnChangeFn<SortingState>;
45
46
  autoResetSorting?: boolean;
@@ -78,5 +79,5 @@ export declare const Sorting: {
78
79
  getInitialState: () => SortingTableState;
79
80
  getDefaultOptions: <TGenerics_1 extends TableGenerics>(instance: TableInstance<TGenerics_1>) => SortingOptions<TGenerics_1>;
80
81
  createColumn: <TGenerics_2 extends TableGenerics>(column: Column<TGenerics_2>, instance: TableInstance<TGenerics_2>) => SortingColumn<TGenerics_2>;
81
- getInstance: <TGenerics_3 extends TableGenerics>(instance: TableInstance<TGenerics_3>) => SortingInstance<TGenerics_3>;
82
+ createInstance: <TGenerics_3 extends TableGenerics>(instance: TableInstance<TGenerics_3>) => SortingInstance<TGenerics_3>;
82
83
  };
@@ -1,4 +1,4 @@
1
- import { Cell, Column, Getter, OnChangeFn, TableGenerics, PropGetterValue, TableInstance, Updater } from '../types';
1
+ import { Cell, Column, Getter, OnChangeFn, TableGenerics, PropGetterValue, TableInstance, Updater, Row } from '../types';
2
2
  export declare type VisibilityOptions = {
3
3
  onColumnVisibilityChange?: OnChangeFn<VisibilityState>;
4
4
  enableHiding?: boolean;
@@ -13,6 +13,9 @@ export declare type VisibilityTableState = {
13
13
  export declare type VisibilityInstance<TGenerics extends TableGenerics> = {
14
14
  getVisibleFlatColumns: () => Column<TGenerics>[];
15
15
  getVisibleLeafColumns: () => Column<TGenerics>[];
16
+ getLeftVisibleLeafColumns: () => Column<TGenerics>[];
17
+ getRightVisibleLeafColumns: () => Column<TGenerics>[];
18
+ getCenterVisibleLeafColumns: () => Column<TGenerics>[];
16
19
  setColumnVisibility: (updater: Updater<VisibilityState>) => void;
17
20
  toggleColumnVisibility: (columnId: string, value?: boolean) => void;
18
21
  toggleAllColumnsVisible: (value?: boolean) => void;
@@ -30,6 +33,7 @@ export declare type VisibilityColumnDef = {
30
33
  defaultIsVisible?: boolean;
31
34
  };
32
35
  export declare type VisibilityRow<TGenerics extends TableGenerics> = {
36
+ _getAllVisibleCells: () => Cell<TGenerics>[];
33
37
  getVisibleCells: () => Cell<TGenerics>[];
34
38
  };
35
39
  export declare type VisibilityColumn = {
@@ -45,6 +49,7 @@ export declare const Visibility: {
45
49
  defaultIsVisible: boolean;
46
50
  };
47
51
  createColumn: <TGenerics_1 extends TableGenerics>(column: Column<TGenerics_1>, instance: TableInstance<TGenerics_1>) => VisibilityColumn;
48
- getInstance: <TGenerics_2 extends TableGenerics>(instance: TableInstance<TGenerics_2>) => VisibilityInstance<TGenerics_2>;
52
+ createRow: <TGenerics_2 extends TableGenerics>(row: Row<TGenerics_2>, instance: TableInstance<TGenerics_2>) => VisibilityRow<TGenerics_2>;
53
+ createInstance: <TGenerics_3 extends TableGenerics>(instance: TableInstance<TGenerics_3>) => VisibilityInstance<TGenerics_3>;
49
54
  };
50
55
  export {};
@@ -1,8 +1,9 @@
1
- import { CoreColumn, CoreColumnDef, CoreOptions, CoreRow, CoreTableState, TableCore } from './core';
1
+ import { CoreOptions, CoreTableState, TableCore } from './core';
2
+ import { ColumnsOptions, CoreColumn, CoreColumnDef } from './features/Columns';
2
3
  import { VisibilityInstance, VisibilityTableState, VisibilityColumn as ColumnVisibilityColumn, VisibilityOptions, VisibilityColumnDef, VisibilityRow } from './features/Visibility';
3
4
  import { ColumnOrderInstance, ColumnOrderOptions, ColumnOrderTableState } from './features/Ordering';
4
- import { ColumnPinningColumn, ColumnPinningColumnDef, ColumnPinningInstance, ColumnPinningOptions, ColumnPinningTableState } from './features/Pinning';
5
- import { HeadersInstance, HeadersRow } from './features/Headers';
5
+ import { ColumnPinningColumn, ColumnPinningColumnDef, ColumnPinningInstance, ColumnPinningOptions, ColumnPinningRow, ColumnPinningTableState } from './features/Pinning';
6
+ import { HeadersInstance } from './features/Headers';
6
7
  import { FiltersColumn, FiltersColumnDef, FiltersInstance, FiltersOptions, FiltersTableState } from './features/Filters';
7
8
  import { SortingColumn, SortingColumnDef, SortingInstance, SortingOptions, SortingTableState } from './features/Sorting';
8
9
  import { GroupingCell, GroupingColumn, GroupingColumnDef, GroupingInstance, GroupingOptions, GroupingRow, GroupingTableState } from './features/Grouping';
@@ -11,6 +12,11 @@ import { Overwrite } from './utils';
11
12
  import { ColumnSizingColumn, ColumnSizingColumnDef, ColumnSizingHeader, ColumnSizingInstance, ColumnSizingOptions, ColumnSizingTableState } from './features/ColumnSizing';
12
13
  import { PaginationInstance, PaginationOptions, PaginationTableState } from './features/Pagination';
13
14
  import { RowSelectionInstance, RowSelectionOptions, RowSelectionRow, RowSelectionTableState } from './features/RowSelection';
15
+ import { ColumnsInstance } from './features/Columns';
16
+ import { CellsInstance, CellsRow } from './features/Cells';
17
+ import { CoreRow, RowsInstance, RowsOptions } from './features/Rows';
18
+ export declare type Updater<T> = T | ((old: T) => T);
19
+ export declare type OnChangeFn<T> = (updaterOrValue: Updater<T>) => void;
14
20
  export declare type TableGenerics = {
15
21
  Row?: any;
16
22
  Value?: any;
@@ -26,18 +32,17 @@ export declare type UseRenderer<TGenerics extends TableGenerics> = TGenerics['Re
26
32
  export declare type TableFeature = {
27
33
  getDefaultOptions?: (instance: any) => any;
28
34
  getInitialState?: () => any;
29
- getInstance?: (instance: any) => any;
35
+ createInstance?: (instance: any) => any;
30
36
  getDefaultColumn?: () => any;
31
37
  createColumn?: (column: any, instance: any) => any;
38
+ createHeader?: (column: any, instance: any) => any;
32
39
  createCell?: (cell: any, column: any, row: any, instance: any) => any;
33
40
  createRow?: (row: any, instance: any) => any;
34
41
  };
35
- export declare type TableInstance<TGenerics extends TableGenerics> = TableCore<TGenerics> & VisibilityInstance<TGenerics> & ColumnOrderInstance<TGenerics> & ColumnPinningInstance<TGenerics> & HeadersInstance<TGenerics> & FiltersInstance<TGenerics> & SortingInstance<TGenerics> & GroupingInstance<TGenerics> & ColumnSizingInstance<TGenerics> & ExpandedInstance<TGenerics> & PaginationInstance<TGenerics> & RowSelectionInstance<TGenerics>;
36
- export declare type Options<TGenerics extends TableGenerics> = CoreOptions<TGenerics> & VisibilityOptions & ColumnOrderOptions & ColumnPinningOptions & FiltersOptions<TGenerics> & SortingOptions<TGenerics> & GroupingOptions<TGenerics> & ExpandedOptions<TGenerics> & ColumnSizingOptions & PaginationOptions<TGenerics> & RowSelectionOptions<TGenerics>;
37
- export declare type Updater<T> = T | ((old: T) => T);
38
- export declare type OnChangeFn<T> = (updaterOrValue: Updater<T>) => void;
42
+ export declare type TableInstance<TGenerics extends TableGenerics> = TableCore<TGenerics> & ColumnsInstance<TGenerics> & RowsInstance<TGenerics> & CellsInstance<TGenerics> & VisibilityInstance<TGenerics> & ColumnOrderInstance<TGenerics> & ColumnPinningInstance<TGenerics> & HeadersInstance<TGenerics> & FiltersInstance<TGenerics> & SortingInstance<TGenerics> & GroupingInstance<TGenerics> & ColumnSizingInstance<TGenerics> & ExpandedInstance<TGenerics> & PaginationInstance<TGenerics> & RowSelectionInstance<TGenerics>;
43
+ export declare type Options<TGenerics extends TableGenerics> = CoreOptions<TGenerics> & ColumnsOptions<TGenerics> & RowsOptions<TGenerics> & VisibilityOptions & ColumnOrderOptions & ColumnPinningOptions & FiltersOptions<TGenerics> & SortingOptions<TGenerics> & GroupingOptions<TGenerics> & ExpandedOptions<TGenerics> & ColumnSizingOptions & PaginationOptions<TGenerics> & RowSelectionOptions<TGenerics>;
39
44
  export declare type TableState = CoreTableState & VisibilityTableState & ColumnOrderTableState & ColumnPinningTableState & FiltersTableState & SortingTableState & ExpandedTableState & GroupingTableState & ColumnSizingTableState & PaginationTableState & RowSelectionTableState;
40
- export declare type Row<TGenerics extends TableGenerics> = CoreRow<TGenerics> & VisibilityRow<TGenerics> & HeadersRow<TGenerics> & GroupingRow & RowSelectionRow & ExpandedRow;
45
+ export declare type Row<TGenerics extends TableGenerics> = CoreRow<TGenerics> & CellsRow<TGenerics> & VisibilityRow<TGenerics> & ColumnPinningRow<TGenerics> & GroupingRow & RowSelectionRow & ExpandedRow;
41
46
  export declare type RowValues = {
42
47
  [key: string]: any;
43
48
  };
@@ -64,9 +69,12 @@ export declare type CoreCell<TGenerics extends TableGenerics> = {
64
69
  export declare type Header<TGenerics extends TableGenerics> = CoreHeader<TGenerics> & ColumnSizingHeader<TGenerics>;
65
70
  export declare type CoreHeader<TGenerics extends TableGenerics> = {
66
71
  id: string;
72
+ index: number;
67
73
  depth: number;
68
74
  column: Column<TGenerics>;
69
- getWidth: () => number;
75
+ getStart: () => number;
76
+ getSize: () => number;
77
+ headerGroup: HeaderGroup<TGenerics>;
70
78
  subHeaders: Header<TGenerics>[];
71
79
  colSpan?: number;
72
80
  rowSpan?: number;
@@ -6,7 +6,6 @@ export declare type Overwrite<T, U extends {
6
6
  [TKey in keyof T]?: any;
7
7
  }> = Omit<T, keyof U> & U;
8
8
  export declare type IfDefined<T, N> = 0 extends 1 & T ? N : T extends {} ? T : N;
9
- export declare type DataUpdateFunction<T> = (input: T) => T;
10
9
  export declare function functionalUpdate<T>(updater: Updater<T>, input: T): T;
11
10
  export declare function noop(): void;
12
11
  export declare function getBatchGroups<T>(arr: T[], count: number): {