@tanstack/react-table 8.0.0-alpha.1 → 8.0.0-alpha.2
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.
- package/build/cjs/core.js +37 -11
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +331 -0
- package/build/cjs/features/ColumnSizing.js.map +1 -0
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Headers.js +3 -0
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +361 -28
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +236 -192
- package/build/types/core.d.ts +4 -0
- package/build/types/createTable.d.ts +1 -1
- package/build/types/features/ColumnSizing.d.ts +73 -0
- package/build/types/sortTypes.d.ts +4 -4
- package/build/types/types.d.ts +9 -7
- package/build/types/utils.d.ts +2 -2
- package/build/umd/index.development.js +361 -28
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/core.tsx +43 -5
- package/src/createTable.tsx +1 -1
- package/src/features/ColumnSizing.ts +482 -0
- package/src/features/Filters.ts +1 -1
- package/src/features/Headers.ts +43 -6
- package/src/types.ts +35 -6
- package/src/utils.tsx +8 -2
- package/src/features/withColumnResizing.oldts +0 -281
package/build/types/core.d.ts
CHANGED
|
@@ -48,6 +48,10 @@ export declare type TableCore<TData, TValue, TFilterFns, TSortingFns, TAggregati
|
|
|
48
48
|
getTableBodyProps: PropGetter<TableBodyProps>;
|
|
49
49
|
getRowProps: <TGetter extends Getter<RowProps>>(rowId: string, userProps?: TGetter) => undefined | PropGetterValue<RowProps, TGetter>;
|
|
50
50
|
getCellProps: <TGetter extends Getter<CellProps>>(rowId: string, columnId: string, userProps?: TGetter) => undefined | PropGetterValue<CellProps, TGetter>;
|
|
51
|
+
getTableWidth: () => number;
|
|
52
|
+
getLeftTableWidth: () => number;
|
|
53
|
+
getCenterTableWidth: () => number;
|
|
54
|
+
getRightTableWidth: () => number;
|
|
51
55
|
};
|
|
52
56
|
export declare type CoreRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {
|
|
53
57
|
id: string;
|
|
@@ -2,7 +2,7 @@ import { Cell, Column, Row } from '.';
|
|
|
2
2
|
import { ReactTable, ColumnDef, AccessorFn, Options } from './types';
|
|
3
3
|
import { Overwrite } from './utils';
|
|
4
4
|
declare type TableHelper<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {
|
|
5
|
-
RowType
|
|
5
|
+
RowType<TTData>(): TableHelper<TTData, TValue, TFilterFns, TSortingFns, TAggregationFns>;
|
|
6
6
|
FilterFns: <TTFilterFns>(filterFns: TTFilterFns) => TableHelper<TData, TValue, TTFilterFns, TSortingFns, TAggregationFns>;
|
|
7
7
|
SortingFns: <TTSortingFns>(sortingFns: TTSortingFns) => TableHelper<TData, TValue, TFilterFns, TTSortingFns, TAggregationFns>;
|
|
8
8
|
AggregationFns: <TTAggregationFns>(aggregationFns: TTAggregationFns) => TableHelper<TData, TValue, TFilterFns, TSortingFns, TTAggregationFns>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { MouseEvent as ReactMouseEvent, TouchEvent as ReactTouchEvent } from 'react';
|
|
2
|
+
import { Column, Getter, Header, OnChangeFn, PropGetterValue, ReactTable, Updater } from '../types';
|
|
3
|
+
export declare type ColumnSizing = Record<string, number>;
|
|
4
|
+
export declare type ColumnSizingInfoState = {
|
|
5
|
+
startOffset: null | number;
|
|
6
|
+
startSize: null | number;
|
|
7
|
+
deltaOffset: null | number;
|
|
8
|
+
deltaPercentage: null | number;
|
|
9
|
+
isResizingColumn: false | string;
|
|
10
|
+
columnSizingStart: [string, number][];
|
|
11
|
+
};
|
|
12
|
+
export declare type ColumnSizingTableState = {
|
|
13
|
+
columnSizing: ColumnSizing;
|
|
14
|
+
columnSizingInfo: ColumnSizingInfoState;
|
|
15
|
+
};
|
|
16
|
+
export declare type ColumnResizeMode = 'onChange' | 'onEnd';
|
|
17
|
+
export declare type ColumnSizingOptions = {
|
|
18
|
+
enableColumnResizing?: boolean;
|
|
19
|
+
columnResizeMode?: ColumnResizeMode;
|
|
20
|
+
onColumnSizingChange?: OnChangeFn<ColumnSizing>;
|
|
21
|
+
onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>;
|
|
22
|
+
};
|
|
23
|
+
export declare type ColumnSizingDefaultOptions = {
|
|
24
|
+
columnResizeMode: ColumnResizeMode;
|
|
25
|
+
onColumnSizingChange: OnChangeFn<ColumnSizing>;
|
|
26
|
+
onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>;
|
|
27
|
+
};
|
|
28
|
+
export declare type HeaderResizerProps = {
|
|
29
|
+
title?: string;
|
|
30
|
+
onMouseDown?: (e: ReactMouseEvent) => void;
|
|
31
|
+
onTouchStart?: (e: ReactTouchEvent) => void;
|
|
32
|
+
draggable?: boolean;
|
|
33
|
+
role?: string;
|
|
34
|
+
};
|
|
35
|
+
export declare type ColumnSizingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {
|
|
36
|
+
setColumnSizing: (updater: Updater<ColumnSizing>) => void;
|
|
37
|
+
setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void;
|
|
38
|
+
resetColumnSizing: () => void;
|
|
39
|
+
resetColumnSize: (columnId: string) => void;
|
|
40
|
+
resetHeaderSize: (headerId: string) => void;
|
|
41
|
+
resetHeaderSizeInfo: () => void;
|
|
42
|
+
getColumnCanResize: (columnId: string) => boolean;
|
|
43
|
+
getHeaderCanResize: (headerId: string) => boolean;
|
|
44
|
+
getHeaderResizerProps: <TGetter extends Getter<HeaderResizerProps>>(columnId: string, userProps?: TGetter) => undefined | PropGetterValue<HeaderResizerProps, TGetter>;
|
|
45
|
+
getColumnIsResizing: (columnId: string) => boolean;
|
|
46
|
+
getHeaderIsResizing: (headerId: string) => boolean;
|
|
47
|
+
};
|
|
48
|
+
export declare type ColumnSizingColumnDef = {
|
|
49
|
+
enableResizing?: boolean;
|
|
50
|
+
defaultCanResize?: boolean;
|
|
51
|
+
};
|
|
52
|
+
export declare type ColumnSizingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {
|
|
53
|
+
getCanResize: () => boolean;
|
|
54
|
+
getIsResizing: () => boolean;
|
|
55
|
+
resetSize: () => void;
|
|
56
|
+
};
|
|
57
|
+
export declare type ColumnSizingHeader<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {
|
|
58
|
+
getCanResize: () => boolean;
|
|
59
|
+
getIsResizing: () => boolean;
|
|
60
|
+
getResizerProps: <TGetter extends Getter<HeaderResizerProps>>(userProps?: TGetter) => undefined | PropGetterValue<HeaderResizerProps, TGetter>;
|
|
61
|
+
resetSize: () => void;
|
|
62
|
+
};
|
|
63
|
+
export declare const defaultColumnSizing: {
|
|
64
|
+
width: number;
|
|
65
|
+
minWidth: number;
|
|
66
|
+
maxWidth: number;
|
|
67
|
+
};
|
|
68
|
+
export declare function getInitialState(): ColumnSizingTableState;
|
|
69
|
+
export declare function getDefaultOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>): ColumnSizingDefaultOptions;
|
|
70
|
+
export declare function getInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>): ColumnSizingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>;
|
|
71
|
+
export declare function createColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>): ColumnSizingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>;
|
|
72
|
+
export declare function createHeader<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(header: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>): ColumnSizingHeader<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>;
|
|
73
|
+
export declare function passiveEventSupported(): boolean;
|
|
@@ -10,8 +10,8 @@ export declare const sortTypes: {
|
|
|
10
10
|
export declare type BuiltInSortType = keyof typeof sortTypes;
|
|
11
11
|
declare function alphanumeric<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, columnId: string): number;
|
|
12
12
|
declare function alphanumericCaseSensitive<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, columnId: string): number;
|
|
13
|
-
declare function text<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, columnId: string):
|
|
14
|
-
declare function textCaseSensitive<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, columnId: string):
|
|
15
|
-
declare function datetime<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, columnId: string):
|
|
16
|
-
declare function basic<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, columnId: string):
|
|
13
|
+
declare function text<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, columnId: string): 1 | 0 | -1;
|
|
14
|
+
declare function textCaseSensitive<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, columnId: string): 1 | 0 | -1;
|
|
15
|
+
declare function datetime<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, columnId: string): 1 | 0 | -1;
|
|
16
|
+
declare function basic<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>, columnId: string): 1 | 0 | -1;
|
|
17
17
|
export {};
|
package/build/types/types.d.ts
CHANGED
|
@@ -9,12 +9,13 @@ import { SortingColumn, SortingColumnDef, SortingInstance, SortingOptions, Sorti
|
|
|
9
9
|
import { GroupingColumn, GroupingColumnDef, GroupingInstance, GroupingOptions, GroupingRow, GroupingTableState } from './features/Grouping';
|
|
10
10
|
import { ExpandedInstance, ExpandedOptions, ExpandedTableState } from './features/Expanding';
|
|
11
11
|
import { Overwrite } from './utils';
|
|
12
|
-
|
|
12
|
+
import { ColumnSizingColumn, ColumnSizingColumnDef, ColumnSizingHeader, ColumnSizingInstance, ColumnSizingOptions, ColumnSizingTableState } from './features/ColumnSizing';
|
|
13
|
+
export declare type ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = TableCore<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & VisibilityInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ColumnOrderInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ColumnPinningInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & HeadersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & FiltersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & SortingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & GroupingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ColumnSizingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ExpandedInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>;
|
|
13
14
|
export declare type Renderable<TProps> = React.ReactNode | React.FunctionComponent<TProps> | React.Component<TProps>;
|
|
14
|
-
export declare type Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = CoreOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & VisibilityOptions & ColumnOrderOptions & ColumnPinningOptions & FiltersOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & SortingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & GroupingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ExpandedOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns
|
|
15
|
-
export declare type Updater<T> = T | ((old
|
|
15
|
+
export declare type Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = CoreOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & VisibilityOptions & ColumnOrderOptions & ColumnPinningOptions & FiltersOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & SortingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & GroupingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ExpandedOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ColumnSizingOptions;
|
|
16
|
+
export declare type Updater<T> = T | ((old: T) => T);
|
|
16
17
|
export declare type OnChangeFn<T> = (updaterOrValue: Updater<T>, value: T) => void;
|
|
17
|
-
export declare type TableState = VisibilityTableState & ColumnOrderTableState & ColumnPinningTableState & FiltersTableState & SortingTableState & ExpandedTableState & GroupingTableState;
|
|
18
|
+
export declare type TableState = VisibilityTableState & ColumnOrderTableState & ColumnPinningTableState & FiltersTableState & SortingTableState & ExpandedTableState & GroupingTableState & ColumnSizingTableState;
|
|
18
19
|
export declare type Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = CoreRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & VisibilityRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & HeadersRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & GroupingRow;
|
|
19
20
|
export declare type RowValues = {
|
|
20
21
|
[key: string]: any;
|
|
@@ -25,8 +26,8 @@ export declare type RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregatio
|
|
|
25
26
|
rowsById: Record<string, Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>>;
|
|
26
27
|
};
|
|
27
28
|
export declare type AccessorFn<TData> = (originalRow: TData, index: number) => any;
|
|
28
|
-
export declare type ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = CoreColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & VisibilityColumnDef & ColumnPinningColumnDef & FiltersColumnDef<TFilterFns> & SortingColumnDef<TSortingFns> & GroupingColumnDef<TAggregationFns
|
|
29
|
-
export declare type Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & CoreColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ColumnVisibilityColumn & ColumnPinningColumn & FiltersColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & SortingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & GroupingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>;
|
|
29
|
+
export declare type ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = CoreColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & VisibilityColumnDef & ColumnPinningColumnDef & FiltersColumnDef<TFilterFns> & SortingColumnDef<TSortingFns> & GroupingColumnDef<TAggregationFns> & ColumnSizingColumnDef;
|
|
30
|
+
export declare type Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & CoreColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ColumnVisibilityColumn & ColumnPinningColumn & FiltersColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & SortingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & GroupingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ColumnSizingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>;
|
|
30
31
|
export declare type Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {
|
|
31
32
|
id: string;
|
|
32
33
|
rowId: string;
|
|
@@ -37,7 +38,8 @@ export declare type Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns
|
|
|
37
38
|
getCellProps: PropGetter<CellProps>;
|
|
38
39
|
renderCell: () => React.ReactNode;
|
|
39
40
|
};
|
|
40
|
-
export declare type Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =
|
|
41
|
+
export declare type Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = CoreHeader<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> & ColumnSizingHeader<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>;
|
|
42
|
+
export declare type CoreHeader<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {
|
|
41
43
|
id: string;
|
|
42
44
|
depth: number;
|
|
43
45
|
column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>;
|
package/build/types/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Getter, NoInfer, PropGetterValue, Renderable } from './types';
|
|
2
|
+
import { Getter, NoInfer, PropGetterValue, Renderable, TableState } from './types';
|
|
3
3
|
export declare type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
4
4
|
export declare type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
5
5
|
export declare type RequiredKeys<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|
|
@@ -8,7 +8,7 @@ export declare type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOu
|
|
|
8
8
|
export declare type Updater<TInput, TOutput> = TOutput | DataUpdateFunction<TInput, TOutput>;
|
|
9
9
|
export declare function functionalUpdate<TInput, TOutput = TInput>(updater: Updater<TInput, TOutput>, input: TInput): TOutput;
|
|
10
10
|
export declare function noop(): void;
|
|
11
|
-
export declare function makeStateUpdater(key:
|
|
11
|
+
export declare function makeStateUpdater(key: keyof TableState, instance: unknown): (updater: Updater<any, any>) => void;
|
|
12
12
|
export declare const safeUseLayoutEffect: typeof React.useLayoutEffect;
|
|
13
13
|
export declare function useMountedLayoutEffect(fn: any, deps: any[]): void;
|
|
14
14
|
export declare function useGetLatest<T>(obj: T): () => T;
|