@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
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
callMemoOrStaticFn,
|
|
3
|
+
cloneState,
|
|
4
|
+
copyInstancePropertiesWithoutMemos,
|
|
5
|
+
hasOwn,
|
|
6
|
+
makeObjectMap,
|
|
7
|
+
} from '../../utils'
|
|
2
8
|
import type { RowData, Updater } from '../../types/type-utils'
|
|
3
9
|
import type { TableFeatures } from '../../types/TableFeatures'
|
|
4
10
|
import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
|
|
5
11
|
import type { Table_Internal } from '../../types/Table'
|
|
6
12
|
import type { Row } from '../../types/Row'
|
|
7
|
-
import type {
|
|
13
|
+
import type {
|
|
14
|
+
RowSelectionState,
|
|
15
|
+
ToggleSelectedOptions,
|
|
16
|
+
} from './rowSelectionFeature.types'
|
|
8
17
|
|
|
9
18
|
// State APIs
|
|
10
19
|
|
|
@@ -20,7 +29,7 @@ import type { RowSelectionState } from './rowSelectionFeature.types'
|
|
|
20
29
|
* ```
|
|
21
30
|
*/
|
|
22
31
|
export function getDefaultRowSelectionState(): RowSelectionState {
|
|
23
|
-
return
|
|
32
|
+
return makeObjectMap()
|
|
24
33
|
}
|
|
25
34
|
|
|
26
35
|
/**
|
|
@@ -60,9 +69,16 @@ export function table_resetRowSelection<
|
|
|
60
69
|
TFeatures extends TableFeatures,
|
|
61
70
|
TData extends RowData,
|
|
62
71
|
>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
|
|
72
|
+
// @ts-ignore - _lastSelectedRowId is part of the RowSelection feature
|
|
73
|
+
table._lastSelectedRowId = null
|
|
63
74
|
table_setRowSelection(
|
|
64
75
|
table,
|
|
65
|
-
defaultState
|
|
76
|
+
defaultState
|
|
77
|
+
? makeObjectMap()
|
|
78
|
+
: Object.assign(
|
|
79
|
+
makeObjectMap<true>(),
|
|
80
|
+
cloneState(table.initialState.rowSelection ?? {}),
|
|
81
|
+
),
|
|
66
82
|
)
|
|
67
83
|
}
|
|
68
84
|
|
|
@@ -82,23 +98,38 @@ export function table_resetRowSelection<
|
|
|
82
98
|
export function table_toggleAllRowsSelected<
|
|
83
99
|
TFeatures extends TableFeatures,
|
|
84
100
|
TData extends RowData,
|
|
85
|
-
>(
|
|
101
|
+
>(
|
|
102
|
+
table: Table_Internal<TFeatures, TData>,
|
|
103
|
+
value?: boolean,
|
|
104
|
+
opts?: { deselectAll?: boolean },
|
|
105
|
+
) {
|
|
106
|
+
// @ts-ignore - _lastSelectedRowId is part of the RowSelection feature
|
|
107
|
+
table._lastSelectedRowId = null
|
|
86
108
|
table_setRowSelection(table, (old) => {
|
|
87
109
|
value =
|
|
88
|
-
typeof value !== 'undefined'
|
|
89
|
-
|
|
90
|
-
|
|
110
|
+
typeof value !== 'undefined'
|
|
111
|
+
? value
|
|
112
|
+
: !callMemoOrStaticFn(
|
|
113
|
+
table,
|
|
114
|
+
'getIsAllRowsSelected',
|
|
115
|
+
table_getIsAllRowsSelected,
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
if (opts?.deselectAll && !value) {
|
|
119
|
+
// deselectAll opt: clear the whole selection map instead of deleting ids one-by-one
|
|
120
|
+
return makeObjectMap<true>()
|
|
121
|
+
}
|
|
91
122
|
|
|
123
|
+
const rowSelection = Object.assign(makeObjectMap<true>(), old)
|
|
92
124
|
const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows
|
|
93
125
|
|
|
94
126
|
// We don't use `mutateRowIsSelected` here for performance reasons.
|
|
95
127
|
// All of the rows are flat already, so it wouldn't be worth it
|
|
96
128
|
if (value) {
|
|
97
129
|
preGroupedFlatRows.forEach((row) => {
|
|
98
|
-
if (
|
|
99
|
-
|
|
130
|
+
if (row_getCanSelect(row)) {
|
|
131
|
+
rowSelection[row.id] = true
|
|
100
132
|
}
|
|
101
|
-
rowSelection[row.id] = true
|
|
102
133
|
})
|
|
103
134
|
} else {
|
|
104
135
|
preGroupedFlatRows.forEach((row) => {
|
|
@@ -124,14 +155,32 @@ export function table_toggleAllRowsSelected<
|
|
|
124
155
|
export function table_toggleAllPageRowsSelected<
|
|
125
156
|
TFeatures extends TableFeatures,
|
|
126
157
|
TData extends RowData,
|
|
127
|
-
>(
|
|
158
|
+
>(
|
|
159
|
+
table: Table_Internal<TFeatures, TData>,
|
|
160
|
+
value?: boolean,
|
|
161
|
+
opts?: { deselectAll?: boolean },
|
|
162
|
+
) {
|
|
163
|
+
// @ts-ignore - _lastSelectedRowId is part of the RowSelection feature
|
|
164
|
+
table._lastSelectedRowId = null
|
|
128
165
|
table_setRowSelection(table, (old) => {
|
|
129
166
|
const resolvedValue =
|
|
130
167
|
typeof value !== 'undefined'
|
|
131
168
|
? value
|
|
132
|
-
: !
|
|
169
|
+
: !callMemoOrStaticFn(
|
|
170
|
+
table,
|
|
171
|
+
'getIsAllPageRowsSelected',
|
|
172
|
+
table_getIsAllPageRowsSelected,
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
if (opts?.deselectAll && !resolvedValue) {
|
|
176
|
+
// deselectAll opt: clear the whole selection map instead of deleting ids one-by-one
|
|
177
|
+
return makeObjectMap<true>()
|
|
178
|
+
}
|
|
133
179
|
|
|
134
|
-
const rowSelection: RowSelectionState =
|
|
180
|
+
const rowSelection: RowSelectionState = Object.assign(
|
|
181
|
+
makeObjectMap<true>(),
|
|
182
|
+
old,
|
|
183
|
+
)
|
|
135
184
|
|
|
136
185
|
table.getRowModel().rows.forEach((row) => {
|
|
137
186
|
mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table)
|
|
@@ -176,15 +225,21 @@ export function table_getSelectedRowModel<
|
|
|
176
225
|
>(table: Table_Internal<TFeatures, TData>) {
|
|
177
226
|
const rowModel = table.getCoreRowModel()
|
|
178
227
|
|
|
179
|
-
if (
|
|
228
|
+
if (
|
|
229
|
+
!callMemoOrStaticFn(
|
|
230
|
+
table,
|
|
231
|
+
'getIsSomeRowsSelected',
|
|
232
|
+
table_getIsSomeRowsSelected,
|
|
233
|
+
)
|
|
234
|
+
) {
|
|
180
235
|
return {
|
|
181
236
|
rows: [],
|
|
182
237
|
flatRows: [],
|
|
183
|
-
rowsById:
|
|
238
|
+
rowsById: makeObjectMap(),
|
|
184
239
|
}
|
|
185
240
|
}
|
|
186
241
|
|
|
187
|
-
return selectRowsFn(rowModel)
|
|
242
|
+
return selectRowsFn(rowModel, table)
|
|
188
243
|
}
|
|
189
244
|
|
|
190
245
|
/**
|
|
@@ -202,17 +257,23 @@ export function table_getFilteredSelectedRowModel<
|
|
|
202
257
|
TFeatures extends TableFeatures,
|
|
203
258
|
TData extends RowData,
|
|
204
259
|
>(table: Table_Internal<TFeatures, TData>) {
|
|
205
|
-
const rowModel = table.
|
|
260
|
+
const rowModel = table.getFilteredRowModel()
|
|
206
261
|
|
|
207
|
-
if (
|
|
262
|
+
if (
|
|
263
|
+
!callMemoOrStaticFn(
|
|
264
|
+
table,
|
|
265
|
+
'getIsSomeRowsSelected',
|
|
266
|
+
table_getIsSomeRowsSelected,
|
|
267
|
+
)
|
|
268
|
+
) {
|
|
208
269
|
return {
|
|
209
270
|
rows: [],
|
|
210
271
|
flatRows: [],
|
|
211
|
-
rowsById:
|
|
272
|
+
rowsById: makeObjectMap(),
|
|
212
273
|
}
|
|
213
274
|
}
|
|
214
275
|
|
|
215
|
-
return selectRowsFn(rowModel)
|
|
276
|
+
return selectRowsFn(rowModel, table)
|
|
216
277
|
}
|
|
217
278
|
|
|
218
279
|
/**
|
|
@@ -230,17 +291,40 @@ export function table_getGroupedSelectedRowModel<
|
|
|
230
291
|
TFeatures extends TableFeatures,
|
|
231
292
|
TData extends RowData,
|
|
232
293
|
>(table: Table_Internal<TFeatures, TData>) {
|
|
233
|
-
|
|
294
|
+
// The sorted model falls back grouped -> filtered -> core when those
|
|
295
|
+
// features are not registered, so selected group rows are always visible.
|
|
296
|
+
const rowModel = table.getSortedRowModel()
|
|
234
297
|
|
|
235
|
-
if (
|
|
298
|
+
if (
|
|
299
|
+
!callMemoOrStaticFn(
|
|
300
|
+
table,
|
|
301
|
+
'getIsSomeRowsSelected',
|
|
302
|
+
table_getIsSomeRowsSelected,
|
|
303
|
+
)
|
|
304
|
+
) {
|
|
236
305
|
return {
|
|
237
306
|
rows: [],
|
|
238
307
|
flatRows: [],
|
|
239
|
-
rowsById:
|
|
308
|
+
rowsById: makeObjectMap(),
|
|
240
309
|
}
|
|
241
310
|
}
|
|
242
311
|
|
|
243
|
-
return selectRowsFn(rowModel)
|
|
312
|
+
return selectRowsFn(rowModel, table)
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Returns the ids of all selected rows.
|
|
317
|
+
*
|
|
318
|
+
* @example
|
|
319
|
+
* ```ts
|
|
320
|
+
* const selectedRowIds = table_getSelectedRowIds(table)
|
|
321
|
+
* ```
|
|
322
|
+
*/
|
|
323
|
+
export function table_getSelectedRowIds<
|
|
324
|
+
TFeatures extends TableFeatures,
|
|
325
|
+
TData extends RowData,
|
|
326
|
+
>(table: Table_Internal<TFeatures, TData>): Array<string> {
|
|
327
|
+
return Object.keys(table.atoms.rowSelection?.get() ?? {})
|
|
244
328
|
}
|
|
245
329
|
|
|
246
330
|
/**
|
|
@@ -259,7 +343,7 @@ export function table_getIsAllRowsSelected<
|
|
|
259
343
|
TData extends RowData,
|
|
260
344
|
>(table: Table_Internal<TFeatures, TData>) {
|
|
261
345
|
const preGroupedFlatRows = table.getFilteredRowModel().flatRows
|
|
262
|
-
const rowSelection
|
|
346
|
+
const rowSelection = table.atoms.rowSelection?.get() ?? {}
|
|
263
347
|
|
|
264
348
|
let isAllRowsSelected = Boolean(
|
|
265
349
|
preGroupedFlatRows.length && Object.keys(rowSelection).length,
|
|
@@ -268,7 +352,7 @@ export function table_getIsAllRowsSelected<
|
|
|
268
352
|
if (isAllRowsSelected) {
|
|
269
353
|
if (
|
|
270
354
|
preGroupedFlatRows.some(
|
|
271
|
-
(row) => row_getCanSelect(row) && !
|
|
355
|
+
(row) => row_getCanSelect(row) && !isRowSelected(row, rowSelection),
|
|
272
356
|
)
|
|
273
357
|
) {
|
|
274
358
|
isAllRowsSelected = false
|
|
@@ -295,13 +379,13 @@ export function table_getIsAllPageRowsSelected<
|
|
|
295
379
|
const paginationFlatRows = table
|
|
296
380
|
.getPaginatedRowModel()
|
|
297
381
|
.flatRows.filter((row) => row_getCanSelect(row))
|
|
298
|
-
const rowSelection
|
|
382
|
+
const rowSelection = table.atoms.rowSelection?.get() ?? {}
|
|
299
383
|
|
|
300
384
|
let isAllPageRowsSelected = !!paginationFlatRows.length
|
|
301
385
|
|
|
302
386
|
if (
|
|
303
387
|
isAllPageRowsSelected &&
|
|
304
|
-
paginationFlatRows.some((row) => !rowSelection
|
|
388
|
+
paginationFlatRows.some((row) => !isRowSelected(row, rowSelection))
|
|
305
389
|
) {
|
|
306
390
|
isAllPageRowsSelected = false
|
|
307
391
|
}
|
|
@@ -312,8 +396,7 @@ export function table_getIsAllPageRowsSelected<
|
|
|
312
396
|
/**
|
|
313
397
|
* Checks whether selection is partially applied across filtered rows.
|
|
314
398
|
*
|
|
315
|
-
* The result is true when at least one row id is selected
|
|
316
|
-
* selected than the current filtered flat row count.
|
|
399
|
+
* The result is true when at least one row id is selected
|
|
317
400
|
*
|
|
318
401
|
* @example
|
|
319
402
|
* ```ts
|
|
@@ -324,21 +407,15 @@ export function table_getIsSomeRowsSelected<
|
|
|
324
407
|
TFeatures extends TableFeatures,
|
|
325
408
|
TData extends RowData,
|
|
326
409
|
>(table: Table_Internal<TFeatures, TData>) {
|
|
327
|
-
const totalSelected = Object.keys(
|
|
328
|
-
table.atoms.rowSelection?.get() ?? {},
|
|
329
|
-
).length
|
|
330
410
|
return (
|
|
331
|
-
|
|
332
|
-
|
|
411
|
+
callMemoOrStaticFn(table, 'getSelectedRowIds', table_getSelectedRowIds)
|
|
412
|
+
.length > 0
|
|
333
413
|
)
|
|
334
414
|
}
|
|
335
415
|
|
|
336
416
|
/**
|
|
337
417
|
* Checks whether the current page has a partial selection.
|
|
338
418
|
*
|
|
339
|
-
* This is false when all selectable page rows are selected. Otherwise it is true
|
|
340
|
-
* if any selectable page row or descendant is selected.
|
|
341
|
-
*
|
|
342
419
|
* @example
|
|
343
420
|
* ```ts
|
|
344
421
|
* const somePageRowsSelected = table_getIsSomePageRowsSelected(table)
|
|
@@ -348,12 +425,14 @@ export function table_getIsSomePageRowsSelected<
|
|
|
348
425
|
TFeatures extends TableFeatures,
|
|
349
426
|
TData extends RowData,
|
|
350
427
|
>(table: Table_Internal<TFeatures, TData>) {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
428
|
+
return table
|
|
429
|
+
.getPaginatedRowModel()
|
|
430
|
+
.flatRows.filter((row) => row_getCanSelect(row))
|
|
431
|
+
.some(
|
|
432
|
+
(row) =>
|
|
433
|
+
row_getIsSelected(row) ||
|
|
434
|
+
callMemoOrStaticFn(row, 'getIsSomeSelected', row_getIsSomeSelected),
|
|
435
|
+
)
|
|
357
436
|
}
|
|
358
437
|
|
|
359
438
|
/**
|
|
@@ -413,38 +492,32 @@ export function table_getToggleAllPageRowsSelectedHandler<
|
|
|
413
492
|
* @example
|
|
414
493
|
* ```ts
|
|
415
494
|
* row_toggleSelected(row)
|
|
495
|
+
* row_toggleSelected(row, true)
|
|
496
|
+
* row_toggleSelected(row, false)
|
|
497
|
+
* row_toggleSelected(row, true, { selectChildren: false })
|
|
498
|
+
* row_toggleSelected(row, false, { selectChildren: false })
|
|
416
499
|
* ```
|
|
417
500
|
*/
|
|
418
501
|
export function row_toggleSelected<
|
|
419
502
|
TFeatures extends TableFeatures,
|
|
420
503
|
TData extends RowData,
|
|
421
|
-
>(
|
|
422
|
-
row: Row<TFeatures, TData>,
|
|
423
|
-
value?: boolean,
|
|
424
|
-
opts?: {
|
|
425
|
-
selectChildren?: boolean
|
|
426
|
-
},
|
|
427
|
-
) {
|
|
504
|
+
>(row: Row<TFeatures, TData>, value?: boolean, opts?: ToggleSelectedOptions) {
|
|
428
505
|
const isSelected = row_getIsSelected(row)
|
|
429
506
|
|
|
430
507
|
table_setRowSelection(row.table, (old) => {
|
|
431
508
|
value = typeof value !== 'undefined' ? value : !isSelected
|
|
432
509
|
|
|
433
|
-
|
|
434
|
-
return old
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
const selectedRowIds = { ...old }
|
|
510
|
+
const rowSelection = Object.assign(makeObjectMap<true>(), old)
|
|
438
511
|
|
|
439
512
|
mutateRowIsSelected(
|
|
440
|
-
|
|
513
|
+
rowSelection,
|
|
441
514
|
row.id,
|
|
442
515
|
value,
|
|
443
516
|
opts?.selectChildren ?? true,
|
|
444
517
|
row.table,
|
|
445
518
|
)
|
|
446
519
|
|
|
447
|
-
return
|
|
520
|
+
return rowSelection
|
|
448
521
|
})
|
|
449
522
|
}
|
|
450
523
|
|
|
@@ -462,7 +535,8 @@ export function row_getIsSelected<
|
|
|
462
535
|
TFeatures extends TableFeatures,
|
|
463
536
|
TData extends RowData,
|
|
464
537
|
>(row: Row<TFeatures, TData>) {
|
|
465
|
-
|
|
538
|
+
const rowSelection = row.table.atoms.rowSelection?.get() ?? {}
|
|
539
|
+
return isRowSelected(row, rowSelection)
|
|
466
540
|
}
|
|
467
541
|
|
|
468
542
|
/**
|
|
@@ -572,7 +646,11 @@ export function row_getCanMultiSelect<
|
|
|
572
646
|
* Creates a checkbox-style handler that selects or deselects this row.
|
|
573
647
|
*
|
|
574
648
|
* The handler is a no-op when the row cannot be selected and reads
|
|
575
|
-
* `event.target.checked`.
|
|
649
|
+
* `event.target.checked`. Shift events select or deselect the inclusive range
|
|
650
|
+
* from the most recent selectable row handled by this table. The event's
|
|
651
|
+
* optional `persist()` method is called before it is read. Pass
|
|
652
|
+
* `selectChildren: false` to limit changes to rows explicitly present in the
|
|
653
|
+
* display-order interval.
|
|
576
654
|
*
|
|
577
655
|
* @example
|
|
578
656
|
* ```ts
|
|
@@ -582,44 +660,137 @@ export function row_getCanMultiSelect<
|
|
|
582
660
|
export function row_getToggleSelectedHandler<
|
|
583
661
|
TFeatures extends TableFeatures,
|
|
584
662
|
TData extends RowData,
|
|
585
|
-
>(row: Row<TFeatures, TData
|
|
663
|
+
>(row: Row<TFeatures, TData>, opts?: ToggleSelectedOptions) {
|
|
586
664
|
const canSelect = row_getCanSelect(row)
|
|
587
665
|
|
|
588
666
|
return (e: unknown) => {
|
|
589
667
|
if (!canSelect) return
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
(
|
|
593
|
-
|
|
668
|
+
|
|
669
|
+
const event = e as {
|
|
670
|
+
persist?: () => void
|
|
671
|
+
target: { checked: boolean }
|
|
672
|
+
}
|
|
673
|
+
event.persist?.()
|
|
674
|
+
|
|
675
|
+
const table = row.table
|
|
676
|
+
const checked = event.target.checked
|
|
677
|
+
// @ts-ignore - _lastSelectedRowId is part of the RowSelection feature
|
|
678
|
+
const anchorId = table._lastSelectedRowId
|
|
679
|
+
const canSelectRange =
|
|
680
|
+
table.options.enableRowRangeSelection !== false &&
|
|
681
|
+
anchorId !== null &&
|
|
682
|
+
row_getCanMultiSelect(row) &&
|
|
683
|
+
(table.options.isRowRangeSelectionEvent?.(e) ?? false)
|
|
684
|
+
|
|
685
|
+
if (
|
|
686
|
+
!canSelectRange ||
|
|
687
|
+
!selectRowRange(row, anchorId, checked, opts?.selectChildren ?? true)
|
|
688
|
+
) {
|
|
689
|
+
row_toggleSelected(row, checked, opts)
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
// @ts-ignore - _lastSelectedRowId is part of the RowSelection feature
|
|
693
|
+
table._lastSelectedRowId = row.id
|
|
594
694
|
}
|
|
595
695
|
}
|
|
596
696
|
|
|
697
|
+
/**
|
|
698
|
+
* Resolves and mutates an inclusive interval in the table's latest logical
|
|
699
|
+
* display order.
|
|
700
|
+
*
|
|
701
|
+
* The anchor is resolved without throwing from the pre-pagination row model,
|
|
702
|
+
* then the core row model. Both endpoint display indexes must still identify
|
|
703
|
+
* those rows in the current order and both endpoints must support
|
|
704
|
+
* multi-selection. Eligible interval rows are applied through one row
|
|
705
|
+
* selection updater; non-selectable and non-multi-selectable rows are skipped.
|
|
706
|
+
* Returns `false` when the interaction should fall back to an ordinary toggle.
|
|
707
|
+
*/
|
|
708
|
+
function selectRowRange<TFeatures extends TableFeatures, TData extends RowData>(
|
|
709
|
+
row: Row<TFeatures, TData>,
|
|
710
|
+
anchorId: string,
|
|
711
|
+
value: boolean,
|
|
712
|
+
includeChildren: boolean,
|
|
713
|
+
): boolean {
|
|
714
|
+
const table = row.table
|
|
715
|
+
const rows = table.getRowsInDisplayOrder()
|
|
716
|
+
const anchorRow =
|
|
717
|
+
table.getPrePaginatedRowModel().rowsById[anchorId] ??
|
|
718
|
+
table.getCoreRowModel().rowsById[anchorId]
|
|
719
|
+
|
|
720
|
+
if (!anchorRow) {
|
|
721
|
+
return false
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
const anchorIndex = anchorRow.getDisplayIndex()
|
|
725
|
+
const rowIndex = row.getDisplayIndex()
|
|
726
|
+
const anchorAtIndex = rows[anchorIndex]
|
|
727
|
+
const rowAtIndex = rows[rowIndex]
|
|
728
|
+
|
|
729
|
+
if (
|
|
730
|
+
anchorIndex < 0 ||
|
|
731
|
+
rowIndex < 0 ||
|
|
732
|
+
anchorIndex >= rows.length ||
|
|
733
|
+
rowIndex >= rows.length ||
|
|
734
|
+
anchorAtIndex?.id !== anchorRow.id ||
|
|
735
|
+
rowAtIndex?.id !== row.id ||
|
|
736
|
+
!row_getCanMultiSelect(anchorRow) ||
|
|
737
|
+
!row_getCanMultiSelect(row)
|
|
738
|
+
) {
|
|
739
|
+
return false
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
const start = Math.min(anchorIndex, rowIndex)
|
|
743
|
+
const end = Math.max(anchorIndex, rowIndex)
|
|
744
|
+
|
|
745
|
+
table_setRowSelection(table, (old) => {
|
|
746
|
+
const rowSelection = Object.assign(makeObjectMap<true>(), old)
|
|
747
|
+
|
|
748
|
+
for (let index = start; index <= end; index++) {
|
|
749
|
+
const rangeRow = rows[index]!
|
|
750
|
+
if (!row_getCanSelect(rangeRow) || !row_getCanMultiSelect(rangeRow)) {
|
|
751
|
+
continue
|
|
752
|
+
}
|
|
753
|
+
mutateRowIsSelected(
|
|
754
|
+
rowSelection,
|
|
755
|
+
rangeRow.id,
|
|
756
|
+
value,
|
|
757
|
+
includeChildren,
|
|
758
|
+
table,
|
|
759
|
+
)
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
return rowSelection
|
|
763
|
+
})
|
|
764
|
+
|
|
765
|
+
return true
|
|
766
|
+
}
|
|
767
|
+
|
|
597
768
|
const mutateRowIsSelected = <
|
|
598
769
|
TFeatures extends TableFeatures,
|
|
599
770
|
TData extends RowData,
|
|
600
771
|
>(
|
|
601
|
-
|
|
772
|
+
rowSelection: RowSelectionState,
|
|
602
773
|
rowId: string,
|
|
603
774
|
value: boolean,
|
|
604
775
|
includeChildren: boolean,
|
|
605
776
|
table: Table_Internal<TFeatures, TData>,
|
|
606
|
-
) => {
|
|
777
|
+
): void => {
|
|
607
778
|
const row = table.getRow(rowId, true)
|
|
608
779
|
|
|
609
780
|
if (value) {
|
|
610
781
|
if (!row_getCanMultiSelect(row)) {
|
|
611
|
-
Object.keys(
|
|
782
|
+
Object.keys(rowSelection).forEach((key) => delete rowSelection[key])
|
|
612
783
|
}
|
|
613
784
|
if (row_getCanSelect(row)) {
|
|
614
|
-
|
|
785
|
+
rowSelection[rowId] = true
|
|
615
786
|
}
|
|
616
787
|
} else {
|
|
617
|
-
delete
|
|
788
|
+
delete rowSelection[rowId]
|
|
618
789
|
}
|
|
619
790
|
|
|
620
791
|
if (includeChildren && row.subRows.length && row_getCanSelectSubRows(row)) {
|
|
621
792
|
row.subRows.forEach((r) =>
|
|
622
|
-
mutateRowIsSelected(
|
|
793
|
+
mutateRowIsSelected(rowSelection, r.id, value, includeChildren, table),
|
|
623
794
|
)
|
|
624
795
|
}
|
|
625
796
|
}
|
|
@@ -638,10 +809,13 @@ const mutateRowIsSelected = <
|
|
|
638
809
|
export function selectRowsFn<
|
|
639
810
|
TFeatures extends TableFeatures,
|
|
640
811
|
TData extends RowData,
|
|
641
|
-
>(
|
|
812
|
+
>(
|
|
813
|
+
rowModel: RowModel<TFeatures, TData>,
|
|
814
|
+
table: Table_Internal<TFeatures, TData>,
|
|
815
|
+
): RowModel<TFeatures, TData> {
|
|
642
816
|
const newSelectedFlatRows: Array<Row<TFeatures, TData>> = []
|
|
643
|
-
const newSelectedRowsById
|
|
644
|
-
|
|
817
|
+
const newSelectedRowsById = makeObjectMap<Row<TFeatures, TData>>()
|
|
818
|
+
const rowSelection = table.atoms.rowSelection?.get() ?? {}
|
|
645
819
|
// Filters top level and nested rows.
|
|
646
820
|
const recurseRows = (
|
|
647
821
|
rows: Array<Row<TFeatures, TData>>,
|
|
@@ -649,8 +823,8 @@ export function selectRowsFn<
|
|
|
649
823
|
): Array<Row<TFeatures, TData>> => {
|
|
650
824
|
const result: Array<Row<TFeatures, TData>> = []
|
|
651
825
|
for (let i = 0; i < rows.length; i++) {
|
|
652
|
-
|
|
653
|
-
const isSelected = isRowSelected(row)
|
|
826
|
+
const row = rows[i]!
|
|
827
|
+
const isSelected = isRowSelected(row, rowSelection)
|
|
654
828
|
|
|
655
829
|
if (isSelected) {
|
|
656
830
|
newSelectedFlatRows.push(row)
|
|
@@ -658,13 +832,18 @@ export function selectRowsFn<
|
|
|
658
832
|
}
|
|
659
833
|
|
|
660
834
|
if (row.subRows.length) {
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
835
|
+
// Always recurse — selected descendants of unselected parents must
|
|
836
|
+
// still be collected into flatRows/rowsById.
|
|
837
|
+
const newSubRows = recurseRows(row.subRows, depth + 1)
|
|
838
|
+
|
|
839
|
+
if (isSelected) {
|
|
840
|
+
// Preserve prototype chain so methods like getValue() remain accessible
|
|
841
|
+
const cloned = Object.create(Object.getPrototypeOf(row))
|
|
842
|
+
copyInstancePropertiesWithoutMemos(cloned, row)
|
|
843
|
+
cloned.subRows = newSubRows
|
|
844
|
+
result.push(cloned)
|
|
664
845
|
}
|
|
665
|
-
}
|
|
666
|
-
|
|
667
|
-
if (isSelected) {
|
|
846
|
+
} else if (isSelected) {
|
|
668
847
|
result.push(row)
|
|
669
848
|
}
|
|
670
849
|
}
|
|
@@ -689,8 +868,8 @@ export function selectRowsFn<
|
|
|
689
868
|
export function isRowSelected<
|
|
690
869
|
TFeatures extends TableFeatures,
|
|
691
870
|
TData extends RowData,
|
|
692
|
-
>(row: Row<TFeatures, TData
|
|
693
|
-
return (row.
|
|
871
|
+
>(row: Row<TFeatures, TData>, rowSelection: RowSelectionState): boolean {
|
|
872
|
+
return !!(hasOwn(rowSelection, row.id) && rowSelection[row.id])
|
|
694
873
|
}
|
|
695
874
|
|
|
696
875
|
/**
|
|
@@ -709,17 +888,21 @@ export function isSubRowSelected<
|
|
|
709
888
|
>(row: Row<TFeatures, TData>): boolean | 'some' | 'all' {
|
|
710
889
|
if (!row.subRows.length) return false
|
|
711
890
|
|
|
712
|
-
|
|
891
|
+
const rowSelection = row.table.atoms.rowSelection?.get() ?? {}
|
|
892
|
+
|
|
713
893
|
let someSelected = false
|
|
894
|
+
let allChildrenSelected = true
|
|
895
|
+
|
|
896
|
+
for (let i = 0; i < row.subRows.length; i++) {
|
|
897
|
+
const subRow = row.subRows[i]!
|
|
714
898
|
|
|
715
|
-
row.subRows.forEach((subRow) => {
|
|
716
899
|
// Bail out early if we know both of these
|
|
717
900
|
if (someSelected && !allChildrenSelected) {
|
|
718
|
-
|
|
901
|
+
break
|
|
719
902
|
}
|
|
720
903
|
|
|
721
904
|
if (row_getCanSelect(subRow)) {
|
|
722
|
-
if (isRowSelected(subRow)) {
|
|
905
|
+
if (isRowSelected(subRow, rowSelection)) {
|
|
723
906
|
someSelected = true
|
|
724
907
|
} else {
|
|
725
908
|
allChildrenSelected = false
|
|
@@ -738,8 +921,7 @@ export function isSubRowSelected<
|
|
|
738
921
|
allChildrenSelected = false
|
|
739
922
|
}
|
|
740
923
|
}
|
|
741
|
-
}
|
|
924
|
+
}
|
|
742
925
|
|
|
743
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
744
926
|
return allChildrenSelected ? 'all' : someSelected ? 'some' : false
|
|
745
927
|
}
|