@tanstack/table-core 9.0.0-beta.1 → 9.0.0-beta.11
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/constructCell.d.cts +1 -1
- package/dist/core/cells/constructCell.d.ts +1 -1
- 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/cells/coreCellsFeature.types.d.cts +4 -4
- package/dist/core/cells/coreCellsFeature.types.d.ts +4 -4
- package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
- package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
- package/dist/core/columns/constructColumn.d.cts +1 -1
- package/dist/core/columns/constructColumn.d.ts +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/columns/coreColumnsFeature.types.d.cts +5 -5
- package/dist/core/columns/coreColumnsFeature.types.d.ts +5 -5
- package/dist/core/columns/coreColumnsFeature.utils.d.cts +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.ts +1 -1
- package/dist/core/coreFeatures.cjs.map +1 -1
- package/dist/core/coreFeatures.d.cts +1 -1
- package/dist/core/coreFeatures.d.ts +1 -1
- package/dist/core/coreFeatures.js.map +1 -1
- package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
- package/dist/core/headers/buildHeaderGroups.d.cts +1 -1
- package/dist/core/headers/buildHeaderGroups.d.ts +1 -1
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/constructHeader.d.cts +1 -1
- package/dist/core/headers/constructHeader.d.ts +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.types.d.cts +6 -6
- package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.cts +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.ts +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 +5 -15
- package/dist/core/row-models/coreRowModelsFeature.types.d.ts +5 -15
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +2 -2
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +2 -2
- package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
- package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
- package/dist/core/row-models/createCoreRowModel.cjs +1 -2
- package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
- package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
- package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
- package/dist/core/row-models/createCoreRowModel.js +1 -2
- package/dist/core/row-models/createCoreRowModel.js.map +1 -1
- package/dist/core/rows/constructRow.d.cts +1 -1
- package/dist/core/rows/constructRow.d.ts +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/rows/coreRowsFeature.types.d.cts +5 -5
- package/dist/core/rows/coreRowsFeature.types.d.ts +5 -5
- package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
- package/dist/core/table/constructTable.cjs +21 -6
- package/dist/core/table/constructTable.cjs.map +1 -1
- package/dist/core/table/constructTable.d.cts +1 -1
- package/dist/core/table/constructTable.d.ts +1 -1
- package/dist/core/table/constructTable.js +21 -6
- 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.types.d.cts +27 -15
- package/dist/core/table/coreTablesFeature.types.d.ts +27 -15
- package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
- package/dist/core/table/coreTablesFeature.utils.js +1 -2
- 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/columnFacetingFeature.types.d.cts +8 -29
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +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.d.cts +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.d.ts +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.d.cts +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +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 +40 -26
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
- package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
- package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
- 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/columnGroupingFeature.types.d.cts +23 -19
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
- package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
- package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
- 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-ordering/columnOrderingFeature.types.d.cts +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +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.types.d.cts +2 -2
- package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
- 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-resizing/columnResizingFeature.utils.d.cts +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +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 +4 -4
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
- 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/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +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.types.d.cts +3 -3
- package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +3 -3
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
- 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.d.cts +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.d.ts +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-expanding/rowExpandingFeature.types.d.cts +5 -14
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.ts +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-pagination/rowPaginationFeature.types.d.cts +4 -13
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +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-pinning/rowPinningFeature.types.d.cts +2 -2
- package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
- package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +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-selection/rowSelectionFeature.types.d.cts +2 -2
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +2 -2
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
- package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
- package/dist/features/row-sorting/createSortedRowModel.js +4 -2
- 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.types.d.cts +23 -20
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +23 -20
- 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.d.cts +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +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/helpers/metaHelper.cjs +30 -0
- package/dist/helpers/metaHelper.cjs.map +1 -0
- package/dist/helpers/metaHelper.d.cts +26 -0
- package/dist/helpers/metaHelper.d.ts +26 -0
- package/dist/helpers/metaHelper.js +29 -0
- package/dist/helpers/metaHelper.js.map +1 -0
- package/dist/helpers/tableFeatures.cjs +31 -3
- package/dist/helpers/tableFeatures.cjs.map +1 -1
- package/dist/helpers/tableFeatures.d.cts +33 -5
- package/dist/helpers/tableFeatures.d.ts +33 -5
- package/dist/helpers/tableFeatures.js +31 -3
- package/dist/helpers/tableFeatures.js.map +1 -1
- package/dist/index.cjs +2 -20
- package/dist/index.d.cts +44 -43
- package/dist/index.d.ts +44 -43
- package/dist/index.js +22 -21
- package/dist/store-reactivity-bindings.cjs +1 -1
- package/dist/store-reactivity-bindings.cjs.map +1 -1
- package/dist/store-reactivity-bindings.d.cts +1 -1
- package/dist/store-reactivity-bindings.d.ts +1 -1
- package/dist/store-reactivity-bindings.js +1 -1
- package/dist/store-reactivity-bindings.js.map +1 -1
- package/dist/types/Cell.d.cts +8 -10
- package/dist/types/Cell.d.ts +8 -10
- package/dist/types/Column.d.cts +19 -12
- package/dist/types/Column.d.ts +19 -12
- package/dist/types/ColumnDef.d.cts +30 -11
- package/dist/types/ColumnDef.d.ts +30 -11
- package/dist/types/Header.d.cts +10 -11
- package/dist/types/Header.d.ts +10 -11
- package/dist/types/HeaderGroup.d.cts +4 -9
- package/dist/types/HeaderGroup.d.ts +4 -9
- package/dist/types/Row.d.cts +15 -11
- package/dist/types/Row.d.ts +15 -11
- package/dist/types/RowModel.d.cts +19 -19
- package/dist/types/RowModel.d.ts +19 -19
- package/dist/types/RowModelFns.d.cts +9 -9
- package/dist/types/RowModelFns.d.ts +9 -9
- package/dist/types/Table.d.cts +52 -24
- package/dist/types/Table.d.ts +52 -24
- package/dist/types/TableFeatures.d.cts +178 -41
- package/dist/types/TableFeatures.d.ts +178 -41
- package/dist/types/TableOptions.d.cts +31 -10
- package/dist/types/TableOptions.d.ts +31 -10
- package/dist/types/TableState.d.cts +22 -13
- package/dist/types/TableState.d.ts +22 -13
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +8 -3
- package/dist/utils.d.ts +8 -3
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/skills/column-definitions/SKILL.md +3 -6
- package/skills/column-layout/SKILL.md +0 -2
- package/skills/customizing-feature-behavior/SKILL.md +63 -56
- package/skills/filtering/SKILL.md +60 -42
- package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
- package/skills/grouping/SKILL.md +49 -54
- package/skills/migrate-v8-to-v9/SKILL.md +30 -33
- package/skills/pagination/SKILL.md +22 -20
- package/skills/row-expanding/SKILL.md +33 -25
- package/skills/row-pinning/SKILL.md +11 -7
- package/skills/row-selection/SKILL.md +0 -3
- package/skills/setup/SKILL.md +55 -65
- package/skills/sorting/SKILL.md +21 -21
- package/skills/state-management/SKILL.md +40 -25
- package/src/core/cells/coreCellsFeature.ts +17 -39
- package/src/core/cells/coreCellsFeature.types.ts +6 -6
- package/src/core/columns/coreColumnsFeature.ts +56 -83
- package/src/core/columns/coreColumnsFeature.types.ts +8 -8
- package/src/core/coreFeatures.ts +1 -1
- package/src/core/headers/buildHeaderGroups.ts +1 -1
- package/src/core/headers/coreHeadersFeature.ts +42 -64
- package/src/core/headers/coreHeadersFeature.types.ts +10 -10
- 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 +7 -24
- package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
- package/src/core/row-models/createCoreRowModel.ts +5 -4
- package/src/core/rows/coreRowsFeature.ts +45 -72
- package/src/core/rows/coreRowsFeature.types.ts +8 -8
- package/src/core/table/constructTable.ts +50 -13
- package/src/core/table/coreTablesFeature.ts +13 -35
- package/src/core/table/coreTablesFeature.types.ts +40 -17
- package/src/core/table/coreTablesFeature.utils.ts +10 -5
- package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
- package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
- 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 +55 -39
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
- package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
- package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
- package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
- package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
- package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
- package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
- package/src/features/column-pinning/columnPinningFeature.ts +268 -304
- package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
- 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/column-visibility/columnVisibilityFeature.types.ts +4 -4
- package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
- package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
- 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-expanding/rowExpandingFeature.types.ts +8 -22
- package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
- package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
- package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
- package/src/features/row-pinning/rowPinningFeature.ts +72 -104
- package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
- package/src/features/row-selection/rowSelectionFeature.ts +103 -135
- package/src/features/row-selection/rowSelectionFeature.types.ts +4 -4
- package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
- package/src/features/row-sorting/createSortedRowModel.ts +6 -6
- package/src/features/row-sorting/rowSortingFeature.ts +73 -114
- package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
- 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/helpers/metaHelper.ts +24 -0
- package/src/helpers/tableFeatures.ts +36 -5
- package/src/index.ts +1 -0
- package/src/store-reactivity-bindings.ts +1 -1
- package/src/types/Cell.ts +10 -30
- package/src/types/Column.ts +21 -56
- package/src/types/ColumnDef.ts +48 -49
- package/src/types/Header.ts +10 -32
- package/src/types/HeaderGroup.ts +4 -15
- package/src/types/Row.ts +18 -39
- package/src/types/RowModel.ts +24 -114
- package/src/types/RowModelFns.ts +12 -31
- package/src/types/Table.ts +85 -80
- package/src/types/TableFeatures.ts +253 -108
- package/src/types/TableOptions.ts +70 -60
- package/src/types/TableState.ts +20 -73
- package/src/utils.ts +16 -6
|
@@ -3,7 +3,7 @@ name: filtering
|
|
|
3
3
|
description: >
|
|
4
4
|
Filter rows in TanStack Table v9 with the `filteredRowModel` pipeline stage.
|
|
5
5
|
Covers `columnFilteringFeature` + `globalFilteringFeature` + `columnFacetingFeature`,
|
|
6
|
-
`createFilteredRowModel(filterFns)
|
|
6
|
+
`createFilteredRowModel()` (registered on `features` with `filterFns` slot), `createFacetedRowModel()` /
|
|
7
7
|
`createFacetedUniqueValues()` / `createFacetedMinMaxValues()`, fuzzy filtering
|
|
8
8
|
with `@tanstack/match-sorter-utils`, the built-in `filterFns` registry, custom
|
|
9
9
|
`filterFn` + module augmentation, `state.columnFilters` (Array<{ id, value }>),
|
|
@@ -36,13 +36,13 @@ This skill builds on `tanstack-table/state-management` and `tanstack-table/custo
|
|
|
36
36
|
|
|
37
37
|
Filtering has five subsystems in v9 — register only the features you need:
|
|
38
38
|
|
|
39
|
-
| Subsystem | Feature | Row-model
|
|
40
|
-
| ---------------- | ------------------------ |
|
|
41
|
-
| column-filtering | `columnFilteringFeature` | `createFilteredRowModel(
|
|
42
|
-
| global-filtering | `globalFilteringFeature` | (same `filteredRowModel`)
|
|
43
|
-
| column-faceting | `columnFacetingFeature` | `createFacetedRowModel()` + helpers
|
|
44
|
-
| global-faceting | `globalFacetingFeature` | global versions of the helpers
|
|
45
|
-
| fuzzy-filtering | (custom filterFn) | `@tanstack/match-sorter-utils`
|
|
39
|
+
| Subsystem | Feature | Row-model |
|
|
40
|
+
| ---------------- | ------------------------ | --------------------------------------------- |
|
|
41
|
+
| column-filtering | `columnFilteringFeature` | `createFilteredRowModel()` + `filterFns` slot |
|
|
42
|
+
| global-filtering | `globalFilteringFeature` | (same `filteredRowModel`) |
|
|
43
|
+
| column-faceting | `columnFacetingFeature` | `createFacetedRowModel()` + helpers |
|
|
44
|
+
| global-faceting | `globalFacetingFeature` | global versions of the helpers |
|
|
45
|
+
| fuzzy-filtering | (custom filterFn) | `@tanstack/match-sorter-utils` |
|
|
46
46
|
|
|
47
47
|
```ts
|
|
48
48
|
import {
|
|
@@ -60,14 +60,13 @@ const features = tableFeatures({
|
|
|
60
60
|
columnFilteringFeature,
|
|
61
61
|
globalFilteringFeature,
|
|
62
62
|
rowPaginationFeature,
|
|
63
|
+
filteredRowModel: createFilteredRowModel(),
|
|
64
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
65
|
+
filterFns,
|
|
63
66
|
})
|
|
64
67
|
|
|
65
68
|
const table = constructTable({
|
|
66
69
|
features,
|
|
67
|
-
rowModels: {
|
|
68
|
-
filteredRowModel: createFilteredRowModel(filterFns),
|
|
69
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
70
|
-
},
|
|
71
70
|
columns,
|
|
72
71
|
data,
|
|
73
72
|
initialState: {
|
|
@@ -130,7 +129,7 @@ function Filter({ column }) {
|
|
|
130
129
|
|
|
131
130
|
### Faceted filter UIs and fuzzy global search
|
|
132
131
|
|
|
133
|
-
Faceting requires `createFacetedRowModel()` as the base plus `createFacetedUniqueValues()` / `createFacetedMinMaxValues()
|
|
132
|
+
Faceting requires `createFacetedRowModel()` as the base plus `createFacetedUniqueValues()` / `createFacetedMinMaxValues()` — all registered on the `features` object; fuzzy filtering wires a custom `FilterFn` backed by `@tanstack/match-sorter-utils` (`rankItem` / `compareItems`) with the `filterFns` registry slot and `filterMeta` slot for type-safe meta. Full examples in [faceting-and-fuzzy.md](references/faceting-and-fuzzy.md).
|
|
134
133
|
|
|
135
134
|
### Server-side filtering
|
|
136
135
|
|
|
@@ -143,7 +142,7 @@ const { data } = useQuery({
|
|
|
143
142
|
})
|
|
144
143
|
const table = useTable({
|
|
145
144
|
features: tableFeatures({ columnFilteringFeature }),
|
|
146
|
-
|
|
145
|
+
// no filteredRowModel registered — server filters
|
|
147
146
|
data,
|
|
148
147
|
columns,
|
|
149
148
|
manualFiltering: true,
|
|
@@ -155,12 +154,15 @@ const table = useTable({
|
|
|
155
154
|
### Filter tree data and keep matching descendants visible
|
|
156
155
|
|
|
157
156
|
```ts
|
|
157
|
+
const features = tableFeatures({
|
|
158
|
+
columnFilteringFeature,
|
|
159
|
+
rowExpandingFeature,
|
|
160
|
+
filteredRowModel: createFilteredRowModel(),
|
|
161
|
+
expandedRowModel: createExpandedRowModel(),
|
|
162
|
+
filterFns,
|
|
163
|
+
})
|
|
158
164
|
const table = constructTable({
|
|
159
|
-
features
|
|
160
|
-
rowModels: {
|
|
161
|
-
filteredRowModel: createFilteredRowModel(filterFns),
|
|
162
|
-
expandedRowModel: createExpandedRowModel(),
|
|
163
|
-
},
|
|
165
|
+
features,
|
|
164
166
|
columns,
|
|
165
167
|
data,
|
|
166
168
|
getSubRows: (r) => r.subRows,
|
|
@@ -176,13 +178,15 @@ Wrong:
|
|
|
176
178
|
|
|
177
179
|
```tsx
|
|
178
180
|
const table = useTable({
|
|
179
|
-
features: tableFeatures({
|
|
180
|
-
|
|
181
|
-
|
|
181
|
+
features: tableFeatures({
|
|
182
|
+
columnFacetingFeature,
|
|
183
|
+
columnFilteringFeature,
|
|
184
|
+
filteredRowModel: createFilteredRowModel(),
|
|
182
185
|
// BUG: missing facetedRowModel
|
|
183
186
|
facetedUniqueValues: createFacetedUniqueValues(),
|
|
184
187
|
facetedMinMaxValues: createFacetedMinMaxValues(),
|
|
185
|
-
|
|
188
|
+
filterFns,
|
|
189
|
+
}),
|
|
186
190
|
columns,
|
|
187
191
|
data,
|
|
188
192
|
})
|
|
@@ -196,14 +200,13 @@ const table = useTable({
|
|
|
196
200
|
columnFacetingFeature,
|
|
197
201
|
columnFilteringFeature,
|
|
198
202
|
rowPaginationFeature,
|
|
199
|
-
|
|
200
|
-
rowModels: {
|
|
201
|
-
filteredRowModel: createFilteredRowModel(filterFns),
|
|
203
|
+
filteredRowModel: createFilteredRowModel(),
|
|
202
204
|
paginatedRowModel: createPaginatedRowModel(),
|
|
203
205
|
facetedRowModel: createFacetedRowModel(), // REQUIRED base
|
|
204
206
|
facetedMinMaxValues: createFacetedMinMaxValues(),
|
|
205
207
|
facetedUniqueValues: createFacetedUniqueValues(),
|
|
206
|
-
|
|
208
|
+
filterFns,
|
|
209
|
+
}),
|
|
207
210
|
columns,
|
|
208
211
|
data,
|
|
209
212
|
})
|
|
@@ -220,8 +223,11 @@ Wrong:
|
|
|
220
223
|
```tsx
|
|
221
224
|
// manualFiltering bypasses the filteredRowModel — filter UI changes do nothing
|
|
222
225
|
const table = useTable({
|
|
223
|
-
features: tableFeatures({
|
|
224
|
-
|
|
226
|
+
features: tableFeatures({
|
|
227
|
+
columnFilteringFeature,
|
|
228
|
+
filteredRowModel: createFilteredRowModel(),
|
|
229
|
+
filterFns,
|
|
230
|
+
}),
|
|
225
231
|
data,
|
|
226
232
|
columns,
|
|
227
233
|
manualFiltering: true,
|
|
@@ -241,7 +247,7 @@ const { data } = useQuery({
|
|
|
241
247
|
|
|
242
248
|
const table = useTable({
|
|
243
249
|
features: tableFeatures({ columnFilteringFeature }),
|
|
244
|
-
|
|
250
|
+
// no filteredRowModel registered for manual mode
|
|
245
251
|
data,
|
|
246
252
|
columns,
|
|
247
253
|
manualFiltering: true,
|
|
@@ -260,9 +266,11 @@ Wrong:
|
|
|
260
266
|
|
|
261
267
|
```tsx
|
|
262
268
|
// drops the built-in registry
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
269
|
+
const features = tableFeatures({
|
|
270
|
+
columnFilteringFeature,
|
|
271
|
+
filteredRowModel: createFilteredRowModel(),
|
|
272
|
+
filterFns: { fuzzy: fuzzyFilter }, // BUG: drops built-ins
|
|
273
|
+
})
|
|
266
274
|
// Column with filterFn: 'includesString' now warns and never filters
|
|
267
275
|
```
|
|
268
276
|
|
|
@@ -271,13 +279,17 @@ Correct:
|
|
|
271
279
|
```tsx
|
|
272
280
|
import { filterFns } from '@tanstack/react-table'
|
|
273
281
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
282
|
+
const features = tableFeatures({
|
|
283
|
+
columnFilteringFeature,
|
|
284
|
+
filteredRowModel: createFilteredRowModel(),
|
|
285
|
+
filterFns: {
|
|
286
|
+
...filterFns, // KEEP built-ins
|
|
287
|
+
fuzzy: fuzzyFilter, // ADD custom
|
|
288
|
+
},
|
|
289
|
+
})
|
|
278
290
|
```
|
|
279
291
|
|
|
280
|
-
`
|
|
292
|
+
The `filterFns` slot replaces the registry with whatever you provide. Any column using a built-in name like `'includesString'` becomes a no-op if the built-ins are dropped.
|
|
281
293
|
|
|
282
294
|
Source: examples/react/filters-fuzzy/src/main.tsx
|
|
283
295
|
|
|
@@ -298,8 +310,11 @@ Correct:
|
|
|
298
310
|
|
|
299
311
|
```tsx
|
|
300
312
|
const table = useTable({
|
|
301
|
-
features: tableFeatures({
|
|
302
|
-
|
|
313
|
+
features: tableFeatures({
|
|
314
|
+
globalFilteringFeature,
|
|
315
|
+
filteredRowModel: createFilteredRowModel(),
|
|
316
|
+
filterFns,
|
|
317
|
+
}),
|
|
303
318
|
columns,
|
|
304
319
|
data,
|
|
305
320
|
globalFilterFn: 'includesString',
|
|
@@ -333,8 +348,11 @@ Correct:
|
|
|
333
348
|
|
|
334
349
|
```ts
|
|
335
350
|
const table = useTable({
|
|
336
|
-
features: tableFeatures({
|
|
337
|
-
|
|
351
|
+
features: tableFeatures({
|
|
352
|
+
columnFilteringFeature,
|
|
353
|
+
filteredRowModel: createFilteredRowModel(),
|
|
354
|
+
filterFns,
|
|
355
|
+
}),
|
|
338
356
|
columns,
|
|
339
357
|
data,
|
|
340
358
|
})
|
|
@@ -16,17 +16,16 @@ const features = tableFeatures({
|
|
|
16
16
|
columnFacetingFeature,
|
|
17
17
|
columnFilteringFeature,
|
|
18
18
|
rowPaginationFeature,
|
|
19
|
+
filteredRowModel: createFilteredRowModel(),
|
|
20
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
21
|
+
facetedRowModel: createFacetedRowModel(), // REQUIRED base
|
|
22
|
+
facetedMinMaxValues: createFacetedMinMaxValues(),
|
|
23
|
+
facetedUniqueValues: createFacetedUniqueValues(),
|
|
24
|
+
filterFns,
|
|
19
25
|
})
|
|
20
26
|
|
|
21
27
|
const table = constructTable({
|
|
22
28
|
features,
|
|
23
|
-
rowModels: {
|
|
24
|
-
filteredRowModel: createFilteredRowModel(filterFns),
|
|
25
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
26
|
-
facetedRowModel: createFacetedRowModel(), // REQUIRED base
|
|
27
|
-
facetedMinMaxValues: createFacetedMinMaxValues(),
|
|
28
|
-
facetedUniqueValues: createFacetedUniqueValues(),
|
|
29
|
-
},
|
|
30
29
|
columns,
|
|
31
30
|
data,
|
|
32
31
|
})
|
|
@@ -44,18 +43,28 @@ import {
|
|
|
44
43
|
compareItems,
|
|
45
44
|
type RankingInfo,
|
|
46
45
|
} from '@tanstack/match-sorter-utils'
|
|
47
|
-
import
|
|
46
|
+
import {
|
|
47
|
+
tableFeatures,
|
|
48
|
+
columnFilteringFeature,
|
|
49
|
+
globalFilteringFeature,
|
|
50
|
+
rowSortingFeature,
|
|
51
|
+
createFilteredRowModel,
|
|
52
|
+
createSortedRowModel,
|
|
53
|
+
filterFns,
|
|
54
|
+
sortFns,
|
|
55
|
+
metaHelper,
|
|
56
|
+
} from '@tanstack/table-core'
|
|
57
|
+
import type { FilterFn, SortFn, TableFeatures } from '@tanstack/table-core'
|
|
48
58
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
interface FilterMeta {
|
|
54
|
-
itemRank?: RankingInfo
|
|
55
|
-
}
|
|
59
|
+
// 1. Describe the filterMeta shape for this feature set.
|
|
60
|
+
interface FuzzyFilterMeta {
|
|
61
|
+
itemRank?: RankingInfo
|
|
56
62
|
}
|
|
57
63
|
|
|
58
|
-
|
|
64
|
+
// 2. Extend TableFeatures so FilterFn / SortFn can read filterMeta types.
|
|
65
|
+
type FuzzyFeatures = TableFeatures & { filterMeta: FuzzyFilterMeta }
|
|
66
|
+
|
|
67
|
+
const fuzzyFilter: FilterFn<FuzzyFeatures, Person> = (
|
|
59
68
|
row,
|
|
60
69
|
columnId,
|
|
61
70
|
value,
|
|
@@ -66,7 +75,7 @@ const fuzzyFilter: FilterFn<typeof features, Person> = (
|
|
|
66
75
|
return itemRank.passed
|
|
67
76
|
}
|
|
68
77
|
|
|
69
|
-
const fuzzySort: SortFn<
|
|
78
|
+
const fuzzySort: SortFn<FuzzyFeatures, Person> = (rowA, rowB, columnId) => {
|
|
70
79
|
let dir = 0
|
|
71
80
|
if (rowA.columnFiltersMeta[columnId]) {
|
|
72
81
|
dir = compareItems(
|
|
@@ -77,21 +86,35 @@ const fuzzySort: SortFn<typeof features, Person> = (rowA, rowB, columnId) => {
|
|
|
77
86
|
return dir === 0 ? sortFns.alphanumeric(rowA, rowB, columnId) : dir
|
|
78
87
|
}
|
|
79
88
|
|
|
89
|
+
// 3. Register everything on features — no rowModels option needed.
|
|
90
|
+
const features = tableFeatures({
|
|
91
|
+
columnFilteringFeature,
|
|
92
|
+
globalFilteringFeature,
|
|
93
|
+
rowSortingFeature,
|
|
94
|
+
filteredRowModel: createFilteredRowModel(),
|
|
95
|
+
sortedRowModel: createSortedRowModel(),
|
|
96
|
+
filterFns: { ...filterFns, fuzzy: fuzzyFilter },
|
|
97
|
+
sortFns: { ...sortFns, fuzzy: fuzzySort },
|
|
98
|
+
filterMeta: metaHelper<FuzzyFilterMeta>(),
|
|
99
|
+
})
|
|
100
|
+
|
|
80
101
|
const table = constructTable({
|
|
81
102
|
features,
|
|
82
|
-
rowModels: {
|
|
83
|
-
filteredRowModel: createFilteredRowModel({
|
|
84
|
-
...filterFns,
|
|
85
|
-
fuzzy: fuzzyFilter,
|
|
86
|
-
}),
|
|
87
|
-
sortedRowModel: createSortedRowModel(sortFns),
|
|
88
|
-
},
|
|
89
103
|
columns,
|
|
90
104
|
data,
|
|
91
105
|
globalFilterFn: 'fuzzy',
|
|
92
106
|
})
|
|
93
107
|
```
|
|
94
108
|
|
|
109
|
+
Use string refs in column defs when the fn is registered:
|
|
110
|
+
|
|
111
|
+
```ts
|
|
112
|
+
columnHelper.accessor('fullName', {
|
|
113
|
+
filterFn: 'fuzzy', // string ref — typechecks because 'fuzzy' is in features.filterFns
|
|
114
|
+
sortFn: 'fuzzy',
|
|
115
|
+
})
|
|
116
|
+
```
|
|
117
|
+
|
|
95
118
|
## Additional MEDIUM-priority failure modes
|
|
96
119
|
|
|
97
120
|
### Using `state.columnFilters` AND `initialState.columnFilters` simultaneously
|
|
@@ -131,11 +154,13 @@ Wrong:
|
|
|
131
154
|
```tsx
|
|
132
155
|
// filterFromLeafRows hides children that don't match individually
|
|
133
156
|
const table = useTable({
|
|
134
|
-
features: tableFeatures({
|
|
135
|
-
|
|
136
|
-
|
|
157
|
+
features: tableFeatures({
|
|
158
|
+
columnFilteringFeature,
|
|
159
|
+
rowExpandingFeature,
|
|
160
|
+
filteredRowModel: createFilteredRowModel(),
|
|
137
161
|
expandedRowModel: createExpandedRowModel(),
|
|
138
|
-
|
|
162
|
+
filterFns,
|
|
163
|
+
}),
|
|
139
164
|
columns,
|
|
140
165
|
data,
|
|
141
166
|
getSubRows: (r) => r.subRows,
|
|
@@ -150,11 +175,13 @@ Correct:
|
|
|
150
175
|
```tsx
|
|
151
176
|
// Filter root-only to preserve all sub-rows under a matching parent
|
|
152
177
|
const table = useTable({
|
|
153
|
-
features: tableFeatures({
|
|
154
|
-
|
|
155
|
-
|
|
178
|
+
features: tableFeatures({
|
|
179
|
+
columnFilteringFeature,
|
|
180
|
+
rowExpandingFeature,
|
|
181
|
+
filteredRowModel: createFilteredRowModel(),
|
|
156
182
|
expandedRowModel: createExpandedRowModel(),
|
|
157
|
-
|
|
183
|
+
filterFns,
|
|
184
|
+
}),
|
|
158
185
|
columns,
|
|
159
186
|
data,
|
|
160
187
|
getSubRows: (r) => r.subRows,
|
package/skills/grouping/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: grouping
|
|
3
3
|
description: >
|
|
4
4
|
Group rows by column values in TanStack Table v9 with the `groupedRowModel`
|
|
5
|
-
stage. Covers `columnGroupingFeature` + `createGroupedRowModel(aggregationFns)
|
|
5
|
+
stage. Covers `columnGroupingFeature` + `createGroupedRowModel()` (registered on `features` with `aggregationFns` slot),
|
|
6
6
|
`state.grouping` (GroupingState = Array<string>), `onGroupingChange`,
|
|
7
7
|
`columnDef.aggregationFn` ('auto'|name|fn) — distinct signature
|
|
8
8
|
`(columnId, leafRows, childRows)` — `columnDef.aggregatedCell`,
|
|
@@ -49,6 +49,10 @@ const features = tableFeatures({
|
|
|
49
49
|
columnGroupingFeature,
|
|
50
50
|
rowExpandingFeature,
|
|
51
51
|
rowPaginationFeature,
|
|
52
|
+
groupedRowModel: createGroupedRowModel(),
|
|
53
|
+
expandedRowModel: createExpandedRowModel(),
|
|
54
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
55
|
+
aggregationFns,
|
|
52
56
|
})
|
|
53
57
|
|
|
54
58
|
const columnHelper = createColumnHelper<typeof features, Person>()
|
|
@@ -66,11 +70,6 @@ const columns = columnHelper.columns([
|
|
|
66
70
|
|
|
67
71
|
const table = constructTable({
|
|
68
72
|
features,
|
|
69
|
-
rowModels: {
|
|
70
|
-
groupedRowModel: createGroupedRowModel(aggregationFns),
|
|
71
|
-
expandedRowModel: createExpandedRowModel(),
|
|
72
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
73
|
-
},
|
|
74
73
|
columns,
|
|
75
74
|
data,
|
|
76
75
|
initialState: { grouping: [] satisfies GroupingState },
|
|
@@ -144,15 +143,16 @@ const weightedAverage: AggregationFn<typeof features, Person> = (
|
|
|
144
143
|
return totalWeight === 0 ? 0 : weightedSum / totalWeight
|
|
145
144
|
}
|
|
146
145
|
|
|
146
|
+
const customFeatures = tableFeatures({
|
|
147
|
+
columnGroupingFeature,
|
|
148
|
+
rowExpandingFeature,
|
|
149
|
+
groupedRowModel: createGroupedRowModel(),
|
|
150
|
+
expandedRowModel: createExpandedRowModel(),
|
|
151
|
+
aggregationFns: { ...aggregationFns, weightedAverage },
|
|
152
|
+
})
|
|
153
|
+
|
|
147
154
|
const table = constructTable({
|
|
148
|
-
features,
|
|
149
|
-
rowModels: {
|
|
150
|
-
groupedRowModel: createGroupedRowModel({
|
|
151
|
-
...aggregationFns,
|
|
152
|
-
weightedAverage,
|
|
153
|
-
}),
|
|
154
|
-
expandedRowModel: createExpandedRowModel(),
|
|
155
|
-
},
|
|
155
|
+
features: customFeatures,
|
|
156
156
|
columns: columnHelper.columns([
|
|
157
157
|
columnHelper.accessor('progress', {
|
|
158
158
|
aggregationFn: 'weightedAverage',
|
|
@@ -177,10 +177,6 @@ columnHelper.accessor('firstName', {
|
|
|
177
177
|
```ts
|
|
178
178
|
const table = constructTable({
|
|
179
179
|
features,
|
|
180
|
-
rowModels: {
|
|
181
|
-
groupedRowModel: createGroupedRowModel(aggregationFns),
|
|
182
|
-
expandedRowModel: createExpandedRowModel(),
|
|
183
|
-
},
|
|
184
180
|
columns,
|
|
185
181
|
data,
|
|
186
182
|
groupedColumnMode: 'reorder', // default — grouped columns lead
|
|
@@ -197,13 +193,12 @@ Wrong:
|
|
|
197
193
|
|
|
198
194
|
```ts
|
|
199
195
|
// grouped rows show aggregates but can't be expanded
|
|
200
|
-
const features = tableFeatures({
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
columns,
|
|
205
|
-
data,
|
|
196
|
+
const features = tableFeatures({
|
|
197
|
+
columnGroupingFeature,
|
|
198
|
+
groupedRowModel: createGroupedRowModel(),
|
|
199
|
+
aggregationFns,
|
|
206
200
|
})
|
|
201
|
+
const table = useTable({ features, columns, data })
|
|
207
202
|
// row.getToggleExpandedHandler() → TS error or undefined
|
|
208
203
|
```
|
|
209
204
|
|
|
@@ -221,16 +216,12 @@ import {
|
|
|
221
216
|
const features = tableFeatures({
|
|
222
217
|
columnGroupingFeature,
|
|
223
218
|
rowExpandingFeature,
|
|
219
|
+
groupedRowModel: createGroupedRowModel(),
|
|
220
|
+
expandedRowModel: createExpandedRowModel(),
|
|
221
|
+
aggregationFns,
|
|
224
222
|
})
|
|
225
223
|
|
|
226
|
-
const table = useTable({
|
|
227
|
-
features,
|
|
228
|
-
rowModels: {
|
|
229
|
-
groupedRowModel: createGroupedRowModel(aggregationFns),
|
|
230
|
-
expandedRowModel: createExpandedRowModel(),
|
|
231
|
-
},
|
|
232
|
-
columns, data,
|
|
233
|
-
})
|
|
224
|
+
const table = useTable({ features, columns, data })
|
|
234
225
|
|
|
235
226
|
// In cell renderer:
|
|
236
227
|
{cell.getIsGrouped() && (
|
|
@@ -250,8 +241,11 @@ Wrong:
|
|
|
250
241
|
|
|
251
242
|
```ts
|
|
252
243
|
const table = useTable({
|
|
253
|
-
features: tableFeatures({
|
|
254
|
-
|
|
244
|
+
features: tableFeatures({
|
|
245
|
+
columnGroupingFeature,
|
|
246
|
+
groupedRowModel: createGroupedRowModel(),
|
|
247
|
+
aggregationFns,
|
|
248
|
+
}),
|
|
255
249
|
columns, data,
|
|
256
250
|
// @ts-ignore - this property doesn't exist on v9 TableOptions
|
|
257
251
|
aggregationFns: {
|
|
@@ -265,26 +259,26 @@ Correct:
|
|
|
265
259
|
```ts
|
|
266
260
|
import { aggregationFns, createGroupedRowModel } from '@tanstack/react-table'
|
|
267
261
|
|
|
268
|
-
const
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
262
|
+
const features = tableFeatures({
|
|
263
|
+
columnGroupingFeature,
|
|
264
|
+
rowExpandingFeature,
|
|
265
|
+
groupedRowModel: createGroupedRowModel(),
|
|
266
|
+
expandedRowModel: createExpandedRowModel(),
|
|
267
|
+
aggregationFns: {
|
|
268
|
+
...aggregationFns,
|
|
269
|
+
myCustomAggregation: (columnId, leafRows, childRows) => {
|
|
270
|
+
return /* aggregated value */
|
|
271
|
+
},
|
|
278
272
|
},
|
|
279
|
-
columns,
|
|
280
|
-
data,
|
|
281
273
|
})
|
|
282
274
|
|
|
275
|
+
const table = useTable({ features, columns, data })
|
|
276
|
+
|
|
283
277
|
// Then on a column:
|
|
284
278
|
columnHelper.accessor('sales', { aggregationFn: 'myCustomAggregation' })
|
|
285
279
|
```
|
|
286
280
|
|
|
287
|
-
In v9, the aggregation registry is the
|
|
281
|
+
In v9, the aggregation registry is the `aggregationFns` slot on `features`. There is no top-level `tableOptions.aggregationFns`.
|
|
288
282
|
|
|
289
283
|
Source: packages/table-core/src/features/column-grouping/createGroupedRowModel.ts
|
|
290
284
|
|
|
@@ -345,7 +339,6 @@ Wrong:
|
|
|
345
339
|
```ts
|
|
346
340
|
const table = useTable({
|
|
347
341
|
features,
|
|
348
|
-
rowModels: { groupedRowModel: createGroupedRowModel(aggregationFns) },
|
|
349
342
|
columns,
|
|
350
343
|
data,
|
|
351
344
|
initialState: {
|
|
@@ -361,7 +354,6 @@ Correct:
|
|
|
361
354
|
```ts
|
|
362
355
|
const table = useTable({
|
|
363
356
|
features,
|
|
364
|
-
rowModels: { groupedRowModel: createGroupedRowModel(aggregationFns) },
|
|
365
357
|
columns,
|
|
366
358
|
data,
|
|
367
359
|
initialState: {
|
|
@@ -424,12 +416,15 @@ const grouped = useMemo(() => {
|
|
|
424
416
|
Correct:
|
|
425
417
|
|
|
426
418
|
```ts
|
|
419
|
+
const features = tableFeatures({
|
|
420
|
+
columnGroupingFeature,
|
|
421
|
+
rowExpandingFeature,
|
|
422
|
+
groupedRowModel: createGroupedRowModel(),
|
|
423
|
+
expandedRowModel: createExpandedRowModel(),
|
|
424
|
+
aggregationFns,
|
|
425
|
+
})
|
|
427
426
|
const table = useTable({
|
|
428
|
-
features
|
|
429
|
-
rowModels: {
|
|
430
|
-
groupedRowModel: createGroupedRowModel(aggregationFns),
|
|
431
|
-
expandedRowModel: createExpandedRowModel(),
|
|
432
|
-
},
|
|
427
|
+
features,
|
|
433
428
|
columns: columnHelper.columns([
|
|
434
429
|
columnHelper.accessor('status', { enableGrouping: true }),
|
|
435
430
|
columnHelper.accessor('age', { aggregationFn: 'mean' }),
|
|
@@ -4,11 +4,12 @@ description: >
|
|
|
4
4
|
Mechanical breaking-change migration from TanStack Table v8 to v9 at the
|
|
5
5
|
`@tanstack/table-core` level. Covers hook/entry rename
|
|
6
6
|
(`useReactTable`/`createSolidTable`/… → `useTable`/`injectTable`/`createTable`/
|
|
7
|
-
`constructTable`), the new required `features`
|
|
7
|
+
`constructTable`), the new required `features` option (which now carries row
|
|
8
|
+
model factories and fn registries — `rowModels` option is removed),
|
|
8
9
|
`createColumnHelper<TData>()` → `createColumnHelper<typeof features, TData>()`,
|
|
9
10
|
row-model factory rename (`getCoreRowModel()` → automatic; `getSortedRowModel()`
|
|
10
|
-
→ `createSortedRowModel(
|
|
11
|
-
faceted), `table.getState()` → `table.store.state` / `table.atoms.<slice>.get()`,
|
|
11
|
+
→ `createSortedRowModel()` as a slot on `tableFeatures({...})` with `sortFns` also
|
|
12
|
+
a slot; same for filtered/paginated/grouped/expanded/faceted), `table.getState()` → `table.store.state` / `table.atoms.<slice>.get()`,
|
|
12
13
|
sorting renames (`sortingFn` → `sortFn`, etc.), `enablePinning` split, column
|
|
13
14
|
sizing/resizing split, underscore-prefixed APIs becoming public, `RowData`
|
|
14
15
|
type tightening, TFeatures-first generics, the `useLegacyTable` React escape
|
|
@@ -32,9 +33,9 @@ sources:
|
|
|
32
33
|
v9 is a substantial reshape, not a tweak. The breaking changes group into:
|
|
33
34
|
|
|
34
35
|
1. **Hook/entry rename** per adapter.
|
|
35
|
-
2. **`features`
|
|
36
|
+
2. **`features` is required** — features are tree-shaken. Row model factories and fn registries (`sortFns`, `filterFns`, `aggregationFns`) now live as slots on the `features` object; the `rowModels` option is gone.
|
|
36
37
|
3. **Column helper generic order** — `<TFeatures, TData>` not `<TData>`.
|
|
37
|
-
4. **Row-model factories** moved out of root options
|
|
38
|
+
4. **Row-model factories** moved out of root options and into `tableFeatures({...})` as named slots; factory args for `*Fns` are replaced by dedicated fn-registry slots on `features`.
|
|
38
39
|
5. **State surface renamed** — `table.getState()` → `table.store.state` / `table.atoms.<slice>.get()` / `table.state` (selector).
|
|
39
40
|
6. **Sorting names**: `sortingFn` → `sortFn`, `sortingFns` → `sortFns`, `getSortingFn()` → `getSortFn()`, type `SortingFn` → `SortFn`.
|
|
40
41
|
7. **`enablePinning` split** into `enableColumnPinning` + `enableRowPinning` (table-level); per-column `enablePinning` stays.
|
|
@@ -75,6 +76,12 @@ const features = tableFeatures({
|
|
|
75
76
|
columnFilteringFeature,
|
|
76
77
|
columnSizingFeature,
|
|
77
78
|
columnResizingFeature, // explicit — formerly part of ColumnSizing
|
|
79
|
+
// Row model factories and fn registries are slots on features, not rowModels.
|
|
80
|
+
sortedRowModel: createSortedRowModel(),
|
|
81
|
+
filteredRowModel: createFilteredRowModel(),
|
|
82
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
83
|
+
sortFns,
|
|
84
|
+
filterFns,
|
|
78
85
|
})
|
|
79
86
|
|
|
80
87
|
const columnHelper = createColumnHelper<typeof features, Person>()
|
|
@@ -88,11 +95,6 @@ const columns: ColumnDef<typeof features, Person>[] = columnHelper.columns([
|
|
|
88
95
|
|
|
89
96
|
const table = useTable({
|
|
90
97
|
features,
|
|
91
|
-
rowModels: {
|
|
92
|
-
sortedRowModel: createSortedRowModel(sortFns),
|
|
93
|
-
filteredRowModel: createFilteredRowModel(filterFns),
|
|
94
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
95
|
-
},
|
|
96
98
|
columns,
|
|
97
99
|
data,
|
|
98
100
|
enableColumnPinning: true, // split from enablePinning
|
|
@@ -200,13 +202,12 @@ import {
|
|
|
200
202
|
sortFns,
|
|
201
203
|
} from '@tanstack/react-table'
|
|
202
204
|
|
|
203
|
-
const features = tableFeatures({
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
columns,
|
|
208
|
-
data,
|
|
205
|
+
const features = tableFeatures({
|
|
206
|
+
rowSortingFeature,
|
|
207
|
+
sortedRowModel: createSortedRowModel(),
|
|
208
|
+
sortFns,
|
|
209
209
|
})
|
|
210
|
+
const table = useTable({ features, columns, data })
|
|
210
211
|
```
|
|
211
212
|
|
|
212
213
|
Every major release of TanStack Table has been a substantial upgrade. Agents trained on v7 or v8 will confidently emit shapes that no longer exist. This is the #2 AI failure (after reimplementing built-ins).
|
|
@@ -239,18 +240,15 @@ import {
|
|
|
239
240
|
sortFns,
|
|
240
241
|
} from '@tanstack/react-table'
|
|
241
242
|
|
|
242
|
-
const features = tableFeatures({
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
sortedRowModel: createSortedRowModel(sortFns), // factory takes sortFns argument
|
|
247
|
-
},
|
|
248
|
-
columns,
|
|
249
|
-
data,
|
|
243
|
+
const features = tableFeatures({
|
|
244
|
+
rowSortingFeature,
|
|
245
|
+
sortedRowModel: createSortedRowModel(),
|
|
246
|
+
sortFns,
|
|
250
247
|
})
|
|
248
|
+
const table = useTable({ features, columns, data })
|
|
251
249
|
```
|
|
252
250
|
|
|
253
|
-
In v9, row
|
|
251
|
+
In v9, row model factories are slots on `features`: `filteredRowModel: createFilteredRowModel()`, `sortedRowModel: createSortedRowModel()`, `groupedRowModel: createGroupedRowModel()`. The fn registries move too: `filterFns`, `sortFns`, `aggregationFns` are named slots on `features`. Core is automatic.
|
|
254
252
|
|
|
255
253
|
Source: PR #6234 (atoms refactor); packages/table-core/src/index.ts
|
|
256
254
|
|
|
@@ -307,11 +305,11 @@ Correct:
|
|
|
307
305
|
|
|
308
306
|
```ts
|
|
309
307
|
columnHelper.accessor('age', { sortFn: 'alphanumeric' })
|
|
310
|
-
|
|
308
|
+
// sortFns is a slot on features: tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns })
|
|
311
309
|
column.getSortFn()
|
|
312
310
|
```
|
|
313
311
|
|
|
314
|
-
v9 renamed every sorting API: `sortingFn` → `sortFn`, `sortingFns` → `sortFns
|
|
312
|
+
v9 renamed every sorting API: `sortingFn` → `sortFn`, `sortingFns` → `sortFns` (now a features slot, not a factory arg), type `SortingFn` → `SortFn`, `getSortingFn()` → `getSortFn()`. TypeScript surfaces these but agents try v8 names first.
|
|
315
313
|
|
|
316
314
|
Source: packages/table-core/src/features/row-sorting/rowSortingFeature.types.ts
|
|
317
315
|
|
|
@@ -475,13 +473,12 @@ import {
|
|
|
475
473
|
createSortedRowModel,
|
|
476
474
|
sortFns,
|
|
477
475
|
} from '@tanstack/react-table'
|
|
478
|
-
const features = tableFeatures({
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
columns,
|
|
483
|
-
data,
|
|
476
|
+
const features = tableFeatures({
|
|
477
|
+
rowSortingFeature,
|
|
478
|
+
sortedRowModel: createSortedRowModel(),
|
|
479
|
+
sortFns,
|
|
484
480
|
})
|
|
481
|
+
const table = useTable({ features, columns, data })
|
|
485
482
|
```
|
|
486
483
|
|
|
487
484
|
`useLegacyTable` is React-only, deprecated, bundles every feature, doesn't support `table.Subscribe`, and is removed in v10. It exists to unblock incremental migration — not as a long-term API.
|