@tanstack/table-core 8.0.0-alpha.80 → 8.0.0-alpha.84

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 (110) hide show
  1. package/build/cjs/core/cell.js +38 -0
  2. package/build/cjs/core/cell.js.map +1 -0
  3. package/build/cjs/core/column.js +88 -0
  4. package/build/cjs/core/column.js.map +1 -0
  5. package/build/cjs/{features/Headers.js → core/headers.js} +54 -66
  6. package/build/cjs/core/headers.js.map +1 -0
  7. package/build/cjs/core/instance.js +255 -0
  8. package/build/cjs/core/instance.js.map +1 -0
  9. package/build/cjs/core/row.js +77 -0
  10. package/build/cjs/core/row.js.map +1 -0
  11. package/build/cjs/createTable.js +4 -2
  12. package/build/cjs/createTable.js.map +1 -1
  13. package/build/cjs/features/ColumnSizing.js +5 -5
  14. package/build/cjs/features/ColumnSizing.js.map +1 -1
  15. package/build/cjs/features/Expanding.js.map +1 -1
  16. package/build/cjs/features/Filters.js +12 -7
  17. package/build/cjs/features/Filters.js.map +1 -1
  18. package/build/cjs/features/Grouping.js +5 -5
  19. package/build/cjs/features/Grouping.js.map +1 -1
  20. package/build/cjs/features/Ordering.js.map +1 -1
  21. package/build/cjs/features/Pagination.js.map +1 -1
  22. package/build/cjs/features/Pinning.js +17 -11
  23. package/build/cjs/features/Pinning.js.map +1 -1
  24. package/build/cjs/features/RowSelection.js.map +1 -1
  25. package/build/cjs/features/Sorting.js +9 -9
  26. package/build/cjs/features/Sorting.js.map +1 -1
  27. package/build/cjs/features/Visibility.js +3 -3
  28. package/build/cjs/features/Visibility.js.map +1 -1
  29. package/build/cjs/index.js +17 -5
  30. package/build/cjs/index.js.map +1 -1
  31. package/build/cjs/utils/filterRowsUtils.js +23 -21
  32. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  33. package/build/cjs/utils/getCoreRowModel.js +9 -8
  34. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  35. package/build/cjs/utils/getFacetedRowModel.js +1 -1
  36. package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
  37. package/build/cjs/utils/getFilteredRowModel.js +20 -9
  38. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  39. package/build/cjs/utils/getGroupedRowModel.js +14 -13
  40. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  41. package/build/cjs/utils/getSortedRowModel.js +2 -2
  42. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  43. package/build/esm/index.js +731 -810
  44. package/build/esm/index.js.map +1 -1
  45. package/build/stats-html.html +1 -1
  46. package/build/stats-react.json +418 -377
  47. package/build/types/core/cell.d.ts +9 -0
  48. package/build/types/{features/Columns.d.ts → core/column.d.ts} +3 -17
  49. package/build/types/{features/Headers.d.ts → core/headers.d.ts} +26 -11
  50. package/build/types/core/instance.d.ts +57 -0
  51. package/build/types/core/row.d.ts +15 -0
  52. package/build/types/createTable.d.ts +8 -5
  53. package/build/types/features/ColumnSizing.d.ts +2 -1
  54. package/build/types/features/Expanding.d.ts +2 -1
  55. package/build/types/features/Filters.d.ts +5 -3
  56. package/build/types/features/Grouping.d.ts +3 -2
  57. package/build/types/features/Ordering.d.ts +2 -1
  58. package/build/types/features/Pagination.d.ts +2 -1
  59. package/build/types/features/Pinning.d.ts +3 -2
  60. package/build/types/features/RowSelection.d.ts +2 -1
  61. package/build/types/features/Sorting.d.ts +2 -1
  62. package/build/types/features/Visibility.d.ts +2 -1
  63. package/build/types/index.d.ts +7 -2
  64. package/build/types/sortingFns.d.ts +4 -4
  65. package/build/types/types.d.ts +13 -53
  66. package/build/umd/index.development.js +738 -806
  67. package/build/umd/index.development.js.map +1 -1
  68. package/build/umd/index.production.js +1 -1
  69. package/build/umd/index.production.js.map +1 -1
  70. package/package.json +1 -1
  71. package/src/core/cell.ts +47 -0
  72. package/src/core/column.ts +148 -0
  73. package/src/{features/Headers.ts → core/headers.ts} +98 -99
  74. package/src/core/instance.ts +361 -0
  75. package/src/core/row.ts +85 -0
  76. package/src/createTable.ts +14 -7
  77. package/src/features/ColumnSizing.ts +6 -6
  78. package/src/features/Expanding.ts +1 -2
  79. package/src/features/Filters.ts +20 -8
  80. package/src/features/Grouping.ts +7 -6
  81. package/src/features/Ordering.ts +1 -1
  82. package/src/features/Pagination.ts +1 -1
  83. package/src/features/Pinning.ts +18 -9
  84. package/src/features/RowSelection.ts +1 -1
  85. package/src/features/Sorting.ts +11 -11
  86. package/src/features/Visibility.ts +3 -3
  87. package/src/index.ts +7 -8
  88. package/src/types.ts +17 -64
  89. package/src/utils/filterRowsUtils.ts +5 -3
  90. package/src/utils/getCoreRowModel.ts +4 -2
  91. package/src/utils/getFacetedRowModel.ts +1 -1
  92. package/src/utils/getFilteredRowModel.ts +24 -13
  93. package/src/utils/getGroupedRowModel.ts +9 -8
  94. package/src/utils/getSortedRowModel.ts +2 -2
  95. package/build/cjs/core.js +0 -168
  96. package/build/cjs/core.js.map +0 -1
  97. package/build/cjs/features/Cells.js +0 -101
  98. package/build/cjs/features/Cells.js.map +0 -1
  99. package/build/cjs/features/Columns.js +0 -189
  100. package/build/cjs/features/Columns.js.map +0 -1
  101. package/build/cjs/features/Headers.js.map +0 -1
  102. package/build/cjs/features/Rows.js +0 -94
  103. package/build/cjs/features/Rows.js.map +0 -1
  104. package/build/types/core.d.ts +0 -30
  105. package/build/types/features/Cells.d.ts +0 -13
  106. package/build/types/features/Rows.d.ts +0 -28
  107. package/src/core.ts +0 -246
  108. package/src/features/Cells.ts +0 -128
  109. package/src/features/Columns.ts +0 -289
  110. package/src/features/Rows.ts +0 -142
