@tanstack/table-core 9.0.0-beta.2 → 9.0.0-beta.7
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/dist/core/cells/coreCellsFeature.cjs +11 -20
- package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
- package/dist/core/cells/coreCellsFeature.d.cts +4 -12
- package/dist/core/cells/coreCellsFeature.d.ts +4 -12
- package/dist/core/cells/coreCellsFeature.js +12 -20
- package/dist/core/cells/coreCellsFeature.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.cjs +59 -68
- package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
- package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
- package/dist/core/columns/coreColumnsFeature.js +60 -68
- package/dist/core/columns/coreColumnsFeature.js.map +1 -1
- package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.cjs +44 -53
- package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
- package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
- package/dist/core/headers/coreHeadersFeature.js +45 -53
- package/dist/core/headers/coreHeadersFeature.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
- package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
- package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
- package/dist/core/row-models/coreRowModelsFeature.js +18 -26
- package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.types.d.cts +3 -5
- package/dist/core/row-models/coreRowModelsFeature.types.d.ts +3 -5
- package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
- package/dist/core/row-models/createCoreRowModel.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.cjs +27 -36
- package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.d.cts +4 -12
- package/dist/core/rows/coreRowsFeature.d.ts +4 -12
- package/dist/core/rows/coreRowsFeature.js +28 -36
- package/dist/core/rows/coreRowsFeature.js.map +1 -1
- package/dist/core/table/constructTable.cjs +2 -2
- package/dist/core/table/constructTable.cjs.map +1 -1
- package/dist/core/table/constructTable.js +2 -2
- package/dist/core/table/constructTable.js.map +1 -1
- package/dist/core/table/coreTablesFeature.cjs +7 -16
- package/dist/core/table/coreTablesFeature.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.d.cts +4 -12
- package/dist/core/table/coreTablesFeature.d.ts +4 -12
- package/dist/core/table/coreTablesFeature.js +8 -16
- package/dist/core/table/coreTablesFeature.js.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
- package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
- package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
- package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
- package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
- package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
- package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
- package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
- package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +3 -3
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +3 -3
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.cts +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.ts +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
- package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
- package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
- package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
- package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
- package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
- package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
- package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
- package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
- package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
- package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
- package/dist/features/column-pinning/columnPinningFeature.js +210 -221
- package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +12 -12
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +12 -12
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
- package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
- package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
- package/dist/features/column-resizing/columnResizingFeature.js +32 -43
- package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
- package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
- package/dist/features/column-sizing/columnSizingFeature.js +113 -125
- package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +3 -3
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +3 -3
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
- package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
- package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
- package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
- package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
- package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
- package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +4 -2
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +4 -2
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
- package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
- package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
- package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
- package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
- package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
- package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
- package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
- package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
- package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
- package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
- package/dist/features/row-pinning/rowPinningFeature.js +56 -67
- package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
- package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
- package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
- package/dist/features/row-selection/rowSelectionFeature.js +66 -77
- package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
- package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
- package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
- package/dist/features/row-sorting/rowSortingFeature.js +46 -57
- package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/fns/aggregationFns.cjs +18 -18
- package/dist/fns/aggregationFns.cjs.map +1 -1
- package/dist/fns/aggregationFns.d.cts +21 -19
- package/dist/fns/aggregationFns.d.ts +21 -19
- package/dist/fns/aggregationFns.js +18 -18
- package/dist/fns/aggregationFns.js.map +1 -1
- package/dist/fns/filterFns.cjs +51 -65
- package/dist/fns/filterFns.cjs.map +1 -1
- package/dist/fns/filterFns.d.cts +82 -28
- package/dist/fns/filterFns.d.ts +82 -28
- package/dist/fns/filterFns.js +51 -65
- package/dist/fns/filterFns.js.map +1 -1
- package/dist/fns/sortFns.cjs +18 -6
- package/dist/fns/sortFns.cjs.map +1 -1
- package/dist/fns/sortFns.d.cts +15 -13
- package/dist/fns/sortFns.d.ts +15 -13
- package/dist/fns/sortFns.js +18 -6
- package/dist/fns/sortFns.js.map +1 -1
- package/dist/index.cjs +0 -20
- package/dist/index.d.cts +34 -34
- package/dist/index.d.ts +34 -34
- package/dist/index.js +21 -21
- package/dist/types/Cell.d.cts +3 -8
- package/dist/types/Cell.d.ts +3 -8
- package/dist/types/Column.d.cts +3 -8
- package/dist/types/Column.d.ts +3 -8
- package/dist/types/ColumnDef.d.cts +3 -8
- package/dist/types/ColumnDef.d.ts +3 -8
- package/dist/types/Header.d.cts +3 -8
- package/dist/types/Header.d.ts +3 -8
- package/dist/types/HeaderGroup.d.cts +3 -8
- package/dist/types/HeaderGroup.d.ts +3 -8
- package/dist/types/Row.d.cts +3 -8
- package/dist/types/Row.d.ts +3 -8
- package/dist/types/RowModel.d.cts +4 -10
- package/dist/types/RowModel.d.ts +4 -10
- package/dist/types/RowModelFns.d.cts +3 -8
- package/dist/types/RowModelFns.d.ts +3 -8
- package/dist/types/Table.d.cts +3 -8
- package/dist/types/Table.d.ts +3 -8
- package/dist/types/TableFeatures.d.cts +13 -39
- package/dist/types/TableFeatures.d.ts +13 -39
- package/dist/types/TableOptions.d.cts +3 -4
- package/dist/types/TableOptions.d.ts +3 -4
- package/dist/types/TableState.d.cts +5 -10
- package/dist/types/TableState.d.ts +5 -10
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/core/cells/coreCellsFeature.ts +17 -39
- package/src/core/columns/coreColumnsFeature.ts +56 -83
- package/src/core/headers/buildHeaderGroups.ts +1 -1
- package/src/core/headers/coreHeadersFeature.ts +42 -64
- package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
- package/src/core/row-models/coreRowModelsFeature.ts +43 -64
- package/src/core/row-models/coreRowModelsFeature.types.ts +2 -6
- package/src/core/row-models/createCoreRowModel.ts +1 -1
- package/src/core/rows/coreRowsFeature.ts +45 -72
- package/src/core/table/constructTable.ts +10 -7
- package/src/core/table/coreTablesFeature.ts +13 -35
- package/src/core/table/coreTablesFeature.utils.ts +1 -1
- package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
- package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
- package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
- package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
- package/src/features/column-filtering/columnFilteringFeature.types.ts +3 -3
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +4 -4
- package/src/features/column-filtering/createFilteredRowModel.ts +2 -2
- package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
- package/src/features/column-grouping/createGroupedRowModel.ts +1 -1
- package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
- package/src/features/column-pinning/columnPinningFeature.ts +268 -304
- package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
- package/src/features/column-resizing/columnResizingFeature.ts +44 -78
- package/src/features/column-sizing/columnSizingFeature.ts +115 -152
- package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
- package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
- package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
- package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
- package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
- package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
- package/src/features/row-pinning/rowPinningFeature.ts +72 -104
- package/src/features/row-selection/rowSelectionFeature.ts +103 -135
- package/src/features/row-sorting/createSortedRowModel.ts +1 -1
- package/src/features/row-sorting/rowSortingFeature.ts +73 -114
- package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
- package/src/fns/aggregationFns.ts +26 -42
- package/src/fns/filterFns.ts +231 -264
- package/src/fns/sortFns.ts +51 -29
- package/src/types/Cell.ts +3 -19
- package/src/types/Column.ts +2 -18
- package/src/types/ColumnDef.ts +2 -18
- package/src/types/Header.ts +2 -18
- package/src/types/HeaderGroup.ts +2 -13
- package/src/types/Row.ts +2 -17
- package/src/types/RowModel.ts +3 -25
- package/src/types/RowModelFns.ts +2 -17
- package/src/types/Table.ts +2 -17
- package/src/types/TableFeatures.ts +51 -112
- package/src/types/TableOptions.ts +1 -12
- package/src/types/TableState.ts +4 -30
- package/src/utils.ts +5 -4
|
@@ -7,7 +7,7 @@ import type { RowData } from '../../types/type-utils'
|
|
|
7
7
|
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
8
8
|
import type { Table, Table_Internal } from '../../types/Table'
|
|
9
9
|
import type { TableOptions } from '../../types/TableOptions'
|
|
10
|
-
import type { TableState } from '../../types/TableState'
|
|
10
|
+
import type { TableState, TableState_All } from '../../types/TableState'
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Builds the initial table state from registered features and user initial state.
|
|
@@ -44,7 +44,7 @@ export function constructTable<
|
|
|
44
44
|
atoms: {},
|
|
45
45
|
} as Table_Internal<TFeatures, TData>
|
|
46
46
|
|
|
47
|
-
const featuresList: Array<TableFeature
|
|
47
|
+
const featuresList: Array<TableFeature> = Object.values(table._features)
|
|
48
48
|
|
|
49
49
|
const defaultOptions = featuresList.reduce((obj, feature) => {
|
|
50
50
|
return Object.assign(obj, feature.getDefaultTableOptions?.(table))
|
|
@@ -100,7 +100,7 @@ export function constructTable<
|
|
|
100
100
|
)
|
|
101
101
|
|
|
102
102
|
const stateKeys = Object.keys(table.initialState) as Array<
|
|
103
|
-
string & keyof
|
|
103
|
+
string & keyof TableState_All
|
|
104
104
|
>
|
|
105
105
|
|
|
106
106
|
for (let i = 0; i < stateKeys.length; i++) {
|
|
@@ -115,11 +115,14 @@ export function constructTable<
|
|
|
115
115
|
// create readonly derived atom: on each get(), read either external atom or base atom
|
|
116
116
|
;(table.atoms as any)[key] = _reactivity.createReadonlyAtom(
|
|
117
117
|
() => {
|
|
118
|
-
const
|
|
118
|
+
const externalAtoms = table.options.atoms as
|
|
119
|
+
| Partial<Record<keyof TableState_All, Atom<unknown>>>
|
|
120
|
+
| undefined
|
|
121
|
+
const externalAtom = externalAtoms?.[key]
|
|
119
122
|
if (externalAtom) {
|
|
120
123
|
return externalAtom.get()
|
|
121
124
|
}
|
|
122
|
-
return table.baseAtoms[key]
|
|
125
|
+
return table.baseAtoms[key]!.get()
|
|
123
126
|
},
|
|
124
127
|
{ debugName: `table/atoms/${key}` },
|
|
125
128
|
)
|
|
@@ -130,10 +133,10 @@ export function constructTable<
|
|
|
130
133
|
table.store = atomToStore(
|
|
131
134
|
_reactivity.createReadonlyAtom(
|
|
132
135
|
() => {
|
|
133
|
-
const snapshot = {} as TableState<TFeatures>
|
|
136
|
+
const snapshot = {} as TableState<TFeatures> & TableState_All
|
|
134
137
|
for (let i = 0; i < stateKeys.length; i++) {
|
|
135
138
|
const key = stateKeys[i]!
|
|
136
|
-
;(snapshot as Record<string, unknown>)[key] = table.atoms[key]
|
|
139
|
+
;(snapshot as Record<string, unknown>)[key] = table.atoms[key]!.get()
|
|
137
140
|
}
|
|
138
141
|
return snapshot
|
|
139
142
|
},
|
|
@@ -1,41 +1,19 @@
|
|
|
1
1
|
import { assignTableAPIs } from '../../utils'
|
|
2
2
|
import { table_reset, table_setOptions } from './coreTablesFeature.utils'
|
|
3
|
-
import type {
|
|
4
|
-
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
5
|
-
// import type { TableOptions_Table, Table_Table } from './coreTablesFeature.types'
|
|
6
|
-
|
|
7
|
-
export interface CoreTablesFeatureConstructors<
|
|
8
|
-
TFeatures extends TableFeatures,
|
|
9
|
-
TData extends RowData,
|
|
10
|
-
> {
|
|
11
|
-
// Table: Table_Table<TFeatures, TData>
|
|
12
|
-
// TableOptions: TableOptions_Table<TFeatures, TData>
|
|
13
|
-
}
|
|
3
|
+
import type { TableFeature } from '../../types/TableFeatures'
|
|
14
4
|
|
|
15
5
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
|
|
6
|
+
* Core feature that adds base table instance APIs such as reset and setOptions.
|
|
19
7
|
*/
|
|
20
|
-
export
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
fn: (updater) => table_setOptions(table, updater),
|
|
32
|
-
},
|
|
33
|
-
})
|
|
34
|
-
},
|
|
35
|
-
}
|
|
8
|
+
export const coreTablesFeature: TableFeature = {
|
|
9
|
+
constructTableAPIs: (table) => {
|
|
10
|
+
assignTableAPIs('coreTablesFeature', table, {
|
|
11
|
+
table_reset: {
|
|
12
|
+
fn: () => table_reset(table),
|
|
13
|
+
},
|
|
14
|
+
table_setOptions: {
|
|
15
|
+
fn: (updater) => table_setOptions(table, updater),
|
|
16
|
+
},
|
|
17
|
+
})
|
|
18
|
+
},
|
|
36
19
|
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* The Core Tables feature provides the core table functionality for handling state and options.
|
|
40
|
-
*/
|
|
41
|
-
export const coreTablesFeature = constructCoreTablesFeature()
|
|
@@ -59,7 +59,7 @@ export function table_reset<
|
|
|
59
59
|
const keys = Object.keys(snap) as Array<keyof typeof snap>
|
|
60
60
|
for (let i = 0; i < keys.length; i++) {
|
|
61
61
|
const key = keys[i]!
|
|
62
|
-
;(table.baseAtoms as any)[key].set(snap[key]
|
|
62
|
+
;(table.baseAtoms as any)[key].set(snap[key])
|
|
63
63
|
}
|
|
64
64
|
})
|
|
65
65
|
}
|
|
@@ -11,110 +11,79 @@ import {
|
|
|
11
11
|
table_getGlobalFacetedRowModel,
|
|
12
12
|
table_getGlobalFacetedUniqueValues,
|
|
13
13
|
} from './columnFacetingFeature.utils'
|
|
14
|
-
import type {
|
|
15
|
-
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
16
|
-
import type { Column_Internal } from '../../types/Column'
|
|
17
|
-
// import type {
|
|
18
|
-
// CachedRowModel_Faceted,
|
|
19
|
-
// Column_ColumnFaceting,
|
|
20
|
-
// CreateRowModel_Faceted,
|
|
21
|
-
// } from './columnFacetingFeature.types'
|
|
22
|
-
|
|
23
|
-
export interface ColumnFacetingFeatureConstructors<
|
|
24
|
-
TFeatures extends TableFeatures,
|
|
25
|
-
TData extends RowData,
|
|
26
|
-
> {
|
|
27
|
-
// CachedRowModel: CachedRowModel_Faceted<TFeatures, TData>
|
|
28
|
-
// Column: Column_ColumnFaceting<TFeatures, TData>
|
|
29
|
-
// CreateRowModels: CreateRowModel_Faceted<TFeatures, TData>
|
|
30
|
-
}
|
|
14
|
+
import type { TableFeature } from '../../types/TableFeatures'
|
|
31
15
|
|
|
32
16
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
|
|
17
|
+
* Feature that derives faceted row models, unique values, and min/max values for filters.
|
|
36
18
|
*/
|
|
37
|
-
export
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
fn: (column) => column_getFacetedUniqueValues(column, column.table),
|
|
74
|
-
},
|
|
75
|
-
})
|
|
76
|
-
},
|
|
19
|
+
export const columnFacetingFeature: TableFeature = {
|
|
20
|
+
assignColumnPrototype: (prototype, table) => {
|
|
21
|
+
assignPrototypeAPIs('columnFacetingFeature', prototype, table, {
|
|
22
|
+
column_getFacetedRowModel: {
|
|
23
|
+
memoDeps: () => [
|
|
24
|
+
table.getPreFilteredRowModel().rows,
|
|
25
|
+
table.atoms.columnFilters?.get(),
|
|
26
|
+
table.atoms.globalFilter?.get(),
|
|
27
|
+
table.getFilteredRowModel().rows,
|
|
28
|
+
],
|
|
29
|
+
fn: (column) => column_getFacetedRowModel(column, column.table),
|
|
30
|
+
},
|
|
31
|
+
column_getFacetedMinMaxValues: {
|
|
32
|
+
memoDeps: (column) => [
|
|
33
|
+
callMemoOrStaticFn(
|
|
34
|
+
column,
|
|
35
|
+
'getFacetedRowModel',
|
|
36
|
+
column_getFacetedRowModel,
|
|
37
|
+
column.table,
|
|
38
|
+
).flatRows,
|
|
39
|
+
],
|
|
40
|
+
fn: (column) => column_getFacetedMinMaxValues(column, column.table),
|
|
41
|
+
},
|
|
42
|
+
column_getFacetedUniqueValues: {
|
|
43
|
+
memoDeps: (column) => [
|
|
44
|
+
callMemoOrStaticFn(
|
|
45
|
+
column,
|
|
46
|
+
'getFacetedRowModel',
|
|
47
|
+
column_getFacetedRowModel,
|
|
48
|
+
column.table,
|
|
49
|
+
).flatRows,
|
|
50
|
+
],
|
|
51
|
+
fn: (column) => column_getFacetedUniqueValues(column, column.table),
|
|
52
|
+
},
|
|
53
|
+
})
|
|
54
|
+
},
|
|
77
55
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
56
|
+
constructTableAPIs: (table) => {
|
|
57
|
+
assignTableAPIs('columnFacetingFeature', table, {
|
|
58
|
+
table_getGlobalFacetedRowModel: {
|
|
59
|
+
memoDeps: () => [
|
|
60
|
+
table.getPreFilteredRowModel().rows,
|
|
61
|
+
table.atoms.columnFilters?.get(),
|
|
62
|
+
table.atoms.globalFilter?.get(),
|
|
63
|
+
table.getFilteredRowModel().rows,
|
|
64
|
+
],
|
|
65
|
+
fn: () => table_getGlobalFacetedRowModel(table),
|
|
66
|
+
},
|
|
67
|
+
table_getGlobalFacetedMinMaxValues: {
|
|
68
|
+
memoDeps: () => [
|
|
69
|
+
callMemoOrStaticFn(
|
|
70
|
+
table,
|
|
71
|
+
'getGlobalFacetedRowModel',
|
|
72
|
+
table_getGlobalFacetedRowModel,
|
|
73
|
+
).flatRows,
|
|
74
|
+
],
|
|
75
|
+
fn: () => table_getGlobalFacetedMinMaxValues(table),
|
|
76
|
+
},
|
|
77
|
+
table_getGlobalFacetedUniqueValues: {
|
|
78
|
+
memoDeps: () => [
|
|
79
|
+
callMemoOrStaticFn(
|
|
80
|
+
table,
|
|
81
|
+
'getGlobalFacetedRowModel',
|
|
82
|
+
table_getGlobalFacetedRowModel,
|
|
83
|
+
).flatRows,
|
|
84
|
+
],
|
|
85
|
+
fn: () => table_getGlobalFacetedUniqueValues(table),
|
|
86
|
+
},
|
|
87
|
+
})
|
|
88
|
+
},
|
|
112
89
|
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* The stock column faceting feature.
|
|
116
|
-
*
|
|
117
|
-
* Register this feature to add faceted row model, unique value, and min/max
|
|
118
|
-
* helpers for column and global filter UIs.
|
|
119
|
-
*/
|
|
120
|
-
export const columnFacetingFeature = constructColumnFacetingFeature()
|
|
@@ -18,7 +18,7 @@ export function createFacetedMinMaxValues<
|
|
|
18
18
|
columnId: string,
|
|
19
19
|
) => () => undefined | [number, number] {
|
|
20
20
|
return (_table, columnId) => {
|
|
21
|
-
const table
|
|
21
|
+
const table = _table as unknown as Table_Internal<TFeatures, TData>
|
|
22
22
|
return tableMemo({
|
|
23
23
|
feature: 'columnFacetingFeature',
|
|
24
24
|
fn: (flatRows) => _createFacetedMinMaxValues(columnId, flatRows),
|
|
@@ -23,7 +23,7 @@ export function createFacetedRowModel<
|
|
|
23
23
|
columnId: string,
|
|
24
24
|
) => () => RowModel<TFeatures, TData> {
|
|
25
25
|
return (_table, columnId) => {
|
|
26
|
-
const table
|
|
26
|
+
const table = _table as unknown as Table_Internal<TFeatures, TData>
|
|
27
27
|
return tableMemo({
|
|
28
28
|
feature: 'columnFacetingFeature',
|
|
29
29
|
table,
|
|
@@ -18,7 +18,7 @@ export function createFacetedUniqueValues<
|
|
|
18
18
|
columnId: string,
|
|
19
19
|
) => () => Map<any, number> {
|
|
20
20
|
return (_table, columnId) => {
|
|
21
|
-
const table
|
|
21
|
+
const table = _table as unknown as Table_Internal<TFeatures, TData>
|
|
22
22
|
return tableMemo({
|
|
23
23
|
feature: 'columnFacetingFeature',
|
|
24
24
|
table,
|
|
@@ -15,115 +15,72 @@ import {
|
|
|
15
15
|
table_resetColumnFilters,
|
|
16
16
|
table_setColumnFilters,
|
|
17
17
|
} from './columnFilteringFeature.utils'
|
|
18
|
-
import type {
|
|
19
|
-
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
20
|
-
// import type {
|
|
21
|
-
// CachedRowModel_Filtered,
|
|
22
|
-
// ColumnDef_ColumnFiltering,
|
|
23
|
-
// Column_ColumnFiltering,
|
|
24
|
-
// CreateRowModel_Filtered,
|
|
25
|
-
// RowModelFns_ColumnFiltering,
|
|
26
|
-
// Row_ColumnFiltering,
|
|
27
|
-
// TableOptions_ColumnFiltering,
|
|
28
|
-
// TableState_ColumnFiltering,
|
|
29
|
-
// Table_ColumnFiltering,
|
|
30
|
-
// } from './columnFilteringFeature.types'
|
|
31
|
-
|
|
32
|
-
export interface ColumnFilteringFeatureConstructors<
|
|
33
|
-
TFeatures extends TableFeatures,
|
|
34
|
-
TData extends RowData,
|
|
35
|
-
> {
|
|
36
|
-
// CachedRowModel: CachedRowModel_Filtered<TFeatures, TData>
|
|
37
|
-
// Column: Column_ColumnFiltering<TFeatures, TData>
|
|
38
|
-
// ColumnDef: ColumnDef_ColumnFiltering<TFeatures, TData>
|
|
39
|
-
// CreateRowModels: CreateRowModel_Filtered<TFeatures, TData>
|
|
40
|
-
// Row: Row_ColumnFiltering<TFeatures, TData>
|
|
41
|
-
// RowModelFns: RowModelFns_ColumnFiltering<TFeatures, TData>
|
|
42
|
-
// Table: Table_ColumnFiltering<TFeatures, TData>
|
|
43
|
-
// TableOptions: TableOptions_ColumnFiltering<TFeatures, TData>
|
|
44
|
-
// TableState: TableState_ColumnFiltering
|
|
45
|
-
}
|
|
18
|
+
import type { TableFeature } from '../../types/TableFeatures'
|
|
46
19
|
|
|
47
20
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
|
|
21
|
+
* Feature that adds per-column filtering state, options, and column/table filter APIs.
|
|
51
22
|
*/
|
|
52
|
-
export
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
columnFilters: getDefaultColumnFiltersState(),
|
|
60
|
-
...initialState,
|
|
61
|
-
}
|
|
62
|
-
},
|
|
23
|
+
export const columnFilteringFeature: TableFeature = {
|
|
24
|
+
getInitialState: (initialState) => {
|
|
25
|
+
return {
|
|
26
|
+
columnFilters: getDefaultColumnFiltersState(),
|
|
27
|
+
...initialState,
|
|
28
|
+
}
|
|
29
|
+
},
|
|
63
30
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
31
|
+
getDefaultColumnDef: () => {
|
|
32
|
+
return {
|
|
33
|
+
filterFn: 'auto',
|
|
34
|
+
}
|
|
35
|
+
},
|
|
69
36
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
37
|
+
getDefaultTableOptions: (table) => {
|
|
38
|
+
return {
|
|
39
|
+
onColumnFiltersChange: makeStateUpdater('columnFilters', table),
|
|
40
|
+
filterFromLeafRows: false,
|
|
41
|
+
maxLeafRowFilterDepth: 100,
|
|
42
|
+
}
|
|
43
|
+
},
|
|
77
44
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
45
|
+
assignColumnPrototype: (prototype, table) => {
|
|
46
|
+
assignPrototypeAPIs('columnFilteringFeature', prototype, table, {
|
|
47
|
+
column_getAutoFilterFn: {
|
|
48
|
+
fn: (column) => column_getAutoFilterFn(column),
|
|
49
|
+
},
|
|
50
|
+
column_getFilterFn: {
|
|
51
|
+
fn: (column) => column_getFilterFn(column),
|
|
52
|
+
},
|
|
53
|
+
column_getCanFilter: {
|
|
54
|
+
fn: (column) => column_getCanFilter(column),
|
|
55
|
+
},
|
|
56
|
+
column_getIsFiltered: {
|
|
57
|
+
fn: (column) => column_getIsFiltered(column),
|
|
58
|
+
},
|
|
59
|
+
column_getFilterValue: {
|
|
60
|
+
fn: (column) => column_getFilterValue(column),
|
|
61
|
+
},
|
|
62
|
+
column_getFilterIndex: {
|
|
63
|
+
fn: (column) => column_getFilterIndex(column),
|
|
64
|
+
},
|
|
65
|
+
column_setFilterValue: {
|
|
66
|
+
fn: (column, value) => column_setFilterValue(column, value),
|
|
67
|
+
},
|
|
68
|
+
})
|
|
69
|
+
},
|
|
103
70
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
71
|
+
initRowInstanceData: (row) => {
|
|
72
|
+
;(row as any).columnFilters = {}
|
|
73
|
+
;(row as any).columnFiltersMeta = {}
|
|
74
|
+
},
|
|
108
75
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
76
|
+
constructTableAPIs: (table) => {
|
|
77
|
+
assignTableAPIs('columnFilteringFeature', table, {
|
|
78
|
+
table_setColumnFilters: {
|
|
79
|
+
fn: (updater) => table_setColumnFilters(table, updater),
|
|
80
|
+
},
|
|
81
|
+
table_resetColumnFilters: {
|
|
82
|
+
fn: (defaultState) => table_resetColumnFilters(table, defaultState),
|
|
83
|
+
},
|
|
84
|
+
})
|
|
85
|
+
},
|
|
120
86
|
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* The stock column filtering feature.
|
|
124
|
-
*
|
|
125
|
-
* Register this feature to add column filter state, filter defaults, and
|
|
126
|
-
* table/row/column APIs for client-side or manual column filtering. Global
|
|
127
|
-
* filtering is provided by `globalFilteringFeature`.
|
|
128
|
-
*/
|
|
129
|
-
export const columnFilteringFeature = constructColumnFilteringFeature()
|
|
@@ -39,7 +39,7 @@ export interface RowModelFns_ColumnFiltering<
|
|
|
39
39
|
TFeatures extends TableFeatures,
|
|
40
40
|
TData extends RowData,
|
|
41
41
|
> {
|
|
42
|
-
filterFns: Record<keyof FilterFns, FilterFn<TFeatures,
|
|
42
|
+
filterFns: Record<keyof FilterFns, FilterFn<TFeatures, RowData>>
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
export interface FilterFn<
|
|
@@ -71,12 +71,12 @@ export type ColumnFilterAutoRemoveTestFn<
|
|
|
71
71
|
export type CustomFilterFns<
|
|
72
72
|
TFeatures extends TableFeatures,
|
|
73
73
|
TData extends RowData,
|
|
74
|
-
> = Record<string, FilterFn<TFeatures,
|
|
74
|
+
> = Record<string, FilterFn<TFeatures, RowData>>
|
|
75
75
|
|
|
76
76
|
export type FilterFnOption<
|
|
77
77
|
TFeatures extends TableFeatures,
|
|
78
78
|
TData extends RowData,
|
|
79
|
-
> = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures,
|
|
79
|
+
> = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures, RowData>
|
|
80
80
|
|
|
81
81
|
export interface ColumnDef_ColumnFiltering<
|
|
82
82
|
TFeatures extends TableFeatures,
|
|
@@ -40,7 +40,7 @@ export function column_getAutoFilterFn<
|
|
|
40
40
|
TData extends RowData,
|
|
41
41
|
TValue extends CellData = CellData,
|
|
42
42
|
>(column: Column_Internal<TFeatures, TData, TValue>) {
|
|
43
|
-
const filterFns: Record<string, FilterFn<TFeatures,
|
|
43
|
+
const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =
|
|
44
44
|
column.table._rowModelFns.filterFns
|
|
45
45
|
|
|
46
46
|
const firstRow = column.table.getCoreRowModel().flatRows[0]
|
|
@@ -90,7 +90,7 @@ export function column_getFilterFn<
|
|
|
90
90
|
column: Column_Internal<TFeatures, TData, TValue>,
|
|
91
91
|
): FilterFn<TFeatures, TData> | undefined {
|
|
92
92
|
let filterFn = null
|
|
93
|
-
const filterFns: Record<string, FilterFn<TFeatures,
|
|
93
|
+
const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =
|
|
94
94
|
column.table._rowModelFns.filterFns
|
|
95
95
|
filterFn = isFunction(column.columnDef.filterFn)
|
|
96
96
|
? column.columnDef.filterFn
|
|
@@ -104,7 +104,7 @@ export function column_getFilterFn<
|
|
|
104
104
|
)
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
return filterFn
|
|
107
|
+
return filterFn as FilterFn<TFeatures, TData> | undefined
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
/**
|
|
@@ -323,7 +323,7 @@ export function shouldAutoRemoveFilter<
|
|
|
323
323
|
) {
|
|
324
324
|
return (
|
|
325
325
|
(filterFn && filterFn.autoRemove
|
|
326
|
-
? filterFn.autoRemove(value, column)
|
|
326
|
+
? filterFn.autoRemove(value, column as Column_Internal<TFeatures, TData>)
|
|
327
327
|
: false) ||
|
|
328
328
|
typeof value === 'undefined' ||
|
|
329
329
|
(typeof value === 'string' && !value)
|
|
@@ -28,10 +28,10 @@ export function createFilteredRowModel<
|
|
|
28
28
|
TFeatures extends TableFeatures,
|
|
29
29
|
TData extends RowData = any,
|
|
30
30
|
>(
|
|
31
|
-
filterFns: Record<keyof FilterFns, FilterFn<TFeatures,
|
|
31
|
+
filterFns: Record<keyof FilterFns, FilterFn<TFeatures, RowData>>,
|
|
32
32
|
): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
|
|
33
33
|
return (_table) => {
|
|
34
|
-
const table
|
|
34
|
+
const table = _table as unknown as Table_Internal<TFeatures, TData>
|
|
35
35
|
if (!table._rowModelFns.filterFns) table._rowModelFns.filterFns = filterFns
|
|
36
36
|
return tableMemo({
|
|
37
37
|
feature: 'columnFilteringFeature',
|