@tanstack/table-core 9.0.0-beta.5 → 9.0.0-beta.51
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/README.md +2 -0
- package/dist/core/cells/constructCell.cjs +1 -4
- package/dist/core/cells/constructCell.cjs.map +1 -1
- package/dist/core/cells/constructCell.d.cts +4 -4
- package/dist/core/cells/constructCell.d.ts +4 -4
- package/dist/core/cells/constructCell.js +1 -4
- package/dist/core/cells/constructCell.js.map +1 -1
- package/dist/core/cells/coreCellsFeature.types.d.cts +7 -7
- package/dist/core/cells/coreCellsFeature.types.d.ts +7 -7
- package/dist/core/cells/coreCellsFeature.utils.d.cts +4 -4
- package/dist/core/cells/coreCellsFeature.utils.d.ts +4 -4
- package/dist/core/columns/constructColumn.cjs +4 -5
- 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 +4 -5
- package/dist/core/columns/constructColumn.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.cjs +12 -18
- package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.js +12 -18
- 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 +4 -8
- 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 +5 -9
- 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 +1 -2
- 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 +1 -2
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/constructHeader.cjs +1 -4
- package/dist/core/headers/constructHeader.cjs.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/constructHeader.js +1 -4
- package/dist/core/headers/constructHeader.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.cjs +8 -11
- package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.js +8 -11
- 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 +8 -10
- 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 +8 -10
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.types.d.cts +7 -15
- package/dist/core/row-models/coreRowModelsFeature.types.d.ts +7 -15
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +8 -26
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +16 -16
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +16 -16
- package/dist/core/row-models/coreRowModelsFeature.utils.js +8 -26
- package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
- package/dist/core/row-models/createCoreRowModel.cjs +4 -6
- 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 +5 -7
- package/dist/core/row-models/createCoreRowModel.js.map +1 -1
- package/dist/core/rows/constructRow.cjs +6 -10
- 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 +7 -10
- package/dist/core/rows/constructRow.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.cjs +18 -2
- package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.js +19 -3
- package/dist/core/rows/coreRowsFeature.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +41 -7
- package/dist/core/rows/coreRowsFeature.types.d.ts +41 -7
- package/dist/core/rows/coreRowsFeature.utils.cjs +62 -8
- package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +24 -5
- package/dist/core/rows/coreRowsFeature.utils.d.ts +24 -5
- package/dist/core/rows/coreRowsFeature.utils.js +61 -10
- package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
- package/dist/core/table/constructTable.cjs +24 -14
- 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 +24 -14
- package/dist/core/table/constructTable.js.map +1 -1
- package/dist/core/table/coreTablesFeature.types.d.cts +32 -19
- package/dist/core/table/coreTablesFeature.types.d.ts +32 -19
- package/dist/core/table/coreTablesFeature.utils.cjs +38 -14
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +10 -7
- package/dist/core/table/coreTablesFeature.utils.d.ts +10 -7
- package/dist/core/table/coreTablesFeature.utils.js +38 -14
- package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
- package/dist/experimental-worker-plugin.cjs +14 -0
- package/dist/experimental-worker-plugin.d.cts +5 -0
- package/dist/experimental-worker-plugin.d.ts +5 -0
- package/dist/experimental-worker-plugin.js +6 -0
- package/dist/features/column-faceting/columnFacetingFeature.cjs +12 -18
- package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.js +12 -18
- package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +15 -33
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -33
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +23 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +9 -9
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +9 -9
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +24 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +7 -4
- 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 +8 -5
- package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs +10 -15
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.d.cts +2 -2
- package/dist/features/column-faceting/createFacetedRowModel.d.ts +2 -2
- package/dist/features/column-faceting/createFacetedRowModel.js +10 -15
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs +10 -6
- 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 +11 -7
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.cjs +2 -2
- package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.js +3 -3
- package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +83 -29
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +83 -29
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +23 -17
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +18 -14
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +18 -14
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +23 -17
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs +29 -25
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.cts +10 -4
- package/dist/features/column-filtering/createFilteredRowModel.d.ts +10 -4
- package/dist/features/column-filtering/createFilteredRowModel.js +30 -26
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-filtering/filterFns.cjs +399 -0
- package/dist/features/column-filtering/filterFns.cjs.map +1 -0
- package/dist/features/column-filtering/filterFns.d.cts +210 -0
- package/dist/features/column-filtering/filterFns.d.ts +210 -0
- package/dist/features/column-filtering/filterFns.js +375 -0
- package/dist/features/column-filtering/filterFns.js.map +1 -0
- 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 +4 -16
- package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.d.cts +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.d.ts +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.js +6 -18
- package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +14 -50
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -50
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +6 -61
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +12 -49
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -49
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -60
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs +37 -24
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -4
- package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -4
- package/dist/features/column-grouping/createGroupedRowModel.js +39 -26
- package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.cjs +17 -21
- package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.js +18 -22
- package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +28 -3
- package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -3
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +35 -15
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +26 -14
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -14
- package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -17
- package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.cjs +124 -143
- package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.d.cts +6 -1
- package/dist/features/column-pinning/columnPinningFeature.d.ts +6 -1
- package/dist/features/column-pinning/columnPinningFeature.js +125 -144
- package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.types.d.cts +52 -41
- package/dist/features/column-pinning/columnPinningFeature.types.d.ts +52 -41
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs +161 -162
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +101 -92
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +101 -92
- package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -149
- package/dist/features/column-pinning/columnPinningFeature.utils.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 +84 -44
- 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 +85 -45
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +33 -67
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.js +34 -68
- package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.types.d.cts +52 -9
- package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -9
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +88 -45
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +43 -25
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -25
- package/dist/features/column-sizing/columnSizingFeature.utils.js +88 -46
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +25 -36
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.js +25 -36
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +3 -3
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +3 -3
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +30 -29
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +18 -18
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +18 -18
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +31 -30
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.cjs +1 -2
- package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.js +1 -2
- 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 +6 -6
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +8 -11
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +8 -11
- package/dist/features/global-filtering/globalFilteringFeature.utils.js +6 -6
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
- package/dist/features/row-aggregation/aggregationFns.cjs +246 -0
- package/dist/features/row-aggregation/aggregationFns.cjs.map +1 -0
- package/dist/features/row-aggregation/aggregationFns.d.cts +68 -0
- package/dist/features/row-aggregation/aggregationFns.d.ts +68 -0
- package/dist/features/row-aggregation/aggregationFns.js +235 -0
- package/dist/features/row-aggregation/aggregationFns.js.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.cjs +39 -0
- package/dist/features/row-aggregation/rowAggregationFeature.cjs.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.d.cts +10 -0
- package/dist/features/row-aggregation/rowAggregationFeature.d.ts +10 -0
- package/dist/features/row-aggregation/rowAggregationFeature.js +39 -0
- package/dist/features/row-aggregation/rowAggregationFeature.js.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.cjs +13 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.cjs.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.d.cts +195 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.d.ts +195 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.js +12 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.js.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs +212 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.d.cts +34 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.d.ts +34 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.js +206 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.js.map +1 -0
- package/dist/features/row-expanding/createExpandedRowModel.cjs +6 -10
- package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.d.cts +2 -2
- package/dist/features/row-expanding/createExpandedRowModel.d.ts +2 -2
- package/dist/features/row-expanding/createExpandedRowModel.js +6 -10
- package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +6 -15
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +6 -15
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +28 -26
- 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 +29 -27
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs +6 -10
- package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.cts +2 -2
- package/dist/features/row-pagination/createPaginatedRowModel.d.ts +2 -2
- package/dist/features/row-pagination/createPaginatedRowModel.js +6 -10
- package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +5 -14
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +5 -14
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +9 -15
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
- 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-pagination/rowPaginationFeature.utils.js +9 -15
- package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.cjs +4 -16
- package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.js +4 -16
- 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 +9 -14
- 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 +9 -14
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.cjs +66 -22
- package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.js +67 -23
- package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.cts +49 -11
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +49 -11
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +128 -72
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +57 -30
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +57 -30
- package/dist/features/row-selection/rowSelectionFeature.utils.js +129 -74
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +69 -50
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.d.cts +10 -4
- package/dist/features/row-sorting/createSortedRowModel.d.ts +10 -4
- package/dist/features/row-sorting/createSortedRowModel.js +70 -51
- package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.types.d.cts +54 -22
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +54 -22
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +31 -17
- 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 +31 -17
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/sortFns.cjs +226 -0
- package/dist/features/row-sorting/sortFns.cjs.map +1 -0
- package/dist/features/row-sorting/sortFns.d.cts +98 -0
- package/dist/features/row-sorting/sortFns.d.ts +98 -0
- package/dist/features/row-sorting/sortFns.js +217 -0
- package/dist/features/row-sorting/sortFns.js.map +1 -0
- package/dist/features/stockFeatures.cjs +2 -0
- package/dist/features/stockFeatures.cjs.map +1 -1
- package/dist/features/stockFeatures.d.cts +2 -0
- package/dist/features/stockFeatures.d.ts +2 -0
- package/dist/features/stockFeatures.js +2 -0
- package/dist/features/stockFeatures.js.map +1 -1
- package/dist/flex-render.d.cts +1 -1
- package/dist/flex-render.d.ts +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 +32 -3
- package/dist/helpers/tableFeatures.cjs.map +1 -1
- package/dist/helpers/tableFeatures.d.cts +34 -5
- package/dist/helpers/tableFeatures.d.ts +34 -5
- package/dist/helpers/tableFeatures.js +32 -3
- package/dist/helpers/tableFeatures.js.map +1 -1
- package/dist/index.cjs +23 -3
- package/dist/index.d.cts +31 -28
- package/dist/index.d.ts +31 -28
- package/dist/index.js +8 -5
- package/dist/static-functions.cjs +30 -19
- package/dist/static-functions.d.cts +8 -7
- package/dist/static-functions.d.ts +8 -7
- package/dist/static-functions.js +8 -7
- package/dist/store-reactivity-bindings.cjs +3 -3
- 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 +3 -3
- package/dist/store-reactivity-bindings.js.map +1 -1
- package/dist/types/Cell.d.cts +4 -2
- package/dist/types/Cell.d.ts +4 -2
- package/dist/types/Column.d.cts +15 -15
- package/dist/types/Column.d.ts +15 -15
- package/dist/types/ColumnDef.d.cts +30 -14
- package/dist/types/ColumnDef.d.ts +30 -14
- package/dist/types/Header.d.cts +2 -2
- package/dist/types/Header.d.ts +2 -2
- package/dist/types/HeaderGroup.d.cts +2 -2
- package/dist/types/HeaderGroup.d.ts +2 -2
- package/dist/types/Row.d.cts +6 -4
- package/dist/types/Row.d.ts +6 -4
- package/dist/types/RowModel.d.cts +11 -23
- package/dist/types/RowModel.d.ts +11 -23
- package/dist/types/RowModelFns.d.cts +4 -4
- package/dist/types/RowModelFns.d.ts +4 -4
- package/dist/types/Table.d.cts +26 -31
- package/dist/types/Table.d.ts +26 -31
- package/dist/types/TableFeatures.d.cts +350 -22
- package/dist/types/TableFeatures.d.ts +350 -22
- package/dist/types/TableOptions.d.cts +22 -14
- package/dist/types/TableOptions.d.ts +22 -14
- package/dist/types/TableState.d.cts +6 -6
- package/dist/types/TableState.d.ts +6 -6
- package/dist/types/type-utils.d.cts +8 -1
- package/dist/types/type-utils.d.ts +8 -1
- package/dist/utils.cjs +51 -29
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +30 -8
- package/dist/utils.d.ts +30 -8
- package/dist/utils.js +49 -30
- package/dist/utils.js.map +1 -1
- package/dist/worker/createTableWorker.cjs +189 -0
- package/dist/worker/createTableWorker.cjs.map +1 -0
- package/dist/worker/createTableWorker.d.cts +102 -0
- package/dist/worker/createTableWorker.d.ts +102 -0
- package/dist/worker/createTableWorker.js +186 -0
- package/dist/worker/createTableWorker.js.map +1 -0
- package/dist/worker/createWorkerRowModel.cjs +78 -0
- package/dist/worker/createWorkerRowModel.cjs.map +1 -0
- package/dist/worker/createWorkerRowModel.d.cts +42 -0
- package/dist/worker/createWorkerRowModel.d.ts +42 -0
- package/dist/worker/createWorkerRowModel.js +78 -0
- package/dist/worker/createWorkerRowModel.js.map +1 -0
- package/dist/worker/initTableWorker.cjs +100 -0
- package/dist/worker/initTableWorker.cjs.map +1 -0
- package/dist/worker/initTableWorker.d.cts +33 -0
- package/dist/worker/initTableWorker.d.ts +33 -0
- package/dist/worker/initTableWorker.js +100 -0
- package/dist/worker/initTableWorker.js.map +1 -0
- package/dist/worker/rebuildRowModel.cjs +72 -0
- package/dist/worker/rebuildRowModel.cjs.map +1 -0
- package/dist/worker/rebuildRowModel.d.cts +9 -0
- package/dist/worker/rebuildRowModel.d.ts +9 -0
- package/dist/worker/rebuildRowModel.js +72 -0
- package/dist/worker/rebuildRowModel.js.map +1 -0
- package/dist/worker/serializeRowModel.cjs +53 -0
- package/dist/worker/serializeRowModel.cjs.map +1 -0
- package/dist/worker/serializeRowModel.js +52 -0
- package/dist/worker/serializeRowModel.js.map +1 -0
- package/dist/worker/tableWorkerProtocol.cjs +29 -0
- package/dist/worker/tableWorkerProtocol.cjs.map +1 -0
- package/dist/worker/tableWorkerProtocol.d.cts +88 -0
- package/dist/worker/tableWorkerProtocol.d.ts +88 -0
- package/dist/worker/tableWorkerProtocol.js +27 -0
- package/dist/worker/tableWorkerProtocol.js.map +1 -0
- package/package.json +8 -3
- package/skills/aggregation/SKILL.md +141 -0
- package/skills/api-not-found/SKILL.md +113 -0
- package/skills/client-vs-server/SKILL.md +164 -0
- package/skills/column-faceting/SKILL.md +97 -0
- package/skills/column-filtering/SKILL.md +87 -0
- package/skills/column-ordering/SKILL.md +75 -0
- package/skills/column-pinning/SKILL.md +89 -0
- package/skills/column-resizing/SKILL.md +91 -0
- package/skills/column-sizing/SKILL.md +72 -0
- package/skills/column-visibility/SKILL.md +75 -0
- package/skills/core/SKILL.md +175 -0
- package/skills/custom-features/SKILL.md +235 -0
- package/skills/expanding/SKILL.md +80 -0
- package/skills/global-filtering/SKILL.md +84 -0
- package/skills/grouping/SKILL.md +51 -401
- package/skills/migrate-v8-to-v9/SKILL.md +274 -416
- package/skills/pagination/SKILL.md +37 -344
- package/skills/row-pinning/SKILL.md +47 -234
- package/skills/row-selection/SKILL.md +75 -302
- package/skills/sorting/SKILL.md +45 -303
- package/skills/table-features/SKILL.md +159 -0
- package/skills/typescript/SKILL.md +126 -0
- package/src/core/cells/coreCellsFeature.types.ts +6 -6
- package/src/core/columns/constructColumn.ts +6 -0
- 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.types.ts +12 -12
- package/src/core/headers/coreHeadersFeature.utils.ts +7 -8
- package/src/core/row-models/coreRowModelsFeature.types.ts +6 -20
- package/src/core/row-models/coreRowModelsFeature.utils.ts +8 -8
- package/src/core/row-models/createCoreRowModel.ts +7 -6
- package/src/core/rows/constructRow.ts +4 -2
- package/src/core/rows/coreRowsFeature.ts +21 -0
- package/src/core/rows/coreRowsFeature.types.ts +45 -8
- package/src/core/rows/coreRowsFeature.utils.ts +93 -5
- package/src/core/table/constructTable.ts +44 -6
- package/src/core/table/coreTablesFeature.types.ts +45 -20
- package/src/core/table/coreTablesFeature.utils.ts +59 -19
- package/src/experimental-worker-plugin.ts +22 -0
- package/src/features/column-faceting/columnFacetingFeature.types.ts +17 -48
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +53 -18
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +33 -7
- package/src/features/column-faceting/createFacetedRowModel.ts +8 -1
- package/src/features/column-faceting/createFacetedUniqueValues.ts +41 -10
- package/src/features/column-filtering/columnFilteringFeature.ts +3 -2
- package/src/features/column-filtering/columnFilteringFeature.types.ts +117 -41
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +37 -23
- package/src/features/column-filtering/createFilteredRowModel.ts +28 -17
- package/src/features/column-filtering/filterFns.ts +533 -0
- package/src/features/column-filtering/filterRowsUtils.ts +3 -2
- package/src/features/column-grouping/columnGroupingFeature.ts +3 -21
- package/src/features/column-grouping/columnGroupingFeature.types.ts +21 -95
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -87
- package/src/features/column-grouping/createGroupedRowModel.ts +46 -45
- package/src/features/column-ordering/columnOrderingFeature.ts +12 -7
- package/src/features/column-ordering/columnOrderingFeature.types.ts +29 -3
- package/src/features/column-ordering/columnOrderingFeature.utils.ts +59 -8
- package/src/features/column-pinning/columnPinningFeature.ts +76 -59
- package/src/features/column-pinning/columnPinningFeature.types.ts +53 -42
- package/src/features/column-pinning/columnPinningFeature.utils.ts +184 -170
- package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
- package/src/features/column-resizing/columnResizingFeature.utils.ts +120 -52
- package/src/features/column-sizing/columnSizingFeature.ts +24 -24
- package/src/features/column-sizing/columnSizingFeature.types.ts +53 -8
- package/src/features/column-sizing/columnSizingFeature.utils.ts +143 -62
- package/src/features/column-visibility/columnVisibilityFeature.ts +4 -0
- package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +48 -30
- package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +13 -5
- package/src/features/row-aggregation/aggregationFns.ts +345 -0
- package/src/features/row-aggregation/rowAggregationFeature.ts +60 -0
- package/src/features/row-aggregation/rowAggregationFeature.types.ts +339 -0
- package/src/features/row-aggregation/rowAggregationFeature.utils.ts +430 -0
- package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -23
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
- package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
- package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -21
- package/src/features/row-pagination/rowPaginationFeature.utils.ts +1 -1
- package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
- package/src/features/row-selection/rowSelectionFeature.ts +53 -3
- package/src/features/row-selection/rowSelectionFeature.types.ts +54 -10
- package/src/features/row-selection/rowSelectionFeature.utils.ts +273 -91
- package/src/features/row-sorting/createSortedRowModel.ts +107 -75
- package/src/features/row-sorting/rowSortingFeature.types.ts +87 -34
- package/src/features/row-sorting/rowSortingFeature.utils.ts +49 -23
- package/src/features/row-sorting/sortFns.ts +366 -0
- package/src/features/stockFeatures.ts +3 -0
- package/src/helpers/columnHelper.ts +4 -4
- package/src/helpers/metaHelper.ts +24 -0
- package/src/helpers/tableFeatures.ts +37 -5
- package/src/index.ts +8 -8
- package/src/static-functions.ts +1 -0
- package/src/store-reactivity-bindings.ts +1 -1
- package/src/types/Cell.ts +4 -2
- package/src/types/Column.ts +13 -9
- package/src/types/ColumnDef.ts +40 -10
- package/src/types/Header.ts +2 -2
- package/src/types/HeaderGroup.ts +6 -6
- package/src/types/Row.ts +6 -4
- package/src/types/RowModel.ts +19 -74
- package/src/types/RowModelFns.ts +10 -10
- package/src/types/Table.ts +52 -27
- package/src/types/TableFeatures.ts +392 -14
- package/src/types/TableOptions.ts +67 -14
- package/src/types/TableState.ts +15 -1
- package/src/types/type-utils.ts +8 -0
- package/src/utils.ts +60 -8
- package/src/worker/createTableWorker.ts +357 -0
- package/src/worker/createWorkerRowModel.ts +121 -0
- package/src/worker/initTableWorker.ts +164 -0
- package/src/worker/rebuildRowModel.ts +120 -0
- package/src/worker/serializeRowModel.ts +80 -0
- package/src/worker/tableWorkerProtocol.ts +105 -0
- package/dist/fns/aggregationFns.cjs +0 -161
- package/dist/fns/aggregationFns.cjs.map +0 -1
- package/dist/fns/aggregationFns.d.cts +0 -85
- package/dist/fns/aggregationFns.d.ts +0 -85
- package/dist/fns/aggregationFns.js +0 -151
- package/dist/fns/aggregationFns.js.map +0 -1
- package/dist/fns/filterFns.cjs +0 -201
- package/dist/fns/filterFns.cjs.map +0 -1
- package/dist/fns/filterFns.d.cts +0 -167
- package/dist/fns/filterFns.d.ts +0 -167
- package/dist/fns/filterFns.js +0 -185
- package/dist/fns/filterFns.js.map +0 -1
- package/dist/fns/sortFns.cjs +0 -118
- package/dist/fns/sortFns.cjs.map +0 -1
- package/dist/fns/sortFns.d.cts +0 -65
- package/dist/fns/sortFns.d.ts +0 -65
- package/dist/fns/sortFns.js +0 -110
- package/dist/fns/sortFns.js.map +0 -1
- package/skills/column-definitions/SKILL.md +0 -333
- package/skills/column-layout/SKILL.md +0 -328
- package/skills/column-layout/references/subsystems.md +0 -220
- package/skills/customizing-feature-behavior/SKILL.md +0 -416
- package/skills/filtering/SKILL.md +0 -357
- package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
- package/skills/row-expanding/SKILL.md +0 -348
- package/skills/setup/SKILL.md +0 -400
- package/skills/state-management/SKILL.md +0 -388
- package/src/fns/aggregationFns.ts +0 -245
- package/src/fns/filterFns.ts +0 -382
- package/src/fns/sortFns.ts +0 -217
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: column-filtering
|
|
3
|
+
description: >
|
|
4
|
+
Filter columns with columnFilteringFeature, filteredRowModel, filterFns, filterMeta, nested-row direction, and manualFiltering. Load for accessor compatibility, controlled filter updaters, fuzzy metadata, or client/server ownership.
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
type: sub-skill,
|
|
8
|
+
library: '@tanstack/table-core',
|
|
9
|
+
library_version: '9.0.0-beta.51',
|
|
10
|
+
}
|
|
11
|
+
requires: ['core', 'table-features', 'client-vs-server']
|
|
12
|
+
sources:
|
|
13
|
+
- 'TanStack/table:docs/framework/react/guide/column-filtering.md'
|
|
14
|
+
- 'TanStack/table:packages/table-core/src/features/column-filtering'
|
|
15
|
+
- 'TanStack/table:examples/react/filters'
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
This skill builds on `core`, `table-features`, and `client-vs-server`. Filtering state, row processing, and filter UI are separate concerns.
|
|
19
|
+
|
|
20
|
+
## Setup
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import {
|
|
24
|
+
columnFilteringFeature,
|
|
25
|
+
createFilteredRowModel,
|
|
26
|
+
filterFn_includesString,
|
|
27
|
+
tableFeatures,
|
|
28
|
+
} from '@tanstack/table-core'
|
|
29
|
+
|
|
30
|
+
export const features = tableFeatures({
|
|
31
|
+
columnFilteringFeature,
|
|
32
|
+
filteredRowModel: createFilteredRowModel(),
|
|
33
|
+
filterFns: { includesString: filterFn_includesString },
|
|
34
|
+
})
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Import individual `filterFn_*` built-ins and register only those your columns
|
|
38
|
+
reference by string name or that `filterFn: 'auto'` should resolve for your
|
|
39
|
+
data types. The full `filterFns` registry object still works but bundles every
|
|
40
|
+
built-in.
|
|
41
|
+
|
|
42
|
+
## Core Patterns
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
const options = {
|
|
46
|
+
filterFromLeafRows: true,
|
|
47
|
+
maxLeafRowFilterDepth: 2,
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Use leaf-first filtering only when a parent should survive because a descendant matches.
|
|
52
|
+
|
|
53
|
+
## Common Mistakes
|
|
54
|
+
|
|
55
|
+
### [HIGH] Combining manual and client filtering
|
|
56
|
+
|
|
57
|
+
Wrong: `const options = { manualFiltering: true }`
|
|
58
|
+
|
|
59
|
+
Correct: `const options = { manualFiltering: false }`
|
|
60
|
+
|
|
61
|
+
Manual mode returns the pre-filtered model; send filter state to the server instead if it is `true`.
|
|
62
|
+
|
|
63
|
+
Source: `packages/table-core/src/features/column-filtering/columnFilteringFeature.types.ts`
|
|
64
|
+
|
|
65
|
+
### [HIGH] Filtering renderer output
|
|
66
|
+
|
|
67
|
+
Wrong: `helper.accessor(row => ({ label: row.status }), { filterFn: 'includesString' })`
|
|
68
|
+
|
|
69
|
+
Correct: `helper.accessor('status', { filterFn: 'includesString' })`
|
|
70
|
+
|
|
71
|
+
Built-in string and numeric filters expect comparable accessor values, not objects or UI nodes.
|
|
72
|
+
|
|
73
|
+
Source: `docs/framework/react/guide/column-filtering.md#filterfns`
|
|
74
|
+
|
|
75
|
+
### [HIGH] Ignoring updater-function callbacks
|
|
76
|
+
|
|
77
|
+
Wrong: `onColumnFiltersChange: value => { columnFilters = value as ColumnFiltersState }`
|
|
78
|
+
|
|
79
|
+
Correct: `onColumnFiltersChange: updater => { columnFilters = functionalUpdate(updater, columnFilters) }`
|
|
80
|
+
|
|
81
|
+
Controlled callbacks receive either a value or a function of previous state.
|
|
82
|
+
|
|
83
|
+
Source: `packages/table-core/src/features/column-filtering/columnFilteringFeature.types.ts`
|
|
84
|
+
|
|
85
|
+
## API Discovery
|
|
86
|
+
|
|
87
|
+
Inspect `node_modules/@tanstack/table-core/src/features/column-filtering/` and `src/fns/filterFns.ts` for exact signatures and auto-remove behavior.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: column-ordering
|
|
3
|
+
description: >
|
|
4
|
+
Control TanStack Table v9 leaf columnOrder with stable IDs while accounting for pinning regions, visibility, and groupedColumnMode precedence. Load for drag-and-drop columns or rendered order that differs from state.
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
type: sub-skill,
|
|
8
|
+
library: '@tanstack/table-core',
|
|
9
|
+
library_version: '9.0.0-beta.51',
|
|
10
|
+
}
|
|
11
|
+
requires: ['core', 'table-features']
|
|
12
|
+
sources:
|
|
13
|
+
- 'TanStack/table:docs/framework/react/guide/column-ordering.md'
|
|
14
|
+
- 'TanStack/table:packages/table-core/src/features/column-ordering'
|
|
15
|
+
- 'TanStack/table:examples/react/column-dnd'
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
This skill builds on `core` and `table-features`. `columnOrder` orders unpinned leaf IDs; other plugins can still determine the final visual regions.
|
|
19
|
+
|
|
20
|
+
## Setup
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import { columnOrderingFeature, tableFeatures } from '@tanstack/table-core'
|
|
24
|
+
|
|
25
|
+
export const features = tableFeatures({ columnOrderingFeature })
|
|
26
|
+
export const initialState = { columnOrder: ['name', 'age', 'actions'] }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Core Patterns
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
const next = columnOrder.filter((id) => id !== activeId)
|
|
33
|
+
next.splice(next.indexOf(overId), 0, activeId)
|
|
34
|
+
table.setColumnOrder(next)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Use column IDs as drag identities and replace the array.
|
|
38
|
+
|
|
39
|
+
## Common Mistakes
|
|
40
|
+
|
|
41
|
+
### [HIGH] Assuming state is final order
|
|
42
|
+
|
|
43
|
+
Wrong: `renderIds(columnOrder)`
|
|
44
|
+
|
|
45
|
+
Correct: `renderColumns(table.getAllLeafColumns())`
|
|
46
|
+
|
|
47
|
+
Pinning regions and grouping mode apply after base ordering. If
|
|
48
|
+
`columnVisibilityFeature` is also registered, render
|
|
49
|
+
`table.getVisibleLeafColumns()` to apply visibility too.
|
|
50
|
+
|
|
51
|
+
Source: `docs/framework/react/guide/column-ordering.md#what-affects-column-order`
|
|
52
|
+
|
|
53
|
+
### [HIGH] Using labels as identities
|
|
54
|
+
|
|
55
|
+
Wrong: `const activeId = column.columnDef.header as string`
|
|
56
|
+
|
|
57
|
+
Correct: `const activeId = column.id`
|
|
58
|
+
|
|
59
|
+
Headers can collide or change; ordering state stores stable leaf column IDs.
|
|
60
|
+
|
|
61
|
+
Source: `packages/table-core/src/features/column-ordering/columnOrderingFeature.types.ts`
|
|
62
|
+
|
|
63
|
+
### [HIGH] Mutating controlled state in place
|
|
64
|
+
|
|
65
|
+
Wrong: `columnOrder.splice(0, 1); table.setColumnOrder(columnOrder)`
|
|
66
|
+
|
|
67
|
+
Correct: `table.setColumnOrder(columnOrder.slice(1))`
|
|
68
|
+
|
|
69
|
+
Reactive owners commonly require a new array reference.
|
|
70
|
+
|
|
71
|
+
Source: `examples/react/column-dnd/src/main.tsx`
|
|
72
|
+
|
|
73
|
+
## API Discovery
|
|
74
|
+
|
|
75
|
+
Inspect `node_modules/@tanstack/table-core/src/features/column-ordering/`; combine with pinning/visibility skills when those plugins are registered.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: column-pinning
|
|
3
|
+
description: >
|
|
4
|
+
Pin columns into logical start, center, and end regions with columnPinningFeature and renderer-owned sticky CSS. Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps.
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
type: sub-skill,
|
|
8
|
+
library: '@tanstack/table-core',
|
|
9
|
+
library_version: '9.0.0-beta.51',
|
|
10
|
+
}
|
|
11
|
+
requires: ['core', 'table-features', 'column-sizing']
|
|
12
|
+
sources:
|
|
13
|
+
- 'TanStack/table:docs/framework/react/guide/column-pinning.md'
|
|
14
|
+
- 'TanStack/table:packages/table-core/src/features/column-pinning'
|
|
15
|
+
- 'TanStack/table:examples/react/column-pinning-sticky'
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
This skill builds on `core`, `table-features`, and `column-sizing`. Pinning partitions models; CSS creates the sticky visual result.
|
|
19
|
+
|
|
20
|
+
## Setup
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import {
|
|
24
|
+
columnPinningFeature,
|
|
25
|
+
columnSizingFeature,
|
|
26
|
+
tableFeatures,
|
|
27
|
+
} from '@tanstack/table-core'
|
|
28
|
+
|
|
29
|
+
export const features = tableFeatures({
|
|
30
|
+
columnSizingFeature,
|
|
31
|
+
columnPinningFeature,
|
|
32
|
+
})
|
|
33
|
+
export const initialState = {
|
|
34
|
+
columnPinning: { start: ['name'], end: ['actions'] },
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Core Patterns
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
const style = (column: Column<any, any>) => ({
|
|
42
|
+
position: column.getIsPinned() ? 'sticky' : 'relative',
|
|
43
|
+
insetInlineStart:
|
|
44
|
+
column.getIsPinned() === 'start'
|
|
45
|
+
? `${column.getStart('start')}px`
|
|
46
|
+
: undefined,
|
|
47
|
+
insetInlineEnd:
|
|
48
|
+
column.getIsPinned() === 'end' ? `${column.getAfter('end')}px` : undefined,
|
|
49
|
+
width: `${column.getSize()}px`,
|
|
50
|
+
zIndex: column.getIsPinned() ? 1 : 0,
|
|
51
|
+
background: 'Canvas',
|
|
52
|
+
})
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Common Mistakes
|
|
56
|
+
|
|
57
|
+
### [HIGH] Using physical v8 regions
|
|
58
|
+
|
|
59
|
+
Wrong: `column.pin('left')`
|
|
60
|
+
|
|
61
|
+
Correct: `column.pin('start')`
|
|
62
|
+
|
|
63
|
+
V9 uses logical `start` and `end`, including state and collection APIs.
|
|
64
|
+
|
|
65
|
+
Source: `docs/framework/react/guide/migrating.md#column-pinning`
|
|
66
|
+
|
|
67
|
+
### [HIGH] Expecting sticky CSS automatically
|
|
68
|
+
|
|
69
|
+
Wrong: `column.pin('start')`
|
|
70
|
+
|
|
71
|
+
Correct: `Object.assign(cell.style, style(column))`
|
|
72
|
+
|
|
73
|
+
The feature only computes regions and offsets; the renderer owns positioning, backgrounds, overflow, and stacking.
|
|
74
|
+
|
|
75
|
+
Source: `examples/react/column-pinning-sticky/src/main.tsx`
|
|
76
|
+
|
|
77
|
+
### [HIGH] Diverging rendered and model widths
|
|
78
|
+
|
|
79
|
+
Wrong: `cell.style.width = 'auto'`
|
|
80
|
+
|
|
81
|
+
Correct: `cell.style.width = `${column.getSize()}px``
|
|
82
|
+
|
|
83
|
+
Sticky offsets use numeric sizes, so mismatched DOM widths create gaps or overlaps.
|
|
84
|
+
|
|
85
|
+
Source: `docs/framework/react/guide/column-pinning.md#useful-column-pinning-apis`
|
|
86
|
+
|
|
87
|
+
## API Discovery
|
|
88
|
+
|
|
89
|
+
Inspect `node_modules/@tanstack/table-core/src/features/column-pinning/`; use CSS logical properties for direction-aware rendering.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: column-resizing
|
|
3
|
+
description: >
|
|
4
|
+
Wire columnResizingFeature, header.getResizeHandler, resize mode and direction, pointer or touch events, and performant CSS-variable updates. Load when resize state changes but widths do not, or large tables resize slowly.
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
type: sub-skill,
|
|
8
|
+
library: '@tanstack/table-core',
|
|
9
|
+
library_version: '9.0.0-beta.51',
|
|
10
|
+
}
|
|
11
|
+
requires: ['core', 'table-features', 'column-sizing']
|
|
12
|
+
sources:
|
|
13
|
+
- 'TanStack/table:docs/framework/react/guide/column-resizing.md'
|
|
14
|
+
- 'TanStack/table:packages/table-core/src/features/column-resizing'
|
|
15
|
+
- 'TanStack/table:examples/react/column-resizing-performant'
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
This skill builds on `core`, `table-features`, and `column-sizing`. Resizing supplies gesture APIs and state; the renderer supplies handles and widths.
|
|
19
|
+
|
|
20
|
+
## Setup
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import {
|
|
24
|
+
columnResizingFeature,
|
|
25
|
+
columnSizingFeature,
|
|
26
|
+
tableFeatures,
|
|
27
|
+
} from '@tanstack/table-core'
|
|
28
|
+
|
|
29
|
+
export const features = tableFeatures({
|
|
30
|
+
columnSizingFeature,
|
|
31
|
+
columnResizingFeature,
|
|
32
|
+
})
|
|
33
|
+
export const options = {
|
|
34
|
+
columnResizeMode: 'onChange' as const,
|
|
35
|
+
columnResizeDirection: 'ltr' as const,
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Core Patterns
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
const handler = header.getResizeHandler()
|
|
43
|
+
handle.addEventListener('mousedown', handler)
|
|
44
|
+
handle.addEventListener('touchstart', handler)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
For large grids, compute all visible sizes once per update and expose them as CSS variables.
|
|
48
|
+
|
|
49
|
+
## Common Mistakes
|
|
50
|
+
|
|
51
|
+
### [CRITICAL] Omitting sizing prerequisite
|
|
52
|
+
|
|
53
|
+
Wrong: `tableFeatures({ columnResizingFeature })`
|
|
54
|
+
|
|
55
|
+
Correct: `tableFeatures({ columnSizingFeature, columnResizingFeature })`
|
|
56
|
+
|
|
57
|
+
Resizing modifies the sizing state and requires `columnSizingFeature`.
|
|
58
|
+
|
|
59
|
+
Source: `packages/table-core/src/types/TableFeatures.ts#FeatureSlotPrereqs`
|
|
60
|
+
|
|
61
|
+
### [HIGH] Rendering an inert handle
|
|
62
|
+
|
|
63
|
+
Wrong: `handle.addEventListener('pointerdown', header.getResizeHandler())`
|
|
64
|
+
|
|
65
|
+
Correct:
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
const handler = header.getResizeHandler()
|
|
69
|
+
handle.addEventListener('mousedown', handler)
|
|
70
|
+
handle.addEventListener('touchstart', handler)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
The shipped handler distinguishes `touchstart` from the mouse path. A single
|
|
74
|
+
`pointerdown` listener does not provide working touch resizing; wire both mouse
|
|
75
|
+
and touch start events.
|
|
76
|
+
|
|
77
|
+
Source: `docs/framework/react/guide/column-resizing.md#connect-column-resizing-apis-to-ui`
|
|
78
|
+
|
|
79
|
+
### [MEDIUM] Reading sizes in every cell
|
|
80
|
+
|
|
81
|
+
Wrong: `cells.forEach(cell => cell.style.width = `${cell.column.getSize()}px`)`
|
|
82
|
+
|
|
83
|
+
Correct: `root.style.setProperty(`--col-${header.id}`, `${header.getSize()}px`)`
|
|
84
|
+
|
|
85
|
+
Caching sizes or CSS variables avoids repeated work during `onChange` resizing.
|
|
86
|
+
|
|
87
|
+
Source: `examples/react/column-resizing-performant/src/main.tsx`
|
|
88
|
+
|
|
89
|
+
## API Discovery
|
|
90
|
+
|
|
91
|
+
Inspect `node_modules/@tanstack/table-core/src/features/column-resizing/` and the sizing feature directory for the state it updates.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: column-sizing
|
|
3
|
+
description: >
|
|
4
|
+
Use columnSizingFeature numeric size, minSize, maxSize, getSize, getStart, getAfter, and total-size APIs in table, grid, or flex CSS. Load for auto or percentage misconceptions and sizing/pinning layout mismatch.
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
type: sub-skill,
|
|
8
|
+
library: '@tanstack/table-core',
|
|
9
|
+
library_version: '9.0.0-beta.51',
|
|
10
|
+
}
|
|
11
|
+
requires: ['core', 'table-features']
|
|
12
|
+
sources:
|
|
13
|
+
- 'TanStack/table:docs/framework/react/guide/column-sizing.md'
|
|
14
|
+
- 'TanStack/table:packages/table-core/src/features/column-sizing'
|
|
15
|
+
- 'TanStack/table:examples/react/column-sizing'
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
This skill builds on `core` and `table-features`. Sizing is numeric state; translating it to layout is a renderer decision.
|
|
19
|
+
|
|
20
|
+
## Setup
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import { columnSizingFeature, tableFeatures } from '@tanstack/table-core'
|
|
24
|
+
|
|
25
|
+
export const features = tableFeatures({ columnSizingFeature })
|
|
26
|
+
export const defaultColumn = { size: 180, minSize: 80, maxSize: 480 }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Core Patterns
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
cell.style.width = `${cell.column.getSize()}px`
|
|
33
|
+
tableElement.style.width = `${table.getTotalSize()}px`
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Apply the same model sizes consistently to headers, cells, and pinned offsets.
|
|
37
|
+
|
|
38
|
+
## Common Mistakes
|
|
39
|
+
|
|
40
|
+
### [HIGH] Expecting state to style DOM
|
|
41
|
+
|
|
42
|
+
Wrong: `const options = { defaultColumn: { size: 180 } }`
|
|
43
|
+
|
|
44
|
+
Correct: `cell.style.width = `${cell.column.getSize()}px``
|
|
45
|
+
|
|
46
|
+
Numeric state does not apply CSS to headless markup.
|
|
47
|
+
|
|
48
|
+
Source: `docs/framework/react/guide/column-sizing.md#column-size-apis`
|
|
49
|
+
|
|
50
|
+
### [HIGH] Passing CSS sizes into numeric APIs
|
|
51
|
+
|
|
52
|
+
Wrong: `const column = { size: '25%' }`
|
|
53
|
+
|
|
54
|
+
Correct: `const column = { size: 240 }`
|
|
55
|
+
|
|
56
|
+
Table sizing state is numeric; percentages and auto layout belong in renderer CSS.
|
|
57
|
+
|
|
58
|
+
Source: `packages/table-core/src/features/column-sizing/columnSizingFeature.types.ts`
|
|
59
|
+
|
|
60
|
+
### [HIGH] Letting content override offsets
|
|
61
|
+
|
|
62
|
+
Wrong: `cell.style.minWidth = 'max-content'`
|
|
63
|
+
|
|
64
|
+
Correct: `cell.style.width = `${column.getSize()}px`; cell.style.overflow = 'hidden'`
|
|
65
|
+
|
|
66
|
+
If rendered width differs from the model, totals and pinning offsets no longer match geometry.
|
|
67
|
+
|
|
68
|
+
Source: `examples/react/column-sizing/src/main.tsx`
|
|
69
|
+
|
|
70
|
+
## API Discovery
|
|
71
|
+
|
|
72
|
+
Inspect `node_modules/@tanstack/table-core/src/features/column-sizing/` for defaults and region-aware offset signatures.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: column-visibility
|
|
3
|
+
description: >
|
|
4
|
+
Hide columns with columnVisibilityFeature while rendering visibility-aware header, column, and cell collections. Load when hidden columns remain in the DOM, false-versus-absent state is confused, or enableHiding is misunderstood.
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
type: sub-skill,
|
|
8
|
+
library: '@tanstack/table-core',
|
|
9
|
+
library_version: '9.0.0-beta.51',
|
|
10
|
+
}
|
|
11
|
+
requires: ['core', 'table-features']
|
|
12
|
+
sources:
|
|
13
|
+
- 'TanStack/table:docs/framework/react/guide/column-visibility.md'
|
|
14
|
+
- 'TanStack/table:packages/table-core/src/features/column-visibility'
|
|
15
|
+
- 'TanStack/table:examples/react/column-visibility'
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
This skill builds on `core` and `table-features`. Visibility state changes visibility-aware models; it never removes the column definition.
|
|
19
|
+
|
|
20
|
+
## Setup
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import { columnVisibilityFeature, tableFeatures } from '@tanstack/table-core'
|
|
24
|
+
|
|
25
|
+
export const features = tableFeatures({ columnVisibilityFeature })
|
|
26
|
+
export const initialState = { columnVisibility: { internalId: false } }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Core Patterns
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
const headers = table.getHeaderGroups()
|
|
33
|
+
const cells = row.getVisibleCells()
|
|
34
|
+
const toggles = table
|
|
35
|
+
.getAllLeafColumns()
|
|
36
|
+
.filter((column) => column.getCanHide())
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Use all-column APIs for controls and visible APIs for rendered table content.
|
|
40
|
+
|
|
41
|
+
## Common Mistakes
|
|
42
|
+
|
|
43
|
+
### [HIGH] Rendering hidden cells anyway
|
|
44
|
+
|
|
45
|
+
Wrong: `row.getAllCells().map(renderCell)`
|
|
46
|
+
|
|
47
|
+
Correct: `row.getVisibleCells().map(renderCell)`
|
|
48
|
+
|
|
49
|
+
All-cell APIs intentionally include hidden columns.
|
|
50
|
+
|
|
51
|
+
Source: `docs/framework/react/guide/column-visibility.md#column-visibility-aware-table-apis`
|
|
52
|
+
|
|
53
|
+
### [HIGH] Treating absence as hidden
|
|
54
|
+
|
|
55
|
+
Wrong: `const hidden = !columnVisibility[column.id]`
|
|
56
|
+
|
|
57
|
+
Correct: `const hidden = columnVisibility[column.id] === false`
|
|
58
|
+
|
|
59
|
+
Only explicit `false` hides a column; an absent entry is visible.
|
|
60
|
+
|
|
61
|
+
Source: `packages/table-core/src/features/column-visibility/columnVisibilityFeature.ts`
|
|
62
|
+
|
|
63
|
+
### [MEDIUM] Treating enableHiding as visibility
|
|
64
|
+
|
|
65
|
+
Wrong: `helper.accessor('id', { enableHiding: false })`
|
|
66
|
+
|
|
67
|
+
Correct: `const initialState = { columnVisibility: { id: false } }`
|
|
68
|
+
|
|
69
|
+
`enableHiding` controls whether hiding is allowed; visibility belongs in table state.
|
|
70
|
+
|
|
71
|
+
Source: `packages/table-core/src/features/column-visibility/columnVisibilityFeature.types.ts`
|
|
72
|
+
|
|
73
|
+
## API Discovery
|
|
74
|
+
|
|
75
|
+
Inspect `node_modules/@tanstack/table-core/src/features/column-visibility/` for visibility-aware table, row, and column APIs.
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: core
|
|
3
|
+
description: >
|
|
4
|
+
Use TanStack Table v9 as a headless data-grid state and row-processing engine. Load for first-table architecture, stable data and columns, row numbering with getDisplayIndex, semantic rendering, framework adapter choice, or deciding what Table owns versus the renderer.
|
|
5
|
+
metadata:
|
|
6
|
+
type: core
|
|
7
|
+
library: '@tanstack/table-core'
|
|
8
|
+
library_version: '9.0.0-beta.51'
|
|
9
|
+
sources:
|
|
10
|
+
- 'TanStack/table:docs/overview.md'
|
|
11
|
+
- 'TanStack/table:docs/guide/tables.md'
|
|
12
|
+
- 'TanStack/table:docs/guide/data.md'
|
|
13
|
+
- 'TanStack/table:docs/guide/rows.md'
|
|
14
|
+
- 'TanStack/table:packages/table-core/src/index.ts'
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# TanStack Table Core
|
|
18
|
+
|
|
19
|
+
TanStack Table creates a table instance, state, and row models. It does not render a component, choose a component library, apply CSS, or supply interaction accessibility. Use a framework adapter in UI code; use `constructTable` only for framework-neutral integrations.
|
|
20
|
+
|
|
21
|
+
## Setup
|
|
22
|
+
|
|
23
|
+
<!-- skill-snippet:check -->
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import {
|
|
27
|
+
constructTable,
|
|
28
|
+
createColumnHelper,
|
|
29
|
+
tableFeatures,
|
|
30
|
+
} from '@tanstack/table-core'
|
|
31
|
+
import { storeReactivityBindings } from '@tanstack/table-core/store-reactivity-bindings'
|
|
32
|
+
|
|
33
|
+
type Person = { id: string; name: string }
|
|
34
|
+
const features = tableFeatures({
|
|
35
|
+
coreReactivityFeature: storeReactivityBindings(),
|
|
36
|
+
})
|
|
37
|
+
const helper = createColumnHelper<typeof features, Person>()
|
|
38
|
+
const columns = helper.columns([helper.accessor('name', { header: 'Name' })])
|
|
39
|
+
const data: Person[] = [{ id: '1', name: 'Ada' }]
|
|
40
|
+
const table = constructTable({
|
|
41
|
+
features,
|
|
42
|
+
columns,
|
|
43
|
+
data,
|
|
44
|
+
getRowId: (row) => row.id,
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
for (const row of table.getRowModel().rows) {
|
|
48
|
+
console.log(row.getAllCells().map((cell) => cell.getValue()))
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Core Patterns
|
|
53
|
+
|
|
54
|
+
### Start with core, add only behavior used
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
const features = tableFeatures({
|
|
58
|
+
coreReactivityFeature: storeReactivityBindings(),
|
|
59
|
+
})
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The core row model is automatic; filtering, sorting, pagination, and other optional behavior require their feature plugins.
|
|
63
|
+
|
|
64
|
+
### Keep model inputs stable
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
const data: Person[] = [{ id: '1', name: 'Ada' }]
|
|
68
|
+
const columns = helper.columns([helper.accessor('name', { header: 'Name' })])
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Define static inputs once and preserve query/store references when data has not changed.
|
|
72
|
+
|
|
73
|
+
### Number rows in current display order
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
const rowNumberColumn = helper.display({
|
|
77
|
+
id: 'rowNumber',
|
|
78
|
+
header: '#',
|
|
79
|
+
cell: ({ row }) => {
|
|
80
|
+
const displayIndex = row.getDisplayIndex()
|
|
81
|
+
return displayIndex === -1 ? '' : displayIndex + 1
|
|
82
|
+
},
|
|
83
|
+
})
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
`row.getDisplayIndex()` follows the current filtering, grouping, sorting, and expansion order before pagination. `row.index` remains the row's creation-time position within its parent array.
|
|
87
|
+
|
|
88
|
+
## Common Mistakes
|
|
89
|
+
|
|
90
|
+
### [HIGH] Expecting Table to render a grid
|
|
91
|
+
|
|
92
|
+
Wrong:
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
document.body.append(table as unknown as Node)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Correct:
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
const names = table
|
|
102
|
+
.getRowModel()
|
|
103
|
+
.rows.map((row) => row.getValue<string>('name'))
|
|
104
|
+
document.body.textContent = names.join(', ')
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
The table instance is a model; markup, CSS, semantics, and accessibility are renderer responsibilities.
|
|
108
|
+
|
|
109
|
+
Source: `docs/overview.md`
|
|
110
|
+
|
|
111
|
+
### [HIGH] Recreating model inputs repeatedly
|
|
112
|
+
|
|
113
|
+
Wrong:
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
const options = () => ({
|
|
117
|
+
data: source.map((item) => item),
|
|
118
|
+
columns: helper.columns([]),
|
|
119
|
+
})
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Correct:
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
const data = source.map((item) => item)
|
|
126
|
+
const columns = helper.columns([])
|
|
127
|
+
const options = () => ({ data, columns })
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
New references invalidate memoized row and column work and can create adapter render loops.
|
|
131
|
+
|
|
132
|
+
Source: `docs/guide/data.md`
|
|
133
|
+
|
|
134
|
+
### [HIGH] Detaching prototype-bound methods
|
|
135
|
+
|
|
136
|
+
Wrong:
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
const { getValue } = table.getRowModel().rows[0]!
|
|
140
|
+
getValue('name')
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Correct:
|
|
144
|
+
|
|
145
|
+
```ts
|
|
146
|
+
const row = table.getRowModel().rows[0]!
|
|
147
|
+
row.getValue('name')
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
V9 row, cell, column, and header methods use their instance as `this`.
|
|
151
|
+
|
|
152
|
+
Source: `docs/framework/react/guide/migrating.md#instance-methods-must-be-called-on-their-instance`
|
|
153
|
+
|
|
154
|
+
### [HIGH] Reading the display-index cache directly
|
|
155
|
+
|
|
156
|
+
Wrong:
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
const rowNumber = row._displayIndexCache + 1
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Correct:
|
|
163
|
+
|
|
164
|
+
```ts
|
|
165
|
+
const displayIndex = row.getDisplayIndex()
|
|
166
|
+
const rowNumber = displayIndex === -1 ? undefined : displayIndex + 1
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
`_displayIndexCache` is internal and may be stale until display order is recomputed. The public method refreshes display order, validates that the cached slot still contains the row, and returns `-1` when it does not.
|
|
170
|
+
|
|
171
|
+
Source: `docs/guide/rows.md#row-numbers-and-display-indexes`, `packages/table-core/src/core/rows/coreRowsFeature.utils.ts`
|
|
172
|
+
|
|
173
|
+
## API Discovery
|
|
174
|
+
|
|
175
|
+
Inspect `node_modules/@tanstack/table-core/src/index.ts`, then follow the exported implementation. For UI creation and rendering, inspect `node_modules/@tanstack/<framework>-table/src/index.ts` and load that adapter's getting-started skill.
|