@@ -0,0 +1,9 @@
1
+ import { Cell, Column, Row, TableGenerics, TableInstance } from '../types';
2
+ export declare type CoreCell<TGenerics extends TableGenerics> = {
3
+ id: string;
4
+ getValue: () => TGenerics['Value'];
5
+ row: Row<TGenerics>;
6
+ column: Column<TGenerics>;
7
+ renderCell: () => string | null | TGenerics['Rendered'];
8
+ };
9
+ export declare function createCell<TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>, row: Row<TGenerics>, column: Column<TGenerics>, columnId: string): Cell<TGenerics>;
@@ -35,20 +35,6 @@ export declare type CoreColumn<TGenerics extends TableGenerics> = {
35
35
  getFlatColumns: () => Column<TGenerics>[];
36
36
  getLeafColumns: () => Column<TGenerics>[];
37
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
- };
38
+ export declare function createColumn<TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>, columnDef: ColumnDef<TGenerics> & {
39
+ columnDefType?: CoreColumnDefType;
40
+ }, depth: number, parent?: Column<TGenerics>): Column<TGenerics>;
@@ -1,12 +1,30 @@
1
1
  import { Column, Header, HeaderGroup, TableGenerics, TableInstance } from '../types';
2
+ import { TableFeature } from './instance';
3
+ export declare type CoreHeaderGroup<TGenerics extends TableGenerics> = {
4
+ id: string;
5
+ depth: number;
6
+ headers: Header<TGenerics>[];
7
+ };
8
+ export declare type CoreHeader<TGenerics extends TableGenerics> = {
9
+ id: string;
10
+ index: number;
11
+ depth: number;
12
+ column: Column<TGenerics>;
13
+ headerGroup: HeaderGroup<TGenerics>;
14
+ subHeaders: Header<TGenerics>[];
15
+ colSpan: number;
16
+ rowSpan: number;
17
+ getLeafHeaders: () => Header<TGenerics>[];
18
+ isPlaceholder: boolean;
19
+ placeholderId?: string;
20
+ renderHeader: (options?: {
21
+ renderPlaceholder?: boolean;
22
+ }) => string | null | TGenerics['Rendered'];
23
+ renderFooter: (options?: {
24
+ renderPlaceholder?: boolean;
25
+ }) => string | null | TGenerics['Rendered'];
26
+ };
2
27
  export declare type HeadersInstance<TGenerics extends TableGenerics> = {
3
- createHeader: (column: Column<TGenerics>, options: {
4
- id?: string;
5
- isPlaceholder?: boolean;
6
- placeholderId?: string;
7
- index: number;
8
- depth: number;
9
- }) => Header<TGenerics>;
10
28
  getHeaderGroups: () => HeaderGroup<TGenerics>[];
11
29
  getLeftHeaderGroups: () => HeaderGroup<TGenerics>[];
12
30
  getCenterHeaderGroups: () => HeaderGroup<TGenerics>[];
@@ -23,9 +41,6 @@ export declare type HeadersInstance<TGenerics extends TableGenerics> = {
23
41
  getLeftLeafHeaders: () => Header<TGenerics>[];
24
42
  getCenterLeafHeaders: () => Header<TGenerics>[];
25
43
  getRightLeafHeaders: () => Header<TGenerics>[];
26
- getHeader: (id: string) => Header<TGenerics>;
27
- };
28
- export declare const Headers: {
29
- createInstance: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>) => HeadersInstance<TGenerics>;
30
44
  };
