@tanstack/table-core 8.0.0-alpha.22 → 8.0.0-alpha.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/build/cjs/aggregationTypes.js +21 -19
  2. package/build/cjs/aggregationTypes.js.map +1 -1
  3. package/build/cjs/core.js +17 -29
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js +2 -2
  6. package/build/cjs/createTable.js.map +1 -1
  7. package/build/cjs/features/ColumnSizing.js +23 -8
  8. package/build/cjs/features/ColumnSizing.js.map +1 -1
  9. package/build/cjs/features/Expanding.js +1 -8
  10. package/build/cjs/features/Expanding.js.map +1 -1
  11. package/build/cjs/features/Filters.js +1 -1
  12. package/build/cjs/features/Filters.js.map +1 -1
  13. package/build/cjs/features/Grouping.js +1 -1
  14. package/build/cjs/features/Grouping.js.map +1 -1
  15. package/build/cjs/features/Headers.js.map +1 -1
  16. package/build/cjs/features/Ordering.js.map +1 -1
  17. package/build/cjs/features/Pagination.js.map +1 -1
  18. package/build/cjs/features/Pinning.js.map +1 -1
  19. package/build/cjs/features/RowSelection.js +3 -3
  20. package/build/cjs/features/RowSelection.js.map +1 -1
  21. package/build/cjs/features/Sorting.js.map +1 -1
  22. package/build/cjs/features/Visibility.js.map +1 -1
  23. package/build/cjs/filterTypes.js.map +1 -1
  24. package/build/cjs/sortTypes.js.map +1 -1
  25. package/build/cjs/utils/columnFilterRowsFn.js +20 -78
  26. package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
  27. package/build/cjs/utils/filterRowsUtils.js +100 -0
  28. package/build/cjs/utils/filterRowsUtils.js.map +1 -0
  29. package/build/cjs/utils/globalFilterRowsFn.js +10 -62
  30. package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
  31. package/build/cjs/utils/groupRowsFn.js +15 -15
  32. package/build/cjs/utils/groupRowsFn.js.map +1 -1
  33. package/build/cjs/utils/sortRowsFn.js +1 -1
  34. package/build/cjs/utils/sortRowsFn.js.map +1 -1
  35. package/build/esm/index.js +2587 -2620
  36. package/build/esm/index.js.map +1 -1
  37. package/build/stats-html.html +1 -1
  38. package/build/stats-react.json +368 -335
  39. package/build/types/aggregationTypes.d.ts +9 -9
  40. package/build/types/core.d.ts +8 -13
  41. package/build/types/createTable.d.ts +4 -4
  42. package/build/types/features/ColumnSizing.d.ts +13 -8
  43. package/build/types/features/Expanding.d.ts +6 -6
  44. package/build/types/features/Filters.d.ts +15 -15
  45. package/build/types/features/Grouping.d.ts +16 -16
  46. package/build/types/features/Headers.d.ts +6 -6
  47. package/build/types/features/Ordering.d.ts +4 -4
  48. package/build/types/features/Pagination.d.ts +5 -5
  49. package/build/types/features/Pinning.d.ts +5 -5
  50. package/build/types/features/RowSelection.d.ts +8 -8
  51. package/build/types/features/Sorting.d.ts +12 -12
  52. package/build/types/features/Visibility.d.ts +6 -6
  53. package/build/types/filterTypes.d.ts +10 -10
  54. package/build/types/sortTypes.d.ts +7 -7
  55. package/build/types/types.d.ts +22 -13
  56. package/build/types/utils/filterRowsUtils.d.ts +3 -0
  57. package/build/types/utils/sortRowsQuicksortFn.d.ts +11 -0
  58. package/build/umd/index.development.js +2587 -2620
  59. package/build/umd/index.development.js.map +1 -1
  60. package/build/umd/index.production.js +1 -1
  61. package/build/umd/index.production.js.map +1 -1
  62. package/package.json +1 -1
  63. package/src/aggregationTypes.ts +23 -19
  64. package/src/core.tsx +29 -55
  65. package/src/createTable.tsx +17 -11
  66. package/src/features/ColumnSizing.ts +31 -7
  67. package/src/features/Expanding.ts +7 -15
  68. package/src/features/Filters.ts +15 -15
  69. package/src/features/Grouping.ts +19 -19
  70. package/src/features/Headers.ts +5 -5
  71. package/src/features/Ordering.ts +3 -3
  72. package/src/features/Pagination.ts +4 -4
  73. package/src/features/Pinning.ts +4 -4
  74. package/src/features/RowSelection.ts +9 -11
  75. package/src/features/Sorting.ts +11 -11
  76. package/src/features/Visibility.ts +5 -5
  77. package/src/filterTypes.ts +9 -9
  78. package/src/sortTypes.ts +6 -6
  79. package/src/types.ts +34 -25
  80. package/src/utils/columnFilterRowsFn.ts +12 -73
  81. package/src/utils/filterRowsUtils.ts +107 -0
  82. package/src/utils/globalFilterRowsFn.ts +10 -66
  83. package/src/utils/groupRowsFn.ts +15 -17
  84. package/src/utils/sortRowsFn.ts +6 -8
  85. package/src/utils/sortRowsQuicksortFn.ts +174 -0
