@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
|
@@ -34,13 +34,13 @@ import {
|
|
|
34
34
|
} from '@tanstack/table-core'
|
|
35
35
|
import type { PaginationState } from '@tanstack/table-core'
|
|
36
36
|
|
|
37
|
-
const features = tableFeatures({
|
|
37
|
+
const features = tableFeatures({
|
|
38
|
+
rowPaginationFeature,
|
|
39
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
40
|
+
})
|
|
38
41
|
|
|
39
42
|
const table = constructTable({
|
|
40
43
|
features,
|
|
41
|
-
rowModels: {
|
|
42
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
43
|
-
},
|
|
44
44
|
columns,
|
|
45
45
|
data,
|
|
46
46
|
initialState: {
|
|
@@ -126,7 +126,7 @@ const { data: dataQuery } = useQuery({
|
|
|
126
126
|
|
|
127
127
|
const table = useTable({
|
|
128
128
|
features: tableFeatures({ rowPaginationFeature }),
|
|
129
|
-
|
|
129
|
+
// no paginatedRowModel registered — server paginates
|
|
130
130
|
data: dataQuery?.rows ?? EMPTY,
|
|
131
131
|
columns,
|
|
132
132
|
manualPagination: true,
|
|
@@ -141,12 +141,15 @@ const table = useTable({
|
|
|
141
141
|
### Disable auto page reset when filters change
|
|
142
142
|
|
|
143
143
|
```ts
|
|
144
|
+
const features = tableFeatures({
|
|
145
|
+
rowPaginationFeature,
|
|
146
|
+
columnFilteringFeature,
|
|
147
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
148
|
+
filteredRowModel: createFilteredRowModel(),
|
|
149
|
+
filterFns,
|
|
150
|
+
})
|
|
144
151
|
const table = constructTable({
|
|
145
|
-
features
|
|
146
|
-
rowModels: {
|
|
147
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
148
|
-
filteredRowModel: createFilteredRowModel(filterFns),
|
|
149
|
-
},
|
|
152
|
+
features,
|
|
150
153
|
columns,
|
|
151
154
|
data,
|
|
152
155
|
autoResetPageIndex: false, // keep current page while user types in a filter
|
|
@@ -174,7 +177,6 @@ Wrong:
|
|
|
174
177
|
// getPageCount() returns 1, next/prev buttons are disabled
|
|
175
178
|
const table = useTable({
|
|
176
179
|
features: tableFeatures({ rowPaginationFeature }),
|
|
177
|
-
rowModels: {},
|
|
178
180
|
data, // only 10 rows for the current page
|
|
179
181
|
columns,
|
|
180
182
|
manualPagination: true,
|
|
@@ -189,7 +191,6 @@ Correct:
|
|
|
189
191
|
```tsx
|
|
190
192
|
const table = useTable({
|
|
191
193
|
features: tableFeatures({ rowPaginationFeature }),
|
|
192
|
-
rowModels: {},
|
|
193
194
|
data: dataQuery.rows,
|
|
194
195
|
columns,
|
|
195
196
|
manualPagination: true,
|
|
@@ -223,8 +224,10 @@ Correct:
|
|
|
223
224
|
```tsx
|
|
224
225
|
const [pagination, setPagination] = useState({ pageIndex: 0, pageSize: 25 })
|
|
225
226
|
const table = useTable({
|
|
226
|
-
features: tableFeatures({
|
|
227
|
-
|
|
227
|
+
features: tableFeatures({
|
|
228
|
+
rowPaginationFeature,
|
|
229
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
230
|
+
}),
|
|
228
231
|
columns,
|
|
229
232
|
data,
|
|
230
233
|
state: { pagination },
|
|
@@ -241,12 +244,9 @@ Source: docs/guide/pagination.md
|
|
|
241
244
|
Wrong:
|
|
242
245
|
|
|
243
246
|
```ts
|
|
247
|
+
// features already has paginatedRowModel + filteredRowModel registered
|
|
244
248
|
const table = useTable({
|
|
245
249
|
features,
|
|
246
|
-
rowModels: {
|
|
247
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
248
|
-
filteredRowModel: createFilteredRowModel(filterFns),
|
|
249
|
-
},
|
|
250
250
|
columns,
|
|
251
251
|
data,
|
|
252
252
|
autoResetPageIndex: false, // user on page 5, then filters down to 2 pages
|
|
@@ -366,8 +366,10 @@ Correct:
|
|
|
366
366
|
|
|
367
367
|
```ts
|
|
368
368
|
const table = useTable({
|
|
369
|
-
features: tableFeatures({
|
|
370
|
-
|
|
369
|
+
features: tableFeatures({
|
|
370
|
+
rowPaginationFeature,
|
|
371
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
372
|
+
}),
|
|
371
373
|
columns,
|
|
372
374
|
data,
|
|
373
375
|
})
|
|
@@ -35,12 +35,14 @@ import {
|
|
|
35
35
|
} from '@tanstack/table-core'
|
|
36
36
|
import type { ExpandedState } from '@tanstack/table-core'
|
|
37
37
|
|
|
38
|
-
const features = tableFeatures({
|
|
38
|
+
const features = tableFeatures({
|
|
39
|
+
rowExpandingFeature,
|
|
40
|
+
expandedRowModel: createExpandedRowModel(),
|
|
41
|
+
})
|
|
39
42
|
|
|
40
43
|
// Tree mode — data has nested subRows
|
|
41
44
|
const table = constructTable({
|
|
42
45
|
features,
|
|
43
|
-
rowModels: { expandedRowModel: createExpandedRowModel() },
|
|
44
46
|
columns,
|
|
45
47
|
data,
|
|
46
48
|
getSubRows: (row) => row.subRows,
|
|
@@ -50,7 +52,6 @@ const table = constructTable({
|
|
|
50
52
|
// Or detail-panel mode — every row can expand to a sub-component
|
|
51
53
|
const detailTable = constructTable({
|
|
52
54
|
features,
|
|
53
|
-
rowModels: { expandedRowModel: createExpandedRowModel() },
|
|
54
55
|
columns,
|
|
55
56
|
data,
|
|
56
57
|
getRowCanExpand: () => true,
|
|
@@ -120,11 +121,12 @@ const detailTable = constructTable({
|
|
|
120
121
|
|
|
121
122
|
```ts
|
|
122
123
|
const table = constructTable({
|
|
123
|
-
features: tableFeatures({
|
|
124
|
-
|
|
124
|
+
features: tableFeatures({
|
|
125
|
+
rowExpandingFeature,
|
|
126
|
+
rowPaginationFeature,
|
|
125
127
|
expandedRowModel: createExpandedRowModel(),
|
|
126
128
|
paginatedRowModel: createPaginatedRowModel(),
|
|
127
|
-
},
|
|
129
|
+
}),
|
|
128
130
|
columns,
|
|
129
131
|
data,
|
|
130
132
|
getSubRows: (r) => r.subRows,
|
|
@@ -138,11 +140,13 @@ const table = constructTable({
|
|
|
138
140
|
|
|
139
141
|
```ts
|
|
140
142
|
const table = constructTable({
|
|
141
|
-
features: tableFeatures({
|
|
142
|
-
|
|
143
|
+
features: tableFeatures({
|
|
144
|
+
rowExpandingFeature,
|
|
145
|
+
columnFilteringFeature,
|
|
143
146
|
expandedRowModel: createExpandedRowModel(),
|
|
144
|
-
filteredRowModel: createFilteredRowModel(
|
|
145
|
-
|
|
147
|
+
filteredRowModel: createFilteredRowModel(),
|
|
148
|
+
filterFns,
|
|
149
|
+
}),
|
|
146
150
|
columns,
|
|
147
151
|
data,
|
|
148
152
|
getSubRows: (r) => r.subRows,
|
|
@@ -171,7 +175,6 @@ Correct:
|
|
|
171
175
|
// For pure tree data, omit getRowCanExpand and let it auto-detect:
|
|
172
176
|
const table = useTable({
|
|
173
177
|
features,
|
|
174
|
-
rowModels: { expandedRowModel: createExpandedRowModel() },
|
|
175
178
|
columns,
|
|
176
179
|
data,
|
|
177
180
|
getSubRows: (row) => row.subRows,
|
|
@@ -180,8 +183,10 @@ const table = useTable({
|
|
|
180
183
|
|
|
181
184
|
// For pure detail panels, override and skip getSubRows:
|
|
182
185
|
const table = useTable({
|
|
183
|
-
features: tableFeatures({
|
|
184
|
-
|
|
186
|
+
features: tableFeatures({
|
|
187
|
+
rowExpandingFeature,
|
|
188
|
+
expandedRowModel: createExpandedRowModel(),
|
|
189
|
+
}),
|
|
185
190
|
columns,
|
|
186
191
|
data,
|
|
187
192
|
getRowCanExpand: () => true,
|
|
@@ -210,10 +215,6 @@ Correct:
|
|
|
210
215
|
// Default behavior — children flow through pagination, pageSize is enforced:
|
|
211
216
|
const table = useTable({
|
|
212
217
|
features,
|
|
213
|
-
rowModels: {
|
|
214
|
-
expandedRowModel: createExpandedRowModel(),
|
|
215
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
216
|
-
},
|
|
217
218
|
columns,
|
|
218
219
|
data,
|
|
219
220
|
getSubRows: (r) => r.subRows,
|
|
@@ -268,8 +269,10 @@ Wrong:
|
|
|
268
269
|
```ts
|
|
269
270
|
// manualExpanding bypasses the expanded row model; sub-rows are never flattened
|
|
270
271
|
const table = useTable({
|
|
271
|
-
features: tableFeatures({
|
|
272
|
-
|
|
272
|
+
features: tableFeatures({
|
|
273
|
+
rowExpandingFeature,
|
|
274
|
+
expandedRowModel: createExpandedRowModel(), // ignored when manualExpanding: true
|
|
275
|
+
}),
|
|
273
276
|
columns,
|
|
274
277
|
data,
|
|
275
278
|
getSubRows: (r) => r.subRows,
|
|
@@ -284,7 +287,7 @@ Correct:
|
|
|
284
287
|
// a pre-flattened view based on which rows are expanded.
|
|
285
288
|
const table = useTable({
|
|
286
289
|
features: tableFeatures({ rowExpandingFeature }),
|
|
287
|
-
|
|
290
|
+
// no expandedRowModel registered for manual mode
|
|
288
291
|
columns,
|
|
289
292
|
data: dataQuery.data, // server returns flattened rows when expanded
|
|
290
293
|
manualExpanding: true,
|
|
@@ -294,8 +297,10 @@ const table = useTable({
|
|
|
294
297
|
|
|
295
298
|
// For client-side tree, omit manualExpanding:
|
|
296
299
|
const clientTable = useTable({
|
|
297
|
-
features: tableFeatures({
|
|
298
|
-
|
|
300
|
+
features: tableFeatures({
|
|
301
|
+
rowExpandingFeature,
|
|
302
|
+
expandedRowModel: createExpandedRowModel(),
|
|
303
|
+
}),
|
|
299
304
|
columns,
|
|
300
305
|
data,
|
|
301
306
|
getSubRows: (r) => r.subRows,
|
|
@@ -329,9 +334,12 @@ Correct:
|
|
|
329
334
|
|
|
330
335
|
```ts
|
|
331
336
|
const table = useTable({
|
|
332
|
-
features: tableFeatures({
|
|
333
|
-
|
|
334
|
-
|
|
337
|
+
features: tableFeatures({
|
|
338
|
+
rowExpandingFeature,
|
|
339
|
+
expandedRowModel: createExpandedRowModel(),
|
|
340
|
+
}),
|
|
341
|
+
columns,
|
|
342
|
+
data,
|
|
335
343
|
getSubRows: (r) => r.subRows,
|
|
336
344
|
})
|
|
337
345
|
|
|
@@ -35,13 +35,14 @@ import {
|
|
|
35
35
|
} from '@tanstack/table-core'
|
|
36
36
|
import type { RowPinningState } from '@tanstack/table-core'
|
|
37
37
|
|
|
38
|
-
const features = tableFeatures({
|
|
38
|
+
const features = tableFeatures({
|
|
39
|
+
rowPinningFeature,
|
|
40
|
+
rowPaginationFeature,
|
|
41
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
42
|
+
})
|
|
39
43
|
|
|
40
44
|
const table = constructTable({
|
|
41
45
|
features,
|
|
42
|
-
rowModels: {
|
|
43
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
44
|
-
},
|
|
45
46
|
columns,
|
|
46
47
|
data,
|
|
47
48
|
getRowId: (row) => row.userId, // ← essentially mandatory
|
|
@@ -97,8 +98,12 @@ row.pin('top', /* includeLeafRows */ true, /* includeParentRows */ false)
|
|
|
97
98
|
|
|
98
99
|
```ts
|
|
99
100
|
const table = constructTable({
|
|
100
|
-
features: tableFeatures({
|
|
101
|
-
|
|
101
|
+
features: tableFeatures({
|
|
102
|
+
rowPinningFeature,
|
|
103
|
+
columnFilteringFeature,
|
|
104
|
+
filteredRowModel: createFilteredRowModel(),
|
|
105
|
+
filterFns,
|
|
106
|
+
}),
|
|
102
107
|
columns,
|
|
103
108
|
data,
|
|
104
109
|
getRowId: (row) => row.id,
|
|
@@ -247,7 +252,6 @@ Correct:
|
|
|
247
252
|
```ts
|
|
248
253
|
const table = useTable({
|
|
249
254
|
features: tableFeatures({ rowPinningFeature }),
|
|
250
|
-
rowModels: {},
|
|
251
255
|
columns,
|
|
252
256
|
data,
|
|
253
257
|
getRowId: (row) => row.id,
|
|
@@ -40,7 +40,6 @@ const features = tableFeatures({ rowSelectionFeature })
|
|
|
40
40
|
|
|
41
41
|
const table = constructTable({
|
|
42
42
|
features,
|
|
43
|
-
rowModels: {},
|
|
44
43
|
columns,
|
|
45
44
|
data,
|
|
46
45
|
getRowId: (row) => row.id, // ← essentially mandatory
|
|
@@ -80,7 +79,6 @@ columnHelper.display({
|
|
|
80
79
|
```tsx
|
|
81
80
|
const table = useTable({
|
|
82
81
|
features: tableFeatures({ rowSelectionFeature }),
|
|
83
|
-
rowModels: {},
|
|
84
82
|
columns,
|
|
85
83
|
data,
|
|
86
84
|
getRowId: (row) => row.id,
|
|
@@ -370,7 +368,6 @@ Correct:
|
|
|
370
368
|
```ts
|
|
371
369
|
const table = useTable({
|
|
372
370
|
features: tableFeatures({ rowSelectionFeature }),
|
|
373
|
-
rowModels: {},
|
|
374
371
|
columns,
|
|
375
372
|
data,
|
|
376
373
|
getRowId: (row) => row.id,
|
package/skills/setup/SKILL.md
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
name: setup
|
|
3
3
|
description: >
|
|
4
4
|
Install a TanStack Table v9 framework adapter and wire up a first table with
|
|
5
|
-
`tableFeatures({...})` declaring `features
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
`
|
|
10
|
-
|
|
5
|
+
`tableFeatures({...})` declaring `features` (which now also carries row model
|
|
6
|
+
factories like `sortedRowModel: createSortedRowModel()`, `filteredRowModel:
|
|
7
|
+
createFilteredRowModel()`, `paginatedRowModel: createPaginatedRowModel()`, and
|
|
8
|
+
fn registries like `sortFns`/`filterFns`), a
|
|
9
|
+
`createColumnHelper<typeof features, TData>()` column set, and the framework
|
|
10
|
+
`useTable` / `injectTable` / `createTable` / `constructTable` entry point.
|
|
11
|
+
Covers the registry model, why `features` must be module-scoped, when to reach
|
|
12
|
+
for `stockFeatures`, and `coreFeatures`.
|
|
11
13
|
type: core
|
|
12
14
|
library: tanstack-table
|
|
13
15
|
library_version: '9.0.0-alpha.48'
|
|
@@ -27,7 +29,7 @@ This skill builds on `tanstack-table/state-management` and `tanstack-table/colum
|
|
|
27
29
|
|
|
28
30
|
## Setup
|
|
29
31
|
|
|
30
|
-
TanStack Table v9 separates a framework-agnostic core (`@tanstack/table-core`) from per-framework adapters. Every table — vanilla or framework — must declare
|
|
32
|
+
TanStack Table v9 separates a framework-agnostic core (`@tanstack/table-core`) from per-framework adapters. Every table — vanilla or framework — must declare the `features` option at construction time: the registry of feature plugins, row model factories, and fn registries.
|
|
31
33
|
|
|
32
34
|
```ts
|
|
33
35
|
// Framework-agnostic, using @tanstack/table-core directly.
|
|
@@ -44,7 +46,12 @@ type Person = { firstName: string; lastName: string; age: number }
|
|
|
44
46
|
|
|
45
47
|
// 1. Declare features at MODULE scope (stable reference). This is required —
|
|
46
48
|
// a fresh `features` object on every call destroys feature registration.
|
|
47
|
-
const features = tableFeatures({
|
|
49
|
+
const features = tableFeatures({
|
|
50
|
+
rowSortingFeature,
|
|
51
|
+
// Row model factories and fn registries live on the features object.
|
|
52
|
+
sortedRowModel: createSortedRowModel(),
|
|
53
|
+
sortFns,
|
|
54
|
+
})
|
|
48
55
|
|
|
49
56
|
// 2. Build a column helper bound to BOTH TFeatures and TData.
|
|
50
57
|
const columnHelper = createColumnHelper<typeof features, Person>()
|
|
@@ -62,10 +69,6 @@ const data: Person[] = [
|
|
|
62
69
|
|
|
63
70
|
const table = constructTable({
|
|
64
71
|
features,
|
|
65
|
-
rowModels: {
|
|
66
|
-
// Pair every feature with its matching row-model factory.
|
|
67
|
-
sortedRowModel: createSortedRowModel(sortFns),
|
|
68
|
-
},
|
|
69
72
|
columns,
|
|
70
73
|
data,
|
|
71
74
|
})
|
|
@@ -92,7 +95,6 @@ Framework adapters wrap this with reactivity:
|
|
|
92
95
|
const features = tableFeatures({}) // core features only
|
|
93
96
|
const table = constructTable({
|
|
94
97
|
features,
|
|
95
|
-
rowModels: {}, // core row model auto-included
|
|
96
98
|
columns,
|
|
97
99
|
data,
|
|
98
100
|
})
|
|
@@ -118,15 +120,15 @@ const features = tableFeatures({
|
|
|
118
120
|
rowSortingFeature,
|
|
119
121
|
rowPaginationFeature,
|
|
120
122
|
columnFilteringFeature,
|
|
123
|
+
sortedRowModel: createSortedRowModel(),
|
|
124
|
+
filteredRowModel: createFilteredRowModel(),
|
|
125
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
126
|
+
sortFns,
|
|
127
|
+
filterFns,
|
|
121
128
|
})
|
|
122
129
|
|
|
123
130
|
const table = constructTable({
|
|
124
131
|
features,
|
|
125
|
-
rowModels: {
|
|
126
|
-
sortedRowModel: createSortedRowModel(sortFns),
|
|
127
|
-
filteredRowModel: createFilteredRowModel(filterFns),
|
|
128
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
129
|
-
},
|
|
130
132
|
columns,
|
|
131
133
|
data,
|
|
132
134
|
})
|
|
@@ -144,10 +146,8 @@ const features = tableFeatures({})
|
|
|
144
146
|
|
|
145
147
|
const table = constructTable({
|
|
146
148
|
features,
|
|
147
|
-
rowModels: {},
|
|
148
149
|
columns,
|
|
149
150
|
data,
|
|
150
|
-
_rowModelFns: {},
|
|
151
151
|
// Use the vanilla binding when no framework adapter exists
|
|
152
152
|
_processingMode: 'core',
|
|
153
153
|
})
|
|
@@ -178,24 +178,22 @@ Wrong:
|
|
|
178
178
|
```ts
|
|
179
179
|
// rowSortingFeature missing — table.setSorting / state.sorting unavailable
|
|
180
180
|
const features = tableFeatures({}) // empty
|
|
181
|
-
const table = useTable({ features,
|
|
181
|
+
const table = useTable({ features, columns, data })
|
|
182
182
|
table.setSorting([{ id: 'age', desc: true }]) // ❌ does not exist on this table type
|
|
183
183
|
```
|
|
184
184
|
|
|
185
185
|
Correct:
|
|
186
186
|
|
|
187
187
|
```ts
|
|
188
|
-
// Register every feature you intend to use;
|
|
189
|
-
const features = tableFeatures({
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
},
|
|
196
|
-
columns,
|
|
197
|
-
data,
|
|
188
|
+
// Register every feature you intend to use; include its row model factory and fns
|
|
189
|
+
const features = tableFeatures({
|
|
190
|
+
rowSortingFeature,
|
|
191
|
+
rowPaginationFeature,
|
|
192
|
+
sortedRowModel: createSortedRowModel(),
|
|
193
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
194
|
+
sortFns,
|
|
198
195
|
})
|
|
196
|
+
const table = useTable({ features, columns, data })
|
|
199
197
|
```
|
|
200
198
|
|
|
201
199
|
In v9, `features` is a tree-shakeable registry — TypeScript hides APIs for unregistered features and the runtime atom is never created. Agents who see `table.setColumnFilters` "missing" often incorrectly conclude the API was removed.
|
|
@@ -231,16 +229,15 @@ import {
|
|
|
231
229
|
sortFns,
|
|
232
230
|
} from '@tanstack/react-table'
|
|
233
231
|
|
|
234
|
-
const features = tableFeatures({
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
columns,
|
|
239
|
-
data,
|
|
232
|
+
const features = tableFeatures({
|
|
233
|
+
rowSortingFeature,
|
|
234
|
+
sortedRowModel: createSortedRowModel(),
|
|
235
|
+
sortFns,
|
|
240
236
|
})
|
|
237
|
+
const table = useTable({ features, columns, data })
|
|
241
238
|
```
|
|
242
239
|
|
|
243
|
-
v7→v8 and v8→v9 both reshaped the API substantially. Agents trained on older data confidently emit v7/v8 shapes; v9
|
|
240
|
+
v7→v8 and v8→v9 both reshaped the API substantially. Agents trained on older data confidently emit v7/v8 shapes; v9 requires `features` with row model factories registered on it.
|
|
244
241
|
|
|
245
242
|
Source: maintainer interview (Phase 4, 2026-05-17)
|
|
246
243
|
|
|
@@ -252,7 +249,7 @@ Wrong:
|
|
|
252
249
|
function MyTable() {
|
|
253
250
|
// ❌ new object every render — destroys stable feature registration
|
|
254
251
|
const features = tableFeatures({ rowSortingFeature })
|
|
255
|
-
const table = useTable({ features,
|
|
252
|
+
const table = useTable({ features, columns, data })
|
|
256
253
|
}
|
|
257
254
|
```
|
|
258
255
|
|
|
@@ -263,7 +260,7 @@ Correct:
|
|
|
263
260
|
const features = tableFeatures({ rowSortingFeature })
|
|
264
261
|
|
|
265
262
|
function MyTable() {
|
|
266
|
-
const table = useTable({ features,
|
|
263
|
+
const table = useTable({ features, columns, data })
|
|
267
264
|
}
|
|
268
265
|
```
|
|
269
266
|
|
|
@@ -277,31 +274,26 @@ Wrong:
|
|
|
277
274
|
|
|
278
275
|
```ts
|
|
279
276
|
// rowSortingFeature missing — sortedRowModel is orphaned and never runs
|
|
280
|
-
const features = tableFeatures({
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
286
|
-
},
|
|
287
|
-
columns,
|
|
288
|
-
data,
|
|
277
|
+
const features = tableFeatures({
|
|
278
|
+
rowPaginationFeature,
|
|
279
|
+
sortedRowModel: createSortedRowModel(), // no-op without rowSortingFeature
|
|
280
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
281
|
+
sortFns,
|
|
289
282
|
})
|
|
283
|
+
const table = useTable({ features, columns, data })
|
|
290
284
|
```
|
|
291
285
|
|
|
292
286
|
Correct:
|
|
293
287
|
|
|
294
288
|
```ts
|
|
295
|
-
const features = tableFeatures({
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
},
|
|
302
|
-
columns,
|
|
303
|
-
data,
|
|
289
|
+
const features = tableFeatures({
|
|
290
|
+
rowSortingFeature,
|
|
291
|
+
rowPaginationFeature,
|
|
292
|
+
sortedRowModel: createSortedRowModel(),
|
|
293
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
294
|
+
sortFns,
|
|
304
295
|
})
|
|
296
|
+
const table = useTable({ features, columns, data })
|
|
305
297
|
```
|
|
306
298
|
|
|
307
299
|
Row-model factories only run if their matching feature is in `features`. Runtime silently degrades.
|
|
@@ -322,12 +314,12 @@ const sortedData = useMemo(() => [...data].sort((a, b) => /* …custom… */), [
|
|
|
322
314
|
Correct:
|
|
323
315
|
|
|
324
316
|
```ts
|
|
325
|
-
const
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
data,
|
|
317
|
+
const features = tableFeatures({
|
|
318
|
+
rowSortingFeature,
|
|
319
|
+
sortedRowModel: createSortedRowModel(),
|
|
320
|
+
sortFns,
|
|
330
321
|
})
|
|
322
|
+
const table = useTable({ features, columns, data })
|
|
331
323
|
// then: table.setSorting(...), column.toggleSorting(), header.getToggleSortingHandler()
|
|
332
324
|
```
|
|
333
325
|
|
|
@@ -368,7 +360,6 @@ Wrong:
|
|
|
368
360
|
// ❌ Fresh [] each render — infinite loop when items is undefined
|
|
369
361
|
const table = useTable({
|
|
370
362
|
features,
|
|
371
|
-
rowModels: {},
|
|
372
363
|
columns,
|
|
373
364
|
data: items ?? [],
|
|
374
365
|
})
|
|
@@ -382,7 +373,6 @@ const EMPTY: Person[] = []
|
|
|
382
373
|
|
|
383
374
|
const table = useTable({
|
|
384
375
|
features,
|
|
385
|
-
rowModels: {},
|
|
386
376
|
columns,
|
|
387
377
|
data: items ?? EMPTY,
|
|
388
378
|
})
|
package/skills/sorting/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: sorting
|
|
3
3
|
description: >
|
|
4
4
|
Sort rows in TanStack Table v9 with the `sortedRowModel` stage. Covers
|
|
5
|
-
`rowSortingFeature` + `createSortedRowModel(
|
|
5
|
+
`rowSortingFeature` + `createSortedRowModel()` (registered on `features`), the built-in `sortFns`
|
|
6
6
|
registry (renamed from v8 `sortingFns`), `state.sorting` (SortingState =
|
|
7
7
|
Array<{ id, desc }>), `onSortingChange`, `columnDef.sortFn`
|
|
8
8
|
(string | function | 'auto'), `sortDescFirst`, `sortUndefined`
|
|
@@ -47,7 +47,11 @@ type Person = {
|
|
|
47
47
|
status: 'single' | 'complicated' | 'relationship'
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
const features = tableFeatures({
|
|
50
|
+
const features = tableFeatures({
|
|
51
|
+
rowSortingFeature,
|
|
52
|
+
sortedRowModel: createSortedRowModel(),
|
|
53
|
+
sortFns,
|
|
54
|
+
})
|
|
51
55
|
const columnHelper = createColumnHelper<typeof features, Person>()
|
|
52
56
|
|
|
53
57
|
const columns = columnHelper.columns([
|
|
@@ -61,9 +65,6 @@ const columns = columnHelper.columns([
|
|
|
61
65
|
|
|
62
66
|
const table = constructTable({
|
|
63
67
|
features,
|
|
64
|
-
rowModels: {
|
|
65
|
-
sortedRowModel: createSortedRowModel(sortFns),
|
|
66
|
-
},
|
|
67
68
|
columns,
|
|
68
69
|
data,
|
|
69
70
|
initialState: { sorting: [] satisfies SortingState },
|
|
@@ -143,7 +144,7 @@ const { data } = useQuery({
|
|
|
143
144
|
|
|
144
145
|
const table = useTable({
|
|
145
146
|
features: tableFeatures({ rowSortingFeature }),
|
|
146
|
-
|
|
147
|
+
// omit sortedRowModel from features — server sorts
|
|
147
148
|
columns,
|
|
148
149
|
data,
|
|
149
150
|
manualSorting: true,
|
|
@@ -175,20 +176,19 @@ columnHelper.accessor('firstName', {
|
|
|
175
176
|
sortFn: 'alphanumeric',
|
|
176
177
|
})
|
|
177
178
|
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}),
|
|
179
|
+
const features = tableFeatures({
|
|
180
|
+
rowSortingFeature,
|
|
181
|
+
sortedRowModel: createSortedRowModel(),
|
|
182
|
+
sortFns: {
|
|
183
|
+
...sortFns,
|
|
184
|
+
myCustom: (a, b, id) => a.original[id] - b.original[id],
|
|
185
185
|
},
|
|
186
|
-
columns,
|
|
187
|
-
data,
|
|
188
186
|
})
|
|
187
|
+
|
|
188
|
+
const table = useTable({ features, columns, data })
|
|
189
189
|
```
|
|
190
190
|
|
|
191
|
-
v9 renamed `columnDef.sortingFn → sortFn`, `
|
|
191
|
+
v9 renamed `columnDef.sortingFn → sortFn`, the fn registry slot `sortingFns → sortFns` (now registered on `features`), exported registry `sortingFns → sortFns`. The new column option defaults to `'auto'` and falls back to `sortFn_basic` when lookup misses — wrong names sort wrong, silently.
|
|
192
192
|
|
|
193
193
|
Source: packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts
|
|
194
194
|
|
|
@@ -326,12 +326,12 @@ const sortedData = useMemo(
|
|
|
326
326
|
Correct:
|
|
327
327
|
|
|
328
328
|
```ts
|
|
329
|
-
const
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
data,
|
|
329
|
+
const features = tableFeatures({
|
|
330
|
+
rowSortingFeature,
|
|
331
|
+
sortedRowModel: createSortedRowModel(),
|
|
332
|
+
sortFns,
|
|
334
333
|
})
|
|
334
|
+
const table = useTable({ features, columns, data })
|
|
335
335
|
// table.setSorting(...), column.toggleSorting(), header.getToggleSortingHandler()
|
|
336
336
|
```
|
|
337
337
|
|