45
+ export declare const Headers: TableFeature;
31
46
  export declare function buildHeaderGroups<TGenerics extends TableGenerics>(allColumns: Column<TGenerics>[], columnsToGroup: Column<TGenerics>[], instance: TableInstance<TGenerics>, headerFamily?: 'center' | 'left' | 'right'): HeaderGroup<TGenerics>[];
@@ -0,0 +1,57 @@
1
+ import { RequiredKeys } from '../utils';
2
+ import { Updater, TableOptionsResolved, TableState, TableInstance, Renderable, TableGenerics, InitialTableState, Row, Column, RowModel, ColumnDef } from '../types';
3
+ export declare type TableFeature = {
4
+ getDefaultOptions?: (instance: any) => any;
5
+ getInitialState?: (initialState?: InitialTableState) => any;
6
+ createInstance?: (instance: any) => any;
7
+ getDefaultColumnDef?: () => any;
8
+ createColumn?: (column: any, instance: any) => any;
9
+ createHeader?: (column: any, instance: any) => any;
10
+ createCell?: (cell: any, column: any, row: any, instance: any) => any;
11
+ createRow?: (row: any, instance: any) => any;
12
+ };
13
+ export declare type CoreTableState = {};
14
+ export declare type CoreOptions<TGenerics extends TableGenerics> = {
15
+ data: TGenerics['Row'][];
16
+ state: Partial<TableState>;
17
+ onStateChange: (updater: Updater<TableState>) => void;
18
+ render: TGenerics['Renderer'];
19
+ debugAll?: boolean;
20
+ debugTable?: boolean;
21
+ debugHeaders?: boolean;
22
+ debugColumns?: boolean;
23
+ debugRows?: boolean;
24
+ initialState?: InitialTableState;
25
+ autoResetAll?: boolean;
26
+ mergeOptions?: <T>(defaultOptions: T, options: Partial<T>) => T;
27
+ meta?: TGenerics['TableMeta'];
28
+ getCoreRowModel: (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics>;
29
+ getSubRows?: (originalRow: TGenerics['Row'], index: number) => undefined | TGenerics['Row'][];
30
+ getRowId?: (originalRow: TGenerics['Row'], index: number, parent?: Row<TGenerics>) => string;
31
+ columns: ColumnDef<TGenerics>[];
32
+ defaultColumn?: Partial<ColumnDef<TGenerics>>;
33
+ };
34
+ export declare type CoreInstance<TGenerics extends TableGenerics> = {
35
+ initialState: TableState;
36
+ reset: () => void;
37
+ options: RequiredKeys<TableOptionsResolved<TGenerics>, 'state'>;
38
+ setOptions: (newOptions: Updater<TableOptionsResolved<TGenerics>>) => void;
39
+ getState: () => TableState;
40
+ setState: (updater: Updater<TableState>) => void;
41
+ _features: readonly TableFeature[];
42
+ _queue: (cb: () => void) => void;
43
+ _render: <TProps>(template: Renderable<TGenerics, TProps>, props: TProps) => string | null | TGenerics['Rendered'];
44
+ _getRowId: (_: TGenerics['Row'], index: number, parent?: Row<TGenerics>) => string;
45
+ getCoreRowModel: () => RowModel<TGenerics>;
46
+ _getCoreRowModel?: () => RowModel<TGenerics>;
47
+ getRowModel: () => RowModel<TGenerics>;
48
+ getRow: (id: string) => Row<TGenerics>;
49
+ _getDefaultColumnDef: () => Partial<ColumnDef<TGenerics>>;
50
+ _getColumnDefs: () => ColumnDef<TGenerics>[];
51
+ _getAllFlatColumnsById: () => Record<string, Column<TGenerics>>;
52
+ getAllColumns: () => Column<TGenerics>[];
53
+ getAllFlatColumns: () => Column<TGenerics>[];
54
+ getAllLeafColumns: () => Column<TGenerics>[];
55
+ getColumn: (columnId: string) => Column<TGenerics>;
56
+ };
57
+ export declare function createTableInstance<TGenerics extends TableGenerics>(options: TableOptionsResolved<TGenerics>): TableInstance<TGenerics>;
@@ -0,0 +1,15 @@
1
+ import { Cell, Row, TableGenerics, TableInstance } from '../types';
2
+ export declare type CoreRow<TGenerics extends TableGenerics> = {
3
+ id: string;
4
+ index: number;
5
+ original?: TGenerics['Row'];
6
+ depth: number;
7
+ _valuesCache: Record<string, any>;
8
+ getValue: (columnId: string) => any;
9
+ subRows: Row<TGenerics>[];
10
+ getLeafRows: () => Row<TGenerics>[];
11
+ originalSubRows?: TGenerics['Row'][];
12
+ getAllCells: () => Cell<TGenerics>[];
13
+ _getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>;
14
+ };
15
+ export declare const createRow: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>, id: string, original: TGenerics["Row"] | undefined, rowIndex: number, depth: number, subRows?: Row<TGenerics>[] | undefined) => Row<TGenerics>;
@@ -1,7 +1,7 @@
1
1
  import { CustomFilterFns, FilterFn } from './features/Filters';
