@tanstack/table-core 9.0.0-beta.2 → 9.0.0-beta.20
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 +3 -3
- package/dist/core/cells/constructCell.d.ts +3 -3
- 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 +6 -6
- package/dist/core/cells/coreCellsFeature.types.d.ts +6 -6
- package/dist/core/cells/coreCellsFeature.utils.d.cts +3 -3
- package/dist/core/cells/coreCellsFeature.utils.d.ts +3 -3
- package/dist/core/columns/constructColumn.cjs +5 -0
- package/dist/core/columns/constructColumn.cjs.map +1 -1
- package/dist/core/columns/constructColumn.d.cts +3 -3
- package/dist/core/columns/constructColumn.d.ts +3 -3
- package/dist/core/columns/constructColumn.js +5 -0
- package/dist/core/columns/constructColumn.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.cjs +59 -68
- package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
- package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
- package/dist/core/columns/coreColumnsFeature.js +60 -68
- package/dist/core/columns/coreColumnsFeature.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
- package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
- package/dist/core/columns/coreColumnsFeature.utils.cjs +2 -2
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
- package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
- package/dist/core/columns/coreColumnsFeature.utils.js +3 -3
- package/dist/core/columns/coreColumnsFeature.utils.js.map +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 +2 -2
- package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/constructHeader.d.cts +2 -2
- package/dist/core/headers/constructHeader.d.ts +2 -2
- 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 +6 -6
- package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
- 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 +6 -16
- package/dist/core/row-models/coreRowModelsFeature.types.d.ts +6 -16
- 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 +14 -14
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +14 -14
- 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 +2 -3
- package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
- package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
- package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
- package/dist/core/row-models/createCoreRowModel.js +3 -4
- package/dist/core/row-models/createCoreRowModel.js.map +1 -1
- package/dist/core/rows/constructRow.cjs +3 -2
- package/dist/core/rows/constructRow.cjs.map +1 -1
- package/dist/core/rows/constructRow.d.cts +2 -2
- package/dist/core/rows/constructRow.d.ts +2 -2
- package/dist/core/rows/constructRow.js +4 -2
- package/dist/core/rows/constructRow.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.cjs +27 -36
- package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.d.cts +4 -12
- package/dist/core/rows/coreRowsFeature.d.ts +4 -12
- package/dist/core/rows/coreRowsFeature.js +28 -36
- package/dist/core/rows/coreRowsFeature.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +6 -6
- package/dist/core/rows/coreRowsFeature.types.d.ts +6 -6
- package/dist/core/rows/coreRowsFeature.utils.cjs +3 -3
- package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +3 -3
- package/dist/core/rows/coreRowsFeature.utils.d.ts +3 -3
- package/dist/core/rows/coreRowsFeature.utils.js +4 -4
- package/dist/core/rows/coreRowsFeature.utils.js.map +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 +28 -16
- package/dist/core/table/coreTablesFeature.types.d.ts +28 -16
- package/dist/core/table/coreTablesFeature.utils.cjs +33 -12
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +8 -6
- package/dist/core/table/coreTablesFeature.utils.d.ts +8 -6
- package/dist/core/table/coreTablesFeature.utils.js +33 -12
- 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 +8 -8
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +8 -8
- 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 +42 -54
- 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 +12 -12
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +12 -12
- 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 +12 -7
- 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 +13 -8
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
- package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
- package/dist/features/column-filtering/filterRowsUtils.js +3 -2
- package/dist/features/column-filtering/filterRowsUtils.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 +59 -70
- 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.cjs +3 -3
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +11 -11
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +11 -11
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +4 -4
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs +9 -7
- 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 +10 -8
- 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 +9 -9
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +9 -9
- 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 +31 -30
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +31 -30
- 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.types.d.cts +1 -4
- package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +2 -5
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
- package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
- package/dist/features/column-resizing/columnResizingFeature.utils.js +3 -6
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
- package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
- package/dist/features/column-sizing/columnSizingFeature.js +113 -125
- package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +11 -4
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +12 -12
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +12 -12
- package/dist/features/column-sizing/columnSizingFeature.utils.js +12 -5
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- 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.cjs +12 -9
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +14 -14
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +14 -14
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +13 -10
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
- package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
- package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
- package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
- package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
- package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +10 -8
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -8
- 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.cjs +21 -12
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +22 -13
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs +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 +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 +17 -17
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
- 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.cjs +2 -2
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
- package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
- package/dist/features/row-pinning/rowPinningFeature.utils.js +2 -2
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.cjs +108 -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 +110 -78
- package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.cts +13 -5
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +13 -5
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +76 -60
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +48 -23
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +48 -23
- package/dist/features/row-selection/rowSelectionFeature.utils.js +77 -62
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +5 -3
- 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 +6 -4
- 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 +24 -21
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +24 -21
- 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 +16 -16
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
- 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/columnHelper.cjs.map +1 -1
- package/dist/helpers/columnHelper.d.cts +2 -2
- package/dist/helpers/columnHelper.d.ts +2 -2
- package/dist/helpers/columnHelper.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 +4 -20
- package/dist/index.d.cts +50 -49
- package/dist/index.d.ts +50 -49
- package/dist/index.js +23 -22
- package/dist/static-functions.cjs +1 -0
- package/dist/static-functions.d.cts +2 -2
- package/dist/static-functions.d.ts +2 -2
- package/dist/static-functions.js +2 -2
- 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 +4 -9
- package/dist/types/Cell.d.ts +4 -9
- package/dist/types/Column.d.cts +11 -18
- package/dist/types/Column.d.ts +11 -18
- package/dist/types/ColumnDef.d.cts +23 -14
- package/dist/types/ColumnDef.d.ts +23 -14
- package/dist/types/Header.d.cts +5 -10
- package/dist/types/Header.d.ts +5 -10
- package/dist/types/HeaderGroup.d.cts +4 -9
- package/dist/types/HeaderGroup.d.ts +4 -9
- package/dist/types/Row.d.cts +7 -12
- package/dist/types/Row.d.ts +7 -12
- package/dist/types/RowModel.d.cts +12 -28
- package/dist/types/RowModel.d.ts +12 -28
- package/dist/types/RowModelFns.d.cts +6 -11
- package/dist/types/RowModelFns.d.ts +6 -11
- package/dist/types/Table.d.cts +26 -36
- package/dist/types/Table.d.ts +26 -36
- package/dist/types/TableFeatures.d.cts +328 -54
- package/dist/types/TableFeatures.d.ts +328 -54
- package/dist/types/TableOptions.d.cts +22 -17
- package/dist/types/TableOptions.d.ts +22 -17
- package/dist/types/TableState.d.cts +11 -16
- package/dist/types/TableState.d.ts +11 -16
- package/dist/utils.cjs +24 -2
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +23 -7
- package/dist/utils.d.ts +23 -7
- package/dist/utils.js +23 -3
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
- 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/constructColumn.ts +6 -0
- package/src/core/columns/coreColumnsFeature.ts +56 -83
- package/src/core/columns/coreColumnsFeature.types.ts +8 -8
- package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
- package/src/core/coreFeatures.ts +1 -1
- package/src/core/headers/buildHeaderGroups.ts +4 -2
- package/src/core/headers/coreHeadersFeature.ts +42 -64
- package/src/core/headers/coreHeadersFeature.types.ts +12 -12
- 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 +7 -6
- package/src/core/rows/constructRow.ts +3 -2
- package/src/core/rows/coreRowsFeature.ts +45 -72
- package/src/core/rows/coreRowsFeature.types.ts +8 -8
- package/src/core/rows/coreRowsFeature.utils.ts +4 -4
- 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 +52 -18
- 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 +61 -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 +18 -17
- package/src/features/column-filtering/filterRowsUtils.ts +3 -2
- package/src/features/column-grouping/columnGroupingFeature.ts +83 -126
- package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +2 -2
- package/src/features/column-grouping/createGroupedRowModel.ts +17 -16
- 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 +11 -19
- package/src/features/column-resizing/columnResizingFeature.ts +44 -78
- package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
- package/src/features/column-resizing/columnResizingFeature.utils.ts +5 -6
- package/src/features/column-sizing/columnSizingFeature.ts +115 -152
- package/src/features/column-sizing/columnSizingFeature.utils.ts +27 -5
- package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
- package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +31 -15
- 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 +5 -3
- 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-expanding/rowExpandingFeature.utils.ts +38 -13
- package/src/features/row-pagination/createPaginatedRowModel.ts +2 -2
- 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 +125 -135
- package/src/features/row-selection/rowSelectionFeature.types.ts +17 -7
- package/src/features/row-selection/rowSelectionFeature.utils.ts +144 -66
- package/src/features/row-sorting/createSortedRowModel.ts +12 -15
- 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 +237 -264
- package/src/fns/sortFns.ts +51 -29
- package/src/helpers/columnHelper.ts +4 -4
- 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 +5 -21
- package/src/types/Column.ts +12 -26
- package/src/types/ColumnDef.ts +28 -18
- package/src/types/Header.ts +4 -20
- package/src/types/HeaderGroup.ts +7 -18
- package/src/types/Row.ts +6 -21
- package/src/types/RowModel.ts +15 -88
- package/src/types/RowModelFns.ts +9 -24
- package/src/types/Table.ts +54 -44
- package/src/types/TableFeatures.ts +402 -123
- package/src/types/TableOptions.ts +59 -21
- package/src/types/TableState.ts +5 -17
- package/src/utils.ts +40 -8
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
|
|
|
@@ -36,14 +36,16 @@ import {
|
|
|
36
36
|
sortFns,
|
|
37
37
|
} from '@tanstack/table-core'
|
|
38
38
|
|
|
39
|
-
const features = tableFeatures({
|
|
39
|
+
const features = tableFeatures({
|
|
40
|
+
rowSortingFeature,
|
|
41
|
+
rowPaginationFeature,
|
|
42
|
+
sortedRowModel: createSortedRowModel(),
|
|
43
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
44
|
+
sortFns,
|
|
45
|
+
})
|
|
40
46
|
|
|
41
47
|
const table = constructTable({
|
|
42
48
|
features,
|
|
43
|
-
rowModels: {
|
|
44
|
-
sortedRowModel: createSortedRowModel(sortFns),
|
|
45
|
-
paginatedRowModel: createPaginatedRowModel(),
|
|
46
|
-
},
|
|
47
49
|
columns,
|
|
48
50
|
data,
|
|
49
51
|
// 1. initialState — set starting values; read once at construction
|
|
@@ -79,7 +81,6 @@ The four ownership patterns per slice:
|
|
|
79
81
|
```ts
|
|
80
82
|
const table = constructTable({
|
|
81
83
|
features,
|
|
82
|
-
rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
|
|
83
84
|
columns,
|
|
84
85
|
data,
|
|
85
86
|
initialState: { sorting: [{ id: 'age', desc: false }] },
|
|
@@ -95,7 +96,6 @@ const [sorting, setSorting] = React.useState<SortingState>([])
|
|
|
95
96
|
|
|
96
97
|
const table = useTable({
|
|
97
98
|
features,
|
|
98
|
-
rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
|
|
99
99
|
columns,
|
|
100
100
|
data,
|
|
101
101
|
state: { sorting },
|
|
@@ -119,7 +119,6 @@ function MyTable() {
|
|
|
119
119
|
|
|
120
120
|
const table = useTable({
|
|
121
121
|
features,
|
|
122
|
-
rowModels: { paginatedRowModel: createPaginatedRowModel() },
|
|
123
122
|
columns,
|
|
124
123
|
data,
|
|
125
124
|
atoms: { pagination: paginationAtom },
|
|
@@ -146,7 +145,7 @@ const dataQuery = useQuery({
|
|
|
146
145
|
|
|
147
146
|
const table = useTable({
|
|
148
147
|
features: tableFeatures({ rowPaginationFeature }),
|
|
149
|
-
|
|
148
|
+
// no paginatedRowModel registered — server paginates
|
|
150
149
|
columns,
|
|
151
150
|
data: dataQuery.data?.rows ?? EMPTY,
|
|
152
151
|
rowCount: dataQuery.data?.rowCount, // server tells the table the total
|
|
@@ -170,7 +169,9 @@ const paginationAtom = useCreateAtom<PaginationState>({ pageIndex: 0, pageSize:
|
|
|
170
169
|
const [pagination, setPagination] = React.useState(...)
|
|
171
170
|
|
|
172
171
|
const table = useTable({
|
|
173
|
-
features,
|
|
172
|
+
features,
|
|
173
|
+
columns,
|
|
174
|
+
data,
|
|
174
175
|
state: { pagination }, // ignored
|
|
175
176
|
onPaginationChange: setPagination,
|
|
176
177
|
atoms: { pagination: paginationAtom }, // wins
|
|
@@ -181,10 +182,15 @@ Correct:
|
|
|
181
182
|
|
|
182
183
|
```tsx
|
|
183
184
|
// pick one ownership path per slice — here, external atoms
|
|
184
|
-
const paginationAtom = useCreateAtom<PaginationState>({
|
|
185
|
+
const paginationAtom = useCreateAtom<PaginationState>({
|
|
186
|
+
pageIndex: 0,
|
|
187
|
+
pageSize: 10,
|
|
188
|
+
})
|
|
185
189
|
|
|
186
190
|
const table = useTable({
|
|
187
|
-
features,
|
|
191
|
+
features,
|
|
192
|
+
columns,
|
|
193
|
+
data,
|
|
188
194
|
atoms: { pagination: paginationAtom },
|
|
189
195
|
})
|
|
190
196
|
```
|
|
@@ -201,7 +207,6 @@ Wrong:
|
|
|
201
207
|
const [sorting, setSorting] = React.useState<SortingState>([])
|
|
202
208
|
const table = useTable({
|
|
203
209
|
features,
|
|
204
|
-
rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
|
|
205
210
|
columns,
|
|
206
211
|
data,
|
|
207
212
|
state: { sorting }, // no onSortingChange
|
|
@@ -214,7 +219,6 @@ Correct:
|
|
|
214
219
|
const [sorting, setSorting] = React.useState<SortingState>([])
|
|
215
220
|
const table = useTable({
|
|
216
221
|
features,
|
|
217
|
-
rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
|
|
218
222
|
columns,
|
|
219
223
|
data,
|
|
220
224
|
state: { sorting },
|
|
@@ -235,7 +239,6 @@ Wrong:
|
|
|
235
239
|
function MyTable({ defaultSort }: { defaultSort: SortingState }) {
|
|
236
240
|
const table = useTable({
|
|
237
241
|
features,
|
|
238
|
-
rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
|
|
239
242
|
columns,
|
|
240
243
|
data,
|
|
241
244
|
initialState: { sorting: defaultSort }, // later changes never sync
|
|
@@ -250,7 +253,6 @@ function MyTable({ defaultSort }: { defaultSort: SortingState }) {
|
|
|
250
253
|
const [sorting, setSorting] = React.useState(defaultSort)
|
|
251
254
|
const table = useTable({
|
|
252
255
|
features,
|
|
253
|
-
rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
|
|
254
256
|
columns,
|
|
255
257
|
data,
|
|
256
258
|
state: { sorting },
|
|
@@ -268,8 +270,16 @@ Source: docs/framework/vanilla/guide/table-state.md; docs/framework/react/guide/
|
|
|
268
270
|
Wrong:
|
|
269
271
|
|
|
270
272
|
```ts
|
|
271
|
-
const paginationAtom = useCreateAtom<PaginationState>({
|
|
272
|
-
|
|
273
|
+
const paginationAtom = useCreateAtom<PaginationState>({
|
|
274
|
+
pageIndex: 0,
|
|
275
|
+
pageSize: 10,
|
|
276
|
+
})
|
|
277
|
+
const table = useTable({
|
|
278
|
+
features,
|
|
279
|
+
columns,
|
|
280
|
+
data,
|
|
281
|
+
atoms: { pagination: paginationAtom },
|
|
282
|
+
})
|
|
273
283
|
|
|
274
284
|
table.baseAtoms.pagination.set((old) => ({ ...old, pageIndex: 0 }))
|
|
275
285
|
// baseAtom updated, but table.atoms.pagination still reads from paginationAtom
|
|
@@ -298,9 +308,9 @@ const dataQuery = useQuery({
|
|
|
298
308
|
queryKey: ['data', pagination],
|
|
299
309
|
queryFn: fetchPage,
|
|
300
310
|
})
|
|
311
|
+
// features has paginatedRowModel registered
|
|
301
312
|
const table = useTable({
|
|
302
313
|
features,
|
|
303
|
-
rowModels: { paginatedRowModel: createPaginatedRowModel() },
|
|
304
314
|
columns,
|
|
305
315
|
data: dataQuery.data?.rows ?? [],
|
|
306
316
|
rowCount: dataQuery.data?.rowCount,
|
|
@@ -312,9 +322,9 @@ const table = useTable({
|
|
|
312
322
|
Correct:
|
|
313
323
|
|
|
314
324
|
```tsx
|
|
325
|
+
// Use features WITHOUT paginatedRowModel for fully server-side pagination
|
|
315
326
|
const table = useTable({
|
|
316
|
-
features,
|
|
317
|
-
rowModels: {}, // drop paginatedRowModel if fully server-side
|
|
327
|
+
features: tableFeatures({ rowPaginationFeature }),
|
|
318
328
|
columns,
|
|
319
329
|
data: dataQuery.data?.rows ?? [],
|
|
320
330
|
rowCount: dataQuery.data?.rowCount,
|
|
@@ -335,7 +345,9 @@ Wrong:
|
|
|
335
345
|
// external atom keeps its current value; only baseAtoms reset
|
|
336
346
|
const sortingAtom = useCreateAtom<SortingState>([])
|
|
337
347
|
const table = useTable({
|
|
338
|
-
features,
|
|
348
|
+
features,
|
|
349
|
+
columns,
|
|
350
|
+
data,
|
|
339
351
|
atoms: { sorting: sortingAtom },
|
|
340
352
|
})
|
|
341
353
|
table.reset() // sortingAtom is NOT cleared
|
|
@@ -369,8 +381,11 @@ Correct:
|
|
|
369
381
|
|
|
370
382
|
```ts
|
|
371
383
|
const table = useTable({
|
|
372
|
-
features: tableFeatures({
|
|
373
|
-
|
|
384
|
+
features: tableFeatures({
|
|
385
|
+
rowSortingFeature,
|
|
386
|
+
sortedRowModel: createSortedRowModel(),
|
|
387
|
+
sortFns,
|
|
388
|
+
}),
|
|
374
389
|
columns,
|
|
375
390
|
data,
|
|
376
391
|
})
|
|
@@ -383,6 +398,6 @@ Source: maintainer interview (Phase 4, 2026-05-17)
|
|
|
383
398
|
|
|
384
399
|
## See also
|
|
385
400
|
|
|
386
|
-
- `tanstack-table/setup` — how `features` and
|
|
401
|
+
- `tanstack-table/setup` — how `features` (with row model factory and fn slots) is wired
|
|
387
402
|
- `tanstack-table/pagination`, `tanstack-table/sorting`, `tanstack-table/filtering` — feature-specific `manual*` and reset semantics
|
|
388
403
|
- `tanstack-table/migrate-v8-to-v9` — `table.getState()` → `table.store.state` / `table.atoms.<slice>.get()`
|
|
@@ -4,46 +4,24 @@ import {
|
|
|
4
4
|
cell_getValue,
|
|
5
5
|
cell_renderValue,
|
|
6
6
|
} from './coreCellsFeature.utils'
|
|
7
|
-
import type {
|
|
8
|
-
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
9
|
-
// import type { Cell_Cell, TableOptions_Cell } from './coreCellsFeature.types'
|
|
10
|
-
|
|
11
|
-
export interface CoreCellsFeatureConstructors<
|
|
12
|
-
TFeatures extends TableFeatures,
|
|
13
|
-
TData extends RowData,
|
|
14
|
-
> {
|
|
15
|
-
// Cell: Cell_Cell<TableFeatures, RowData>
|
|
16
|
-
// TableOptions: TableOptions_Cell
|
|
17
|
-
}
|
|
7
|
+
import type { TableFeature } from '../../types/TableFeatures'
|
|
18
8
|
|
|
19
9
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
|
|
10
|
+
* Core feature that adds cell value, render, and context APIs.
|
|
23
11
|
*/
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
memoDeps: (cell) => [cell],
|
|
40
|
-
},
|
|
41
|
-
})
|
|
42
|
-
},
|
|
43
|
-
}
|
|
12
|
+
export const coreCellsFeature: TableFeature = {
|
|
13
|
+
assignCellPrototype: (prototype, table) => {
|
|
14
|
+
assignPrototypeAPIs('coreCellsFeature', prototype, table, {
|
|
15
|
+
cell_getValue: {
|
|
16
|
+
fn: (cell) => cell_getValue(cell),
|
|
17
|
+
},
|
|
18
|
+
cell_renderValue: {
|
|
19
|
+
fn: (cell) => cell_renderValue(cell),
|
|
20
|
+
},
|
|
21
|
+
cell_getContext: {
|
|
22
|
+
fn: (cell) => cell_getContext(cell),
|
|
23
|
+
memoDeps: (cell) => [cell],
|
|
24
|
+
},
|
|
25
|
+
})
|
|
26
|
+
},
|
|
44
27
|
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* The Core Cells feature provides the core cell functionality.
|
|
48
|
-
*/
|
|
49
|
-
export const coreCellsFeature = constructCoreCellsFeature()
|
|
@@ -6,8 +6,8 @@ import type { Cell } from '../../types/Cell'
|
|
|
6
6
|
import type { Column } from '../../types/Column'
|
|
7
7
|
|
|
8
8
|
export interface CellContext<
|
|
9
|
-
TFeatures extends TableFeatures,
|
|
10
|
-
TData extends RowData,
|
|
9
|
+
in out TFeatures extends TableFeatures,
|
|
10
|
+
in out TData extends RowData,
|
|
11
11
|
TValue extends CellData = CellData,
|
|
12
12
|
> {
|
|
13
13
|
cell: Cell<TFeatures, TData, TValue>
|
|
@@ -19,8 +19,8 @@ export interface CellContext<
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export interface Cell_CoreProperties<
|
|
22
|
-
TFeatures extends TableFeatures,
|
|
23
|
-
TData extends RowData,
|
|
22
|
+
in out TFeatures extends TableFeatures,
|
|
23
|
+
in out TData extends RowData,
|
|
24
24
|
TValue extends CellData = CellData,
|
|
25
25
|
> {
|
|
26
26
|
/**
|
|
@@ -42,8 +42,8 @@ export interface Cell_CoreProperties<
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
export interface Cell_Cell<
|
|
45
|
-
TFeatures extends TableFeatures,
|
|
46
|
-
TData extends RowData,
|
|
45
|
+
in out TFeatures extends TableFeatures,
|
|
46
|
+
in out TData extends RowData,
|
|
47
47
|
TValue extends CellData = CellData,
|
|
48
48
|
> extends Cell_CoreProperties<TFeatures, TData, TValue> {
|
|
49
49
|
/**
|
|
@@ -115,5 +115,11 @@ export function constructColumn<
|
|
|
115
115
|
column.id = `${String(id)}`
|
|
116
116
|
column.parent = parent
|
|
117
117
|
|
|
118
|
+
// Initialize instance-specific data for features that need it
|
|
119
|
+
const features = Object.values(table._features)
|
|
120
|
+
for (let i = 0; i < features.length; i++) {
|
|
121
|
+
features[i]!.initColumnInstanceData?.(column)
|
|
122
|
+
}
|
|
123
|
+
|
|
118
124
|
return column as Column<TFeatures, TData, TValue>
|
|
119
125
|
}
|