@@ -1,4 +1,4 @@
1
- import { Cell, Column, Getter, OnChangeFn, PartialGenerics, PropGetterValue, TableInstance, Updater } from '../types';
1
+ import { Cell, Column, Getter, OnChangeFn, AnyGenerics, PropGetterValue, TableInstance, Updater } from '../types';
2
2
  export declare type VisibilityOptions = {
3
3
  onColumnVisibilityChange?: OnChangeFn<VisibilityState>;
4
4
  enableHiding?: boolean;
@@ -10,7 +10,7 @@ export declare type VisibilityState = Record<string, boolean>;
10
10
  export declare type VisibilityTableState = {
11
11
  columnVisibility: VisibilityState;
12
12
  };
13
- export declare type VisibilityInstance<TGenerics extends PartialGenerics> = {
13
+ export declare type VisibilityInstance<TGenerics extends AnyGenerics> = {
14
14
  getVisibleFlatColumns: () => Column<TGenerics>[];
15
15
  getVisibleLeafColumns: () => Column<TGenerics>[];
16
16
  setColumnVisibility: (updater: Updater<VisibilityState>) => void;
@@ -29,7 +29,7 @@ export declare type VisibilityColumnDef = {
29
29
  defaultCanHide?: boolean;
30
30
  defaultIsVisible?: boolean;
31
31
  };
32
- export declare type VisibilityRow<TGenerics extends PartialGenerics> = {
32
+ export declare type VisibilityRow<TGenerics extends AnyGenerics> = {
33
33
  getVisibleCells: () => Cell<TGenerics>[];
34
34
  };
35
35
  export declare type VisibilityColumn = {
@@ -40,11 +40,11 @@ export declare type VisibilityColumn = {
40
40
  };
41
41
  export declare const Visibility: {
42
42
  getInitialState: () => VisibilityTableState;
43
- getDefaultOptions: <TGenerics extends Partial<import("../types").DefaultGenerics>>(instance: TableInstance<TGenerics>) => VisibilityDefaultOptions;
43
+ getDefaultOptions: <TGenerics extends AnyGenerics>(instance: TableInstance<TGenerics>) => VisibilityDefaultOptions;
44
44
  getDefaultColumn: () => {
45
45
  defaultIsVisible: boolean;
46
46
  };
47
- createColumn: <TGenerics_1 extends Partial<import("../types").DefaultGenerics>>(column: Column<TGenerics_1>, instance: TableInstance<TGenerics_1>) => VisibilityColumn;
48
- getInstance: <TGenerics_2 extends Partial<import("../types").DefaultGenerics>>(instance: TableInstance<TGenerics_2>) => VisibilityInstance<TGenerics_2>;
47
+ createColumn: <TGenerics_1 extends AnyGenerics>(column: Column<TGenerics_1>, instance: TableInstance<TGenerics_1>) => VisibilityColumn;
48
+ getInstance: <TGenerics_2 extends AnyGenerics>(instance: TableInstance<TGenerics_2>) => VisibilityInstance<TGenerics_2>;
49
49
  };
50
50
  export {};
@@ -1,4 +1,4 @@
1
- import { PartialGenerics, Row } from './types';
1
+ import { AnyGenerics, Row } from './types';
2
2
  export declare const filterTypes: {
3
3
  includesString: typeof includesString;
4
4
  includesStringSensitive: typeof includesStringSensitive;
@@ -11,39 +11,39 @@ export declare const filterTypes: {
11
11
  betweenNumberRange: typeof betweenNumberRange;
12
12
  };
13
13
  export declare type BuiltInFilterType = keyof typeof filterTypes;
14
- declare function includesString<TGenerics extends PartialGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
14
+ declare function includesString<TGenerics extends AnyGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
15
15
  declare namespace includesString {
16
16
  var autoRemove: (val: any) => boolean;
17
17
  }
18
- declare function includesStringSensitive<TGenerics extends PartialGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
18
+ declare function includesStringSensitive<TGenerics extends AnyGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
19
19
  declare namespace includesStringSensitive {
20
20
  var autoRemove: (val: any) => boolean;
21
21
  }
22
- declare function equalsString<TGenerics extends PartialGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
22
+ declare function equalsString<TGenerics extends AnyGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
23
23
  declare namespace equalsString {
24
24
  var autoRemove: (val: any) => boolean;
25
25
  }
26
- declare function equalsStringSensitive<TGenerics extends PartialGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
26
+ declare function equalsStringSensitive<TGenerics extends AnyGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
27
27
  declare namespace equalsStringSensitive {
28
28
  var autoRemove: (val: any) => boolean;
29
29
  }
30
- declare function arrIncludes<TGenerics extends PartialGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
30
+ declare function arrIncludes<TGenerics extends AnyGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
31
31
  declare namespace arrIncludes {
32
32
  var autoRemove: (val: any) => boolean;
33
33
  }
34
- declare function arrIncludesAll<TGenerics extends PartialGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown[]): Row<TGenerics>[];
34
+ declare function arrIncludesAll<TGenerics extends AnyGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown[]): Row<TGenerics>[];
35
35
  declare namespace arrIncludesAll {
36
36
  var autoRemove: (val: any) => boolean;
37
37
  }
38
- declare function equals<TGenerics extends PartialGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
38
+ declare function equals<TGenerics extends AnyGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
39
39
  declare namespace equals {
40
40
  var autoRemove: (val: any) => boolean;
41
41
  }
42
- declare function weakEquals<TGenerics extends PartialGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
42
+ declare function weakEquals<TGenerics extends AnyGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: unknown): Row<TGenerics>[];
43
43
  declare namespace weakEquals {
44
44
  var autoRemove: (val: any) => boolean;
45
45
  }
46
- declare function betweenNumberRange<TGenerics extends PartialGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: [unknown, unknown]): Row<TGenerics>[];
46
+ declare function betweenNumberRange<TGenerics extends AnyGenerics>(rows: Row<TGenerics>[], columnIds: string[], filterValue: [unknown, unknown]): Row<TGenerics>[];
47
47
  declare namespace betweenNumberRange {
48
48
  var autoRemove: (val: any) => boolean;
49
49
  }
@@ -1,4 +1,4 @@
1
- import { PartialGenerics, Row } from './types';
1
+ import { AnyGenerics, Row } from './types';
2
2
  export declare const reSplitAlphaNumeric: RegExp;
3
3
  export declare const sortTypes: {
4
4
  alphanumeric: typeof alphanumeric;
@@ -9,10 +9,10 @@ export declare const sortTypes: {
9
9
  basic: typeof basic;
10
10
  };
11
11
  export declare type BuiltInSortType = keyof typeof sortTypes;
12
- declare function alphanumeric<TGenerics extends PartialGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number;
13
- declare function alphanumericCaseSensitive<TGenerics extends PartialGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number;
14
- declare function text<TGenerics extends PartialGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
15
- declare function textCaseSensitive<TGenerics extends PartialGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
16
- declare function datetime<TGenerics extends PartialGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
17
- declare function basic<TGenerics extends PartialGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
12
+ declare function alphanumeric<TGenerics extends AnyGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number;
13
+ declare function alphanumericCaseSensitive<TGenerics extends AnyGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number;
14
+ declare function text<TGenerics extends AnyGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
15
+ declare function textCaseSensitive<TGenerics extends AnyGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
16
+ declare function datetime<TGenerics extends AnyGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
17
+ declare function basic<TGenerics extends AnyGenerics>(rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): 0 | 1 | -1;
18
18
  export {};
@@ -21,31 +21,40 @@ export declare type DefaultGenerics = {
21
21
  ColumnMeta: object;
22
22
  };
23
23
  export declare type AnyRender = (Comp: any, props: any) => any;
24
- export declare type UseRenderer<TGenerics extends PartialGenerics> = TGenerics['Render'] extends (...args: any) => any ? TGenerics['Render'] : any;
24
+ export declare type UseRenderer<TGenerics extends AnyGenerics> = TGenerics['Render'] extends (...args: any) => any ? TGenerics['Render'] : any;
25
25
  export declare type PartialGenerics = Partial<DefaultGenerics>;
26
26
  export declare type AnyGenerics = {
27
27
  [TKey in keyof PartialGenerics]?: any;
28
28
  };
29
- export declare type TableInstance<TGenerics extends PartialGenerics> = TableCore<TGenerics> & VisibilityInstance<TGenerics> & ColumnOrderInstance<TGenerics> & ColumnPinningInstance<TGenerics> & HeadersInstance<TGenerics> & FiltersInstance<TGenerics> & SortingInstance<TGenerics> & GroupingInstance<TGenerics> & ColumnSizingInstance<TGenerics> & ExpandedInstance<TGenerics> & PaginationInstance<TGenerics> & RowSelectionInstance<TGenerics>;
30
- export declare type Options<TGenerics extends PartialGenerics> = CoreOptions<TGenerics> & VisibilityOptions & ColumnOrderOptions & ColumnPinningOptions & FiltersOptions<TGenerics> & SortingOptions<TGenerics> & GroupingOptions<TGenerics> & ExpandedOptions<TGenerics> & ColumnSizingOptions & PaginationOptions<TGenerics> & RowSelectionOptions<TGenerics>;
29
+ export declare type TableFeature = {
30
+ getDefaultOptions?: (instance: any) => any;
31
+ getInitialState?: () => any;
32
+ getInstance?: (instance: any) => any;
33
+ getDefaultColumn?: () => any;
34
+ createColumn?: (column: any, instance: any) => any;
35
+ createCell?: (cell: any, column: any, row: any, instance: any) => any;
36
+ createRow?: (row: any, instance: any) => any;
37
+ };
38
+ export declare type TableInstance<TGenerics extends AnyGenerics> = TableCore<TGenerics> & VisibilityInstance<TGenerics> & ColumnOrderInstance<TGenerics> & ColumnPinningInstance<TGenerics> & HeadersInstance<TGenerics> & FiltersInstance<TGenerics> & SortingInstance<TGenerics> & GroupingInstance<TGenerics> & ColumnSizingInstance<TGenerics> & ExpandedInstance<TGenerics> & PaginationInstance<TGenerics> & RowSelectionInstance<TGenerics>;
39
+ export declare type Options<TGenerics extends AnyGenerics> = CoreOptions<TGenerics> & VisibilityOptions & ColumnOrderOptions & ColumnPinningOptions & FiltersOptions<TGenerics> & SortingOptions<TGenerics> & GroupingOptions<TGenerics> & ExpandedOptions<TGenerics> & ColumnSizingOptions & PaginationOptions<TGenerics> & RowSelectionOptions<TGenerics>;
31
40
  export declare type Updater<T> = T | ((old: T) => T);
32
41
  export declare type OnChangeFn<T> = (updaterOrValue: Updater<T>, value: T) => void;
33
42
  export declare type TableState = VisibilityTableState & ColumnOrderTableState & ColumnPinningTableState & FiltersTableState & SortingTableState & ExpandedTableState & GroupingTableState & ColumnSizingTableState & PaginationTableState & RowSelectionTableState;
34
- export declare type Row<TGenerics extends PartialGenerics> = CoreRow<TGenerics> & VisibilityRow<TGenerics> & HeadersRow<TGenerics> & GroupingRow & RowSelectionRow & ExpandedRow;
43
+ export declare type Row<TGenerics extends AnyGenerics> = CoreRow<TGenerics> & VisibilityRow<TGenerics> & HeadersRow<TGenerics> & GroupingRow & RowSelectionRow & ExpandedRow;
35
44
  export declare type RowValues = {
36
45
  [key: string]: any;
37
46
  };
38
- export declare type RowModel<TGenerics extends PartialGenerics> = {
47
+ export declare type RowModel<TGenerics extends AnyGenerics> = {
39
48
  rows: Row<TGenerics>[];
40
49
  flatRows: Row<TGenerics>[];
41
50
  rowsById: Record<string, Row<TGenerics>>;
42
51
  };
43
52
  export declare type AccessorFn<TData> = (originalRow: TData, index: number) => any;
44
- export declare type Renderable<TGenerics extends PartialGenerics, TProps> = string | ((props: TProps) => ReturnType<UseRenderer<TGenerics>>);
45
- export declare type ColumnDef<TGenerics extends PartialGenerics> = CoreColumnDef<TGenerics> & VisibilityColumnDef & ColumnPinningColumnDef & FiltersColumnDef<TGenerics> & SortingColumnDef<TGenerics> & GroupingColumnDef<TGenerics> & ColumnSizingColumnDef;
46
- export declare type Column<TGenerics extends PartialGenerics> = ColumnDef<TGenerics> & CoreColumn<TGenerics> & ColumnVisibilityColumn & ColumnPinningColumn & FiltersColumn<TGenerics> & SortingColumn<TGenerics> & GroupingColumn<TGenerics> & ColumnSizingColumn<TGenerics>;
47
- export declare type Cell<TGenerics extends PartialGenerics> = CoreCell<TGenerics> & GroupingCell<TGenerics>;
48
- export declare type CoreCell<TGenerics extends PartialGenerics> = {
53
+ export declare type Renderable<TGenerics extends AnyGenerics, TProps> = string | ((props: TProps) => ReturnType<UseRenderer<TGenerics>>);
54
+ export declare type ColumnDef<TGenerics extends AnyGenerics> = CoreColumnDef<TGenerics> & VisibilityColumnDef & ColumnPinningColumnDef & FiltersColumnDef<TGenerics> & SortingColumnDef<TGenerics> & GroupingColumnDef<TGenerics> & ColumnSizingColumnDef;
55
+ export declare type Column<TGenerics extends AnyGenerics> = ColumnDef<TGenerics> & CoreColumn<TGenerics> & ColumnVisibilityColumn & ColumnPinningColumn & FiltersColumn<TGenerics> & SortingColumn<TGenerics> & GroupingColumn<TGenerics> & ColumnSizingColumn<TGenerics>;
56
+ export declare type Cell<TGenerics extends AnyGenerics> = CoreCell<TGenerics> & GroupingCell<TGenerics>;
57
+ export declare type CoreCell<TGenerics extends AnyGenerics> = {
49
58
  id: string;
50
59
  rowId: string;
51
60
  columnId: string;
@@ -55,8 +64,8 @@ export declare type CoreCell<TGenerics extends PartialGenerics> = {
55
64
  getCellProps: PropGetter<CellProps>;
56
65
  renderCell: () => string | null | ReturnType<UseRenderer<TGenerics>>;
57
66
  };
58
- export declare type Header<TGenerics extends PartialGenerics> = CoreHeader<TGenerics> & ColumnSizingHeader<TGenerics>;
59
- export declare type CoreHeader<TGenerics extends PartialGenerics> = {
67
+ export declare type Header<TGenerics extends AnyGenerics> = CoreHeader<TGenerics> & ColumnSizingHeader<TGenerics>;
68
+ export declare type CoreHeader<TGenerics extends AnyGenerics> = {
60
69
  id: string;
61
70
  depth: number;
62
71
  column: Column<TGenerics>;
@@ -76,7 +85,7 @@ export declare type CoreHeader<TGenerics extends PartialGenerics> = {
76
85
  renderPlaceholder?: boolean;
77
86
  }) => string | null | ReturnType<UseRenderer<TGenerics>>;
78
87
  };
79
- export declare type HeaderGroup<TGenerics extends PartialGenerics> = {
88
+ export declare type HeaderGroup<TGenerics extends AnyGenerics> = {
80
89
  id: string;
81
90
  depth: number;
82
91
  headers: Header<TGenerics>[];
@@ -0,0 +1,3 @@
1
+ import { AnyGenerics, Row, RowModel, TableInstance } from '../types';
2
+ export declare function filterRowModelFromLeafs<TGenerics extends AnyGenerics>(rowsToFilter: Row<TGenerics>[], filterRows: (rowsToFilter: Row<TGenerics>[], depth: number) => Row<TGenerics>[], instance: TableInstance<TGenerics>): RowModel<TGenerics>;
3
+ export declare function filterRowModelFromRoot<TGenerics extends AnyGenerics>(rowsToFilter: Row<TGenerics>[], filterRows: (rowsToFilter: Row<TGenerics>[], depth: number) => Row<TGenerics>[], instance: TableInstance<TGenerics>): RowModel<TGenerics>;
@@ -0,0 +1,11 @@
1
+ import { TableInstance, Row, RowModel, AnyGenerics } from '../types';
2
+ export declare function sortRowsFn<TGenerics extends AnyGenerics>(instance: TableInstance<TGenerics>, rowModel: RowModel<TGenerics>): RowModel<TGenerics>;
3
+ declare type Sorter<TGenerics extends AnyGenerics> = {
4
+ id: string;
5
+ compare: (a: Row<TGenerics>, b: Row<TGenerics>) => number;
6
+ desc?: boolean;
7
+ sortUndefined?: false | -1 | 1;
8
+ invertSorting?: boolean;
9
+ };
10
+ export declare function quicksort<TGenerics extends AnyGenerics>(rows: Row<TGenerics>[], sorters: Sorter<TGenerics>[]): Row<TGenerics>[];
11
+ export {};