2
2
  import { AggregationFn, CustomAggregationFns } from './features/Grouping';
3
3
  import { CustomSortingFns, SortingFn } from './features/Sorting';
4
- import { ColumnDef, AccessorFn, AnyRender, TableGenerics, TableOptions } from './types';
4
+ import { ColumnDef, AccessorFn, AnyRender, TableGenerics, TableOptionsResolved, TableOptions } from './types';
5
5
  import { IfDefined, Overwrite } from './utils';
6
6
  export declare type TableFactory<TGenerics extends TableGenerics> = () => Table<TGenerics>;
7
7
  export declare type CreateTableOptions<TRender extends AnyRender, TFilterFns extends CustomFilterFns<any>, TSortingFns extends CustomSortingFns<any>, TAggregationFns extends CustomAggregationFns<any>, TGenerics extends TableGenerics> = Partial<{
@@ -9,11 +9,10 @@ export declare type CreateTableOptions<TRender extends AnyRender, TFilterFns ext
9
9
  filterFns?: TFilterFns;
10
10
  sortingFns?: TSortingFns;
11
11
  aggregationFns?: TAggregationFns;
12
- } & Omit<TableOptions<TGenerics>, 'filterFns' | 'sortingFns' | 'aggregationFns'>>;
12
+ } & Omit<TableOptionsResolved<TGenerics>, 'filterFns' | 'sortingFns' | 'aggregationFns'>>;
13
13
  export declare type Table<TGenerics extends TableGenerics> = {
14
14
  generics: TGenerics;
15
- options: Partial<TableOptions<TGenerics>>;
16
- setGenerics: <T extends TableGenerics>() => Table<T>;
15
+ options: Partial<TableOptionsResolved<TGenerics>>;
17
16
  setRowType: <TRow>() => Table<Overwrite<TGenerics, {
18
17
  Row: TRow;
19
18
  }>>;
@@ -23,7 +22,10 @@ export declare type Table<TGenerics extends TableGenerics> = {
23
22
  setColumnMetaType: <TColumnMeta>() => Table<Overwrite<TGenerics, {
24
23
  ColumnMeta: TColumnMeta;
25
24
  }>>;
26
- setOptions: <TFilterFns extends Record<string, FilterFn<any>>, TSortingFns extends Record<string, SortingFn<any>>, TAggregationFns extends Record<string, AggregationFn<any>>>(options: CreateTableOptions<any, TFilterFns, TSortingFns, TAggregationFns, TGenerics>) => Table<Overwrite<TGenerics, {
25
+ setFilterMetaType: <TFilterMeta>() => Table<Overwrite<TGenerics, {
26
+ FilterMeta: TFilterMeta;
27
+ }>>;
28
+ setOptions: <TFilterFns extends Record<string, FilterFn<TGenerics>>, TSortingFns extends Record<string, SortingFn<TGenerics>>, TAggregationFns extends Record<string, AggregationFn<TGenerics>>>(options: CreateTableOptions<any, TFilterFns, TSortingFns, TAggregationFns, TGenerics>) => Table<Overwrite<TGenerics, {
27
29
  FilterFns: IfDefined<TFilterFns, TGenerics['FilterFns']>;
28
30
  SortingFns: IfDefined<TSortingFns, TGenerics['SortingFns']>;
29
31
  AggregationFns: IfDefined<TAggregationFns, TGenerics['AggregationFns']>;
@@ -51,6 +53,7 @@ export declare type Table<TGenerics extends TableGenerics> = {
51
53
  accessorKey?: never;
52
54
  columns?: ColumnDef<any>[];
53
55
  }>) => ColumnDef<TGenerics>;
56
+ createOptions: (options: TableOptions<TGenerics>) => TableOptions<TGenerics>;
54
57
  };
55
58
  export declare function createTableFactory<TRenderer extends AnyRender>(opts: {
56
59
  render: TRenderer;
@@ -1,4 +1,5 @@
1
- import { OnChangeFn, TableGenerics, Updater, TableFeature } from '../types';
1
+ import { TableFeature } from '../core/instance';
2
+ import { OnChangeFn, TableGenerics, Updater } from '../types';
2
3
  import { ColumnPinningPosition } from './Pinning';
3
4
  export declare type ColumnSizingTableState = {
4
5
  columnSizing: ColumnSizingState;
@@ -1,5 +1,6 @@
1
1
  import { RowModel } from '..';
2
- import { OnChangeFn, TableGenerics, TableInstance, Row, Updater, TableFeature } from '../types';
2
+ import { TableFeature } from '../core/instance';
3
+ import { OnChangeFn, TableGenerics, TableInstance, Row, Updater } from '../types';
3
4
  export declare type ExpandedStateList = Record<string, boolean>;
4
5
  export declare type ExpandedState = true | Record<string, boolean>;
5
6
  export declare type ExpandedTableState = {
@@ -1,6 +1,7 @@
1
1
  import { RowModel } from '..';
2
+ import { TableFeature } from '../core/instance';
2
3
  import { BuiltInFilterFn } from '../filterFns';
3
- import { Column, OnChangeFn, TableGenerics, TableInstance, Row, Updater, TableFeature } from '../types';
4
+ import { Column, OnChangeFn, TableGenerics, TableInstance, Row, Updater } from '../types';
4
5
  import { Overwrite } from '../utils';
5
6
  export declare type FiltersTableState = {
6
7
  columnFilters: ColumnFiltersState;
@@ -17,7 +18,7 @@ export declare type ResolvedColumnFilter<TGenerics extends TableGenerics> = {
17
18
  filterFn: FilterFn<TGenerics>;
18
19
  };
19
20
  export declare type FilterFn<TGenerics extends TableGenerics> = {
20
- (row: Row<TGenerics>, columnId: string, filterValue: any): boolean;
21
+ (row: Row<TGenerics>, columnId: string, filterValue: any, addMeta: (meta: TGenerics['FilterMeta']) => void): boolean;
21
22
  resolveFilterValue?: TransformFilterValueFn<TGenerics>;
22
23
  autoRemove?: ColumnFilterAutoRemoveTestFn<TGenerics>;
23
24
  };
@@ -53,7 +54,8 @@ export declare type FiltersColumn<TGenerics extends TableGenerics> = {
53
54
  _getFacetedMinMaxValues?: () => undefined | [number, number];
54
55
  };
55
56
  export declare type FiltersRow<TGenerics extends TableGenerics> = {
56
- columnFilterMap: Record<string, boolean>;
57
+ columnFilters: Record<string, boolean>;
58
+ columnFiltersMeta: Record<string, TGenerics['FilterMeta']>;
57
59
  subRowsByFacetId: Record<string, Row<TGenerics>[]>;
58
60
  };
59
61
  export declare type FiltersOptions<TGenerics extends TableGenerics> = {
@@ -1,9 +1,10 @@
1
1
  import { RowModel } from '..';
2
2
  import { BuiltInAggregationFn } from '../aggregationFns';
3
- import { Cell, Column, OnChangeFn, TableInstance, Row, Updater, Renderable, TableGenerics, TableFeature } from '../types';
3
+ import { TableFeature } from '../core/instance';
4
+ import { Cell, Column, OnChangeFn, TableInstance, Row, Updater, Renderable, TableGenerics } from '../types';
4
5
  import { Overwrite } from '../utils';
5
6
  export declare type GroupingState = string[];
6
- export declare type AggregationFn<TGenerics extends TableGenerics> = (getLeafValues: () => TGenerics['Row'][], getChildValues: () => TGenerics['Row'][]) => any;
7
+ export declare type AggregationFn<TGenerics extends TableGenerics> = (getLeafValues: () => TGenerics['Value'][], getChildValues: () => TGenerics['Value'][]) => any;
7
8
  export declare type CustomAggregationFns<TGenerics extends TableGenerics> = Record<string, AggregationFn<TGenerics>>;
8
9
  export declare type AggregationFnOption<TGenerics extends TableGenerics> = 'auto' | BuiltInAggregationFn | keyof TGenerics['AggregationFns'] | AggregationFn<TGenerics>;
9
10
  export declare type GroupingTableState = {
@@ -1,4 +1,5 @@
1
- import { OnChangeFn, Updater, Column, TableGenerics, TableFeature } from '../types';
1
+ import { OnChangeFn, Updater, Column, TableGenerics } from '../types';
2
+ import { TableFeature } from '../core/instance';
2
3
  export declare type ColumnOrderTableState = {
3
4
  columnOrder: ColumnOrderState;
4
5
  };
@@ -1,4 +1,5 @@
1
- import { OnChangeFn, TableGenerics, TableInstance, RowModel, Updater, TableFeature } from '../types';
1
+ import { TableFeature } from '../core/instance';
2
+ import { OnChangeFn, TableGenerics, TableInstance, RowModel, Updater } from '../types';
2
3
  export declare type PaginationState = {
3
4
  pageIndex: number;
4
5
  pageSize: number;
@@ -1,4 +1,5 @@
1
- import { OnChangeFn, Updater, Column, TableGenerics, Cell, TableFeature } from '../types';
1
+ import { TableFeature } from '../core/instance';
2
+ import { OnChangeFn, Updater, Column, TableGenerics, Cell } from '../types';
2
3
  export declare type ColumnPinningPosition = false | 'left' | 'right';
3
4
  export declare type ColumnPinningState = {
4
5
  left?: string[];
@@ -31,7 +32,7 @@ export declare type ColumnPinningRow<TGenerics extends TableGenerics> = {
31
32
  export declare type ColumnPinningInstance<TGenerics extends TableGenerics> = {
32
33
  setColumnPinning: (updater: Updater<ColumnPinningState>) => void;
33
34
  resetColumnPinning: (defaultState?: boolean) => void;
34
- getIsSomeColumnsPinned: () => boolean;
35
+ getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean;
35
36
  getLeftLeafColumns: () => Column<TGenerics>[];
36
37
  getRightLeafColumns: () => Column<TGenerics>[];
37
38
  getCenterLeafColumns: () => Column<TGenerics>[];
@@ -1,4 +1,5 @@
1
- import { OnChangeFn, TableGenerics, TableInstance, Row, RowModel, Updater, TableFeature } from '../types';
1
+ import { TableFeature } from '../core/instance';
2
+ import { OnChangeFn, TableGenerics, TableInstance, Row, RowModel, Updater } from '../types';
2
3
  export declare type RowSelectionState = Record<string, boolean>;
3
4
  export declare type RowSelectionTableState = {
4
5
  rowSelection: RowSelectionState;
@@ -1,6 +1,7 @@
1
1
  import { RowModel } from '..';
2
+ import { TableFeature } from '../core/instance';
2
3
  import { BuiltInSortingFn } from '../sortingFns';
3
- import { OnChangeFn, TableGenerics, TableInstance, Row, Updater, TableFeature } from '../types';
4
+ import { OnChangeFn, TableGenerics, TableInstance, Row, Updater } from '../types';
4
5
  import { Overwrite } from '../utils';
5
6
  export declare type SortDirection = 'asc' | 'desc';
6
7
  export declare type ColumnSort = {
@@ -1,4 +1,5 @@
1
- import { Cell, Column, OnChangeFn, TableGenerics, Updater, TableFeature } from '../types';
1
+ import { TableFeature } from '../core/instance';
2
+ import { Cell, Column, OnChangeFn, TableGenerics, Updater } from '../types';
2
3
  export declare type VisibilityOptions = {
3
4
  onColumnVisibilityChange?: OnChangeFn<VisibilityState>;
4
5
  enableHiding?: boolean;
@@ -1,12 +1,14 @@
1
- export * from './core';
1
+ export * from './core/instance';
2
2
  export * from './types';
3
3
  export * from './createTable';
4
+ export * from './core/column';
5
+ export * from './core/headers';
6
+ export * from './core/row';
4
7
  export * from './features/ColumnSizing';
5
8
  export * from './features/ColumnSizing';
6
9
  export * from './features/Expanding';
7
10
  export * from './features/Filters';
8
11
  export * from './features/Grouping';
9
- export * from './features/Headers';
10
12
  export * from './features/Ordering';
11
13
  export * from './features/Pagination';
12
14
  export * from './features/Pinning';
@@ -14,6 +16,9 @@ export * from './features/RowSelection';
14
16
  export * from './features/Sorting';
15
17
  export * from './features/Visibility';
16
18
  export * from './features/Expanding';
19
+ export * from './filterFns';
20
+ export * from './sortingFns';
21
+ export * from './aggregationFns';
17
22
  export * from './utils';
18
23
  export * from './utils/getCoreRowModel';
19
24
  export * from './utils/getFilteredRowModel';
@@ -11,8 +11,8 @@ export declare const sortingFns: {
11
11
  export declare type BuiltInSortingFn = keyof typeof sortingFns;
12
12
  declare function alphanumeric<TGenerics extends TableGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number;
13
13
  declare function alphanumericCaseSensitive<TGenerics extends TableGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number;
14
- declare function text<TGenerics extends TableGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
15
- declare function textCaseSensitive<TGenerics extends TableGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
16
- declare function datetime<TGenerics extends TableGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
17
- declare function basic<TGenerics extends TableGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
14
+ declare function text<TGenerics extends TableGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 1 | -1 | 0;
15
+ declare function textCaseSensitive<TGenerics extends TableGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 1 | -1 | 0;
16
+ declare function datetime<TGenerics extends TableGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 1 | -1 | 0;
17
+ declare function basic<TGenerics extends TableGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 1 | -1 | 0;
18
18
  export {};
@@ -1,9 +1,9 @@
1
- import { CoreOptions, CoreTableState, CoreInstance } from './core';
2
- import { ColumnsOptions, CoreColumn, CoreColumnDef } from './features/Columns';
1
+ import { CoreOptions, CoreTableState, CoreInstance } from './core/instance';
2
+ import { CoreColumn, CoreColumnDef } from './core/column';
3
3
  import { VisibilityInstance, VisibilityTableState, VisibilityColumn as ColumnVisibilityColumn, VisibilityOptions, VisibilityColumnDef, VisibilityRow } from './features/Visibility';
4
4
  import { ColumnOrderInstance, ColumnOrderOptions, ColumnOrderTableState } from './features/Ordering';
5
5
  import { ColumnPinningColumn, ColumnPinningColumnDef, ColumnPinningInstance, ColumnPinningOptions, ColumnPinningRow, ColumnPinningTableState } from './features/Pinning';
6
- import { HeadersInstance } from './features/Headers';
6
+ import { CoreHeader, CoreHeaderGroup, HeadersInstance } from './core/headers';
7
7
  import { FiltersColumn, FiltersColumnDef, FiltersInstance, FiltersOptions, FiltersRow, FiltersTableState } from './features/Filters';
8
8
  import { SortingColumn, SortingColumnDef, SortingInstance, SortingOptions, SortingTableState } from './features/Sorting';
9
9
  import { GroupingCell, GroupingColumn, GroupingColumnDef, GroupingInstance, GroupingOptions, GroupingRow, GroupingTableState } from './features/Grouping';
@@ -11,9 +11,9 @@ import { ExpandedInstance, ExpandedOptions, ExpandedTableState, ExpandedRow } fr
11
11
  import { ColumnSizingColumn, ColumnSizingColumnDef, ColumnSizingHeader, ColumnSizingInstance, ColumnSizingOptions, ColumnSizingTableState } from './features/ColumnSizing';
12
12
  import { PaginationInitialTableState, PaginationInstance, PaginationOptions, PaginationTableState } from './features/Pagination';
13
13
  import { RowSelectionInstance, RowSelectionOptions, RowSelectionRow, RowSelectionTableState } from './features/RowSelection';
14
- import { ColumnsInstance } from './features/Columns';
15
- import { CellsInstance, CellsRow } from './features/Cells';
16
- import { CoreRow, RowsInstance, RowsOptions } from './features/Rows';
14
+ import { CoreRow } from './core/row';
15
+ import { PartialKeys } from './utils';
16
+ import { CoreCell } from './core/cell';
17
17
  export declare type Updater<T> = T | ((old: T) => T);
18
18
  export declare type OnChangeFn<T> = (updaterOrValue: Updater<T>) => void;
19
19
  export declare type TableGenerics = {
@@ -26,23 +26,15 @@ export declare type TableGenerics = {
26
26
  Rendered?: any;
27
27
  ColumnMeta?: any;
28
28
  TableMeta?: any;
29
+ FilterMeta?: any;
29
30
  };
30
31
  export declare type AnyRender = (Comp: any, props: any) => any;
31
- export declare type TableFeature = {
32
- getDefaultOptions?: (instance: any) => any;
33
- getInitialState?: (initialState?: InitialTableState) => any;
34
- createInstance?: (instance: any) => any;
35
- getDefaultColumn?: () => any;
36
- createColumn?: (column: any, instance: any) => any;
37
- createHeader?: (column: any, instance: any) => any;
38
- createCell?: (cell: any, column: any, row: any, instance: any) => any;
39
- createRow?: (row: any, instance: any) => any;
40
- };
41
- export declare type TableInstance<TGenerics extends TableGenerics> = CoreInstance<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>;
42
- export declare type TableOptions<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>;
32
+ export declare type TableInstance<TGenerics extends TableGenerics> = CoreInstance<TGenerics> & HeadersInstance<TGenerics> & VisibilityInstance<TGenerics> & ColumnOrderInstance<TGenerics> & ColumnPinningInstance<TGenerics> & FiltersInstance<TGenerics> & SortingInstance<TGenerics> & GroupingInstance<TGenerics> & ColumnSizingInstance<TGenerics> & ExpandedInstance<TGenerics> & PaginationInstance<TGenerics> & RowSelectionInstance<TGenerics>;
33
+ export declare type TableOptionsResolved<TGenerics extends TableGenerics> = CoreOptions<TGenerics> & VisibilityOptions & ColumnOrderOptions & ColumnPinningOptions & FiltersOptions<TGenerics> & SortingOptions<TGenerics> & GroupingOptions<TGenerics> & ExpandedOptions<TGenerics> & ColumnSizingOptions & PaginationOptions<TGenerics> & RowSelectionOptions<TGenerics>;
34
+ export declare type TableOptions<TGenerics extends TableGenerics> = Omit<PartialKeys<TableOptionsResolved<TGenerics>, 'state' | 'onStateChange'>, 'render'>;
43
35
  export declare type TableState = CoreTableState & VisibilityTableState & ColumnOrderTableState & ColumnPinningTableState & FiltersTableState & SortingTableState & ExpandedTableState & GroupingTableState & ColumnSizingTableState & PaginationTableState & RowSelectionTableState;
44
36
  export declare type InitialTableState = Partial<CoreTableState & VisibilityTableState & ColumnOrderTableState & ColumnPinningTableState & FiltersTableState & SortingTableState & ExpandedTableState & GroupingTableState & ColumnSizingTableState & PaginationInitialTableState & RowSelectionTableState>;
45
- export declare type Row<TGenerics extends TableGenerics> = CoreRow<TGenerics> & CellsRow<TGenerics> & VisibilityRow<TGenerics> & ColumnPinningRow<TGenerics> & FiltersRow<TGenerics> & GroupingRow & RowSelectionRow & ExpandedRow;
37
+ export declare type Row<TGenerics extends TableGenerics> = CoreRow<TGenerics> & VisibilityRow<TGenerics> & ColumnPinningRow<TGenerics> & FiltersRow<TGenerics> & GroupingRow & RowSelectionRow & ExpandedRow;
46
38
  export declare type RowValues = {
47
39
  [key: string]: any;
48
40
  };
@@ -54,40 +46,8 @@ export declare type RowModel<TGenerics extends TableGenerics> = {
54
46
  export declare type AccessorFn<TData> = (originalRow: TData, index: number) => any;
55
47
  export declare type Renderable<TGenerics extends TableGenerics, TProps> = string | ((props: TProps) => TGenerics['Rendered']);
56
48
  export declare type ColumnDef<TGenerics extends TableGenerics> = CoreColumnDef<TGenerics> & VisibilityColumnDef & ColumnPinningColumnDef & FiltersColumnDef<TGenerics> & SortingColumnDef<TGenerics> & GroupingColumnDef<TGenerics> & ColumnSizingColumnDef;
57
- export declare type Column<TGenerics extends TableGenerics> = ColumnDef<TGenerics> & CoreColumn<TGenerics> & ColumnVisibilityColumn & ColumnPinningColumn & FiltersColumn<TGenerics> & SortingColumn<TGenerics> & GroupingColumn<TGenerics> & ColumnSizingColumn<TGenerics>;
49
+ export declare type Column<TGenerics extends TableGenerics> = CoreColumn<TGenerics> & ColumnVisibilityColumn & ColumnPinningColumn & FiltersColumn<TGenerics> & SortingColumn<TGenerics> & GroupingColumn<TGenerics> & ColumnSizingColumn<TGenerics>;
58
50
  export declare type Cell<TGenerics extends TableGenerics> = CoreCell<TGenerics> & GroupingCell<TGenerics>;
59
- export declare type CoreCell<TGenerics extends TableGenerics> = {
60
- id: string;
61
- rowId: string;
62
- columnId: string;
63
- getValue: () => TGenerics['Value'];
64
- row: Row<TGenerics>;
65
- column: Column<TGenerics>;
66
- renderCell: () => string | null | TGenerics['Rendered'];
67
- };
68
51
  export declare type Header<TGenerics extends TableGenerics> = CoreHeader<TGenerics> & ColumnSizingHeader<TGenerics>;
69
- export declare type CoreHeader<TGenerics extends TableGenerics> = {
70
- id: string;
71
- index: number;
72
- depth: number;
73
- column: Column<TGenerics>;
74
- headerGroup: HeaderGroup<TGenerics>;
75
- subHeaders: Header<TGenerics>[];
76
- colSpan?: number;
77
- rowSpan?: number;
78
- getLeafHeaders: () => Header<TGenerics>[];
79
- isPlaceholder?: boolean;
80
- placeholderId?: string;
81
- renderHeader: (options?: {
82
- renderPlaceholder?: boolean;
83
- }) => string | null | TGenerics['Rendered'];
84
- renderFooter: (options?: {
85
- renderPlaceholder?: boolean;
86
- }) => string | null | TGenerics['Rendered'];
87
- };
88
- export declare type HeaderGroup<TGenerics extends TableGenerics> = {
89
- id: string;
90
- depth: number;
91
- headers: Header<TGenerics>[];
92
- };
52
+ export declare type HeaderGroup<TGenerics extends TableGenerics> = CoreHeaderGroup<TGenerics>;
93
53
  export declare type NoInfer<A extends any> = [A][A extends any ? 0 : never];