@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rowExpandingFeature.utils.cjs","names":["cloneState"],"sources":["../../../src/features/row-expanding/rowExpandingFeature.utils.ts"],"sourcesContent":["import { cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n ExpandedState,\n ExpandedStateList,\n} from './rowExpandingFeature.types'\n\n/**\n * Creates the default expanded state.\n *\n * The feature default is an empty map, meaning no rows are expanded. Reset APIs\n * use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const expanded = getDefaultExpandedState()\n * ```\n */\nexport function getDefaultExpandedState(): ExpandedState {\n return {}\n}\n\n/**\n * Schedules an expanded-state reset after row-structure changes.\n *\n * The reset runs when `autoResetAll`, `autoResetExpanded`, or the default\n * client-side expanding behavior allows it. Manual expanding opts out unless\n * the reset options explicitly opt back in.\n *\n * @example\n * ```ts\n * table_autoResetExpanded(table)\n * ```\n */\nexport function table_autoResetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n table._reactivity.schedule(() => table_resetExpanded(table))\n }\n}\n\n/**\n * Routes an expanded-state updater through the table's expanded change handler.\n *\n * The updater may be `true`, a row-id map, or a function of the previous\n * expanded state, matching the instance `table.setExpanded` behavior.\n *\n * @example\n * ```ts\n * table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))\n * ```\n */\nexport function table_setExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ExpandedState>) {\n table.options.onExpandedChange?.(updater)\n}\n\n/**\n * Expands or collapses every row.\n *\n * Passing `true` stores the special expanded-all state. Passing `false` stores\n * an empty map. Omitting the value toggles based on whether all rows are\n * currently expanded.\n *\n * @example\n * ```ts\n * table_toggleAllRowsExpanded(table)\n * ```\n */\nexport function table_toggleAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, expanded?: boolean) {\n if (expanded ?? !table_getIsAllRowsExpanded(table)) {\n table_setExpanded(table, true)\n } else {\n table_setExpanded(table, {})\n }\n}\n\n/**\n * Resets `expanded` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.expanded` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetExpanded(table)\n * table_resetExpanded(table, true)\n * ```\n */\nexport function table_resetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setExpanded(\n table,\n defaultState ? {} : cloneState(table.initialState.expanded ?? {}),\n )\n}\n\n/**\n * Checks whether at least one pre-paginated row can expand.\n *\n * Pagination is intentionally ignored so controls can reflect expandable rows\n * that may not be on the current page.\n *\n * @example\n * ```ts\n * const canExpand = table_getCanSomeRowsExpand(table)\n * ```\n */\nexport function table_getCanSomeRowsExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getPrePaginatedRowModel()\n .flatRows.some((row) => row_getCanExpand(row))\n}\n\n/**\n * Creates an event handler that toggles all rows expanded.\n *\n * React-style synthetic events are persisted when present before the table state\n * is toggled.\n *\n * @example\n * ```ts\n * const onClick = table_getToggleAllRowsExpandedHandler(table)\n * ```\n */\nexport function table_getToggleAllRowsExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table_toggleAllRowsExpanded(table)\n }\n}\n\n/**\n * Checks whether any row is expanded.\n *\n * The special expanded-all value `true` counts as some rows expanded.\n *\n * @example\n * ```ts\n * const someExpanded = table_getIsSomeRowsExpanded(table)\n * ```\n */\nexport function table_getIsSomeRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n return expanded === true || Object.values(expanded).some(Boolean)\n}\n\n/**\n * Checks whether every row in the current row model is expanded.\n *\n * The special expanded-all value `true` returns true immediately. Empty\n * expanded state returns false.\n *\n * @example\n * ```ts\n * const allExpanded = table_getIsAllRowsExpanded(table)\n * ```\n */\nexport function table_getIsAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some((row) => !row_getIsExpanded(row))) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n}\n\n/**\n * Computes the deepest expanded row id depth.\n *\n * Row ids are split on `.`; expanded-all state scans the current row model,\n * while explicit expanded state scans its expanded id keys.\n *\n * @example\n * ```ts\n * const depth = table_getExpandedDepth(table)\n * ```\n */\nexport function table_getExpandedDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n let maxDepth = 0\n\n const rowIds =\n table.atoms.expanded?.get() === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.atoms.expanded?.get() ?? {})\n\n rowIds.forEach((id) => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n\n/**\n * Expands or collapses this row.\n *\n * Omitting `expanded` toggles the row. If the current state is expanded-all,\n * the function first materializes that state into a row-id map before applying\n * the row-specific change.\n *\n * @example\n * ```ts\n * row_toggleExpanded(row)\n * ```\n */\nexport function row_toggleExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, expanded?: boolean) {\n table_setExpanded(row.table, (old) => {\n const exists = old === true ? true : !!old[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(row.table.getRowModel().rowsById).forEach((rowId) => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n}\n\n/**\n * Checks whether this row is expanded.\n *\n * `options.getIsRowExpanded` can override state-derived behavior. Otherwise\n * the row is expanded when expanded state is `true` or contains this row id.\n *\n * @example\n * ```ts\n * const expanded = row_getIsExpanded(row)\n * ```\n */\nexport function row_getIsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const expanded: ExpandedState = row.table.atoms.expanded?.get() ?? {}\n\n return !!(\n row.table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded[row.id])\n )\n}\n\n/**\n * Checks whether this row can be expanded.\n *\n * `options.getRowCanExpand` wins when provided. Otherwise rows can expand when\n * expanding is enabled and the row has subRows.\n *\n * @example\n * ```ts\n * const canExpand = row_getCanExpand(row)\n * ```\n */\nexport function row_getCanExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return (\n row.table.options.getRowCanExpand?.(row) ??\n ((row.table.options.enableExpanding ?? true) && !!row.subRows.length)\n )\n}\n\n/**\n * Checks whether every ancestor of this row is expanded.\n *\n * The current row is not considered; only its parent chain is walked.\n *\n * @example\n * ```ts\n * const parentsExpanded = row_getIsAllParentsExpanded(row)\n * ```\n */\nexport function row_getIsAllParentsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = row.table.getRow(currentRow.parentId, true)\n isFullyExpanded = row_getIsExpanded(currentRow)\n }\n\n return isFullyExpanded\n}\n\n/**\n * Creates a row control handler that toggles this row's expanded state.\n *\n * The handler is a no-op when the row cannot expand.\n *\n * @example\n * ```ts\n * const onClick = row_getToggleExpandedHandler(row)\n * ```\n */\nexport function row_getToggleExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const canExpand = row_getCanExpand(row)\n\n return () => {\n if (!canExpand) return\n row_toggleExpanded(row)\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rowExpandingFeature.utils.cjs","names":["makeObjectMap","cloneState","hasOwn"],"sources":["../../../src/features/row-expanding/rowExpandingFeature.utils.ts"],"sourcesContent":["import { cloneState, hasOwn, makeObjectMap } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n ExpandedState,\n ExpandedStateList,\n} from './rowExpandingFeature.types'\n\n/**\n * Creates the default expanded state.\n *\n * The feature default is an empty map, meaning no rows are expanded. Reset APIs\n * use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const expanded = getDefaultExpandedState()\n * ```\n */\nexport function getDefaultExpandedState(): ExpandedState {\n return makeObjectMap()\n}\n\n/**\n * Schedules an expanded-state reset after row-structure changes.\n *\n * The reset runs when `autoResetAll`, `autoResetExpanded`, or the default\n * client-side expanding behavior allows it. Manual expanding opts out unless\n * the reset options explicitly opt back in.\n *\n * @example\n * ```ts\n * table_autoResetExpanded(table)\n * ```\n */\nexport function table_autoResetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n table._reactivity.schedule(() => table_resetExpanded(table))\n }\n}\n\n/**\n * Routes an expanded-state updater through the table's expanded change handler.\n *\n * The updater may be `true`, a row-id map, or a function of the previous\n * expanded state, matching the instance `table.setExpanded` behavior.\n *\n * @example\n * ```ts\n * table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))\n * ```\n */\nexport function table_setExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ExpandedState>) {\n table.options.onExpandedChange?.(updater)\n}\n\n/**\n * Expands or collapses every row.\n *\n * Passing `true` stores the special expanded-all state. Passing `false` stores\n * an empty map. Omitting the value toggles based on whether all rows are\n * currently expanded.\n *\n * @example\n * ```ts\n * table_toggleAllRowsExpanded(table)\n * ```\n */\nexport function table_toggleAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, expanded?: boolean) {\n if (expanded ?? !table_getIsAllRowsExpanded(table)) {\n table_setExpanded(table, true)\n } else {\n table_setExpanded(table, makeObjectMap())\n }\n}\n\n/**\n * Resets `expanded` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.expanded` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetExpanded(table)\n * table_resetExpanded(table, true)\n * ```\n */\nexport function table_resetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n const initialExpanded = table.initialState.expanded\n table_setExpanded(\n table,\n defaultState\n ? makeObjectMap()\n : initialExpanded === true\n ? true\n : Object.assign(\n makeObjectMap<boolean | undefined>(),\n cloneState(initialExpanded ?? {}),\n ),\n )\n}\n\n/**\n * Checks whether at least one pre-paginated row can expand.\n *\n * Pagination is intentionally ignored so controls can reflect expandable rows\n * that may not be on the current page.\n *\n * @example\n * ```ts\n * const canExpand = table_getCanSomeRowsExpand(table)\n * ```\n */\nexport function table_getCanSomeRowsExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getPrePaginatedRowModel()\n .flatRows.some((row) => row_getCanExpand(row))\n}\n\n/**\n * Creates an event handler that toggles all rows expanded.\n *\n * React-style synthetic events are persisted when present before the table state\n * is toggled.\n *\n * @example\n * ```ts\n * const onClick = table_getToggleAllRowsExpandedHandler(table)\n * ```\n */\nexport function table_getToggleAllRowsExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table_toggleAllRowsExpanded(table)\n }\n}\n\n/**\n * Checks whether any row is expanded.\n *\n * The special expanded-all value `true` counts as some rows expanded.\n *\n * @example\n * ```ts\n * const someExpanded = table_getIsSomeRowsExpanded(table)\n * ```\n */\nexport function table_getIsSomeRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n return expanded === true || Object.values(expanded).some(Boolean)\n}\n\n/**\n * Checks whether every row in the current row model is expanded.\n *\n * The special expanded-all value `true` returns true immediately. Empty\n * expanded state returns false.\n *\n * @example\n * ```ts\n * const allExpanded = table_getIsAllRowsExpanded(table)\n * ```\n */\nexport function table_getIsAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some((row) => !row_getIsExpanded(row))) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n}\n\n/**\n * Computes the deepest expanded row id depth.\n *\n * Row ids are split on `.`; expanded-all state scans the current row model,\n * while explicit expanded state scans its expanded id keys.\n *\n * @example\n * ```ts\n * const depth = table_getExpandedDepth(table)\n * ```\n */\nexport function table_getExpandedDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n let maxDepth = 0\n\n const rowIds =\n table.atoms.expanded?.get() === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.atoms.expanded?.get() ?? {})\n\n rowIds.forEach((id) => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n\n/**\n * Expands or collapses this row.\n *\n * Omitting `expanded` toggles the row. If the current state is expanded-all,\n * the function first materializes that state into a row-id map before applying\n * the row-specific change.\n *\n * @example\n * ```ts\n * row_toggleExpanded(row)\n * ```\n */\nexport function row_toggleExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, expanded?: boolean) {\n table_setExpanded(row.table, (old) => {\n const exists = old === true ? true : isExpandedRowId(old, row.id)\n\n let oldExpanded: ExpandedStateList = makeObjectMap()\n\n if (old === true) {\n Object.keys(row.table.getRowModel().rowsById).forEach((rowId) => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = Object.assign(makeObjectMap<boolean | undefined>(), old)\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n oldExpanded[row.id] = true\n return oldExpanded\n }\n\n if (exists && !expanded) {\n const rest: ExpandedStateList = makeObjectMap()\n const rowIds = Object.keys(oldExpanded)\n for (let i = 0; i < rowIds.length; i++) {\n const rowId = rowIds[i]!\n if (rowId !== row.id && oldExpanded[rowId]) {\n rest[rowId] = true\n }\n }\n return rest\n }\n\n return old\n })\n}\n\n/**\n * Checks whether this row is expanded.\n *\n * `options.getIsRowExpanded` can override state-derived behavior. Otherwise\n * the row is expanded when expanded state is `true` or contains this row id.\n *\n * @example\n * ```ts\n * const expanded = row_getIsExpanded(row)\n * ```\n */\nexport function row_getIsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const expanded: ExpandedState = row.table.atoms.expanded?.get() ?? {}\n\n return !!(\n row.table.options.getIsRowExpanded?.(row) ??\n (expanded === true || isExpandedRowId(expanded, row.id))\n )\n}\n\nfunction isExpandedRowId(\n expanded: ExpandedState | undefined,\n rowId: string,\n): boolean {\n return !!(\n expanded &&\n expanded !== true &&\n hasOwn(expanded, rowId) &&\n expanded[rowId]\n )\n}\n\n/**\n * Checks whether this row can be expanded.\n *\n * `options.getRowCanExpand` wins when provided. Otherwise rows can expand when\n * expanding is enabled and the row has subRows.\n *\n * @example\n * ```ts\n * const canExpand = row_getCanExpand(row)\n * ```\n */\nexport function row_getCanExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return (\n row.table.options.getRowCanExpand?.(row) ??\n ((row.table.options.enableExpanding ?? true) && !!row.subRows.length)\n )\n}\n\n/**\n * Checks whether every ancestor of this row is expanded.\n *\n * The current row is not considered; only its parent chain is walked.\n *\n * @example\n * ```ts\n * const parentsExpanded = row_getIsAllParentsExpanded(row)\n * ```\n */\nexport function row_getIsAllParentsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = row.table.getRow(currentRow.parentId, true)\n isFullyExpanded = row_getIsExpanded(currentRow)\n }\n\n return isFullyExpanded\n}\n\n/**\n * Creates a row control handler that toggles this row's expanded state.\n *\n * The handler is a no-op when the row cannot expand.\n *\n * @example\n * ```ts\n * const onClick = row_getToggleExpandedHandler(row)\n * ```\n */\nexport function row_getToggleExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const canExpand = row_getCanExpand(row)\n\n return () => {\n if (!canExpand) return\n row_toggleExpanded(row)\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { RowData, Updater } from "../../types/type-utils.cjs";
|
|
2
2
|
import { ExpandedState } from "./rowExpandingFeature.types.cjs";
|
|
3
3
|
import { Row } from "../../types/Row.cjs";
|
|
4
|
+
import { Table } from "../../types/Table.cjs";
|
|
4
5
|
import { TableFeatures } from "../../types/TableFeatures.cjs";
|
|
5
|
-
import { Table_Internal } from "../../types/Table.cjs";
|
|
6
6
|
|
|
7
7
|
//#region src/features/row-expanding/rowExpandingFeature.utils.d.ts
|
|
8
8
|
/**
|
|
@@ -29,7 +29,7 @@ declare function getDefaultExpandedState(): ExpandedState;
|
|
|
29
29
|
* table_autoResetExpanded(table)
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
-
declare function table_autoResetExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
32
|
+
declare function table_autoResetExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): void;
|
|
33
33
|
/**
|
|
34
34
|
* Routes an expanded-state updater through the table's expanded change handler.
|
|
35
35
|
*
|
|
@@ -41,7 +41,7 @@ declare function table_autoResetExpanded<TFeatures extends TableFeatures, TData
|
|
|
41
41
|
* table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
|
-
declare function table_setExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
44
|
+
declare function table_setExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, updater: Updater<ExpandedState>): void;
|
|
45
45
|
/**
|
|
46
46
|
* Expands or collapses every row.
|
|
47
47
|
*
|
|
@@ -54,7 +54,7 @@ declare function table_setExpanded<TFeatures extends TableFeatures, TData extend
|
|
|
54
54
|
* table_toggleAllRowsExpanded(table)
|
|
55
55
|
* ```
|
|
56
56
|
*/
|
|
57
|
-
declare function table_toggleAllRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
57
|
+
declare function table_toggleAllRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, expanded?: boolean): void;
|
|
58
58
|
/**
|
|
59
59
|
* Resets `expanded` to the configured initial state or feature default.
|
|
60
60
|
*
|
|
@@ -67,7 +67,7 @@ declare function table_toggleAllRowsExpanded<TFeatures extends TableFeatures, TD
|
|
|
67
67
|
* table_resetExpanded(table, true)
|
|
68
68
|
* ```
|
|
69
69
|
*/
|
|
70
|
-
declare function table_resetExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
70
|
+
declare function table_resetExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, defaultState?: boolean): void;
|
|
71
71
|
/**
|
|
72
72
|
* Checks whether at least one pre-paginated row can expand.
|
|
73
73
|
*
|
|
@@ -79,7 +79,7 @@ declare function table_resetExpanded<TFeatures extends TableFeatures, TData exte
|
|
|
79
79
|
* const canExpand = table_getCanSomeRowsExpand(table)
|
|
80
80
|
* ```
|
|
81
81
|
*/
|
|
82
|
-
declare function table_getCanSomeRowsExpand<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
82
|
+
declare function table_getCanSomeRowsExpand<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): boolean;
|
|
83
83
|
/**
|
|
84
84
|
* Creates an event handler that toggles all rows expanded.
|
|
85
85
|
*
|
|
@@ -91,7 +91,7 @@ declare function table_getCanSomeRowsExpand<TFeatures extends TableFeatures, TDa
|
|
|
91
91
|
* const onClick = table_getToggleAllRowsExpandedHandler(table)
|
|
92
92
|
* ```
|
|
93
93
|
*/
|
|
94
|
-
declare function table_getToggleAllRowsExpandedHandler<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
94
|
+
declare function table_getToggleAllRowsExpandedHandler<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): (e: unknown) => void;
|
|
95
95
|
/**
|
|
96
96
|
* Checks whether any row is expanded.
|
|
97
97
|
*
|
|
@@ -102,7 +102,7 @@ declare function table_getToggleAllRowsExpandedHandler<TFeatures extends TableFe
|
|
|
102
102
|
* const someExpanded = table_getIsSomeRowsExpanded(table)
|
|
103
103
|
* ```
|
|
104
104
|
*/
|
|
105
|
-
declare function table_getIsSomeRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
105
|
+
declare function table_getIsSomeRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): boolean;
|
|
106
106
|
/**
|
|
107
107
|
* Checks whether every row in the current row model is expanded.
|
|
108
108
|
*
|
|
@@ -114,7 +114,7 @@ declare function table_getIsSomeRowsExpanded<TFeatures extends TableFeatures, TD
|
|
|
114
114
|
* const allExpanded = table_getIsAllRowsExpanded(table)
|
|
115
115
|
* ```
|
|
116
116
|
*/
|
|
117
|
-
declare function table_getIsAllRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
117
|
+
declare function table_getIsAllRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): boolean;
|
|
118
118
|
/**
|
|
119
119
|
* Computes the deepest expanded row id depth.
|
|
120
120
|
*
|
|
@@ -126,7 +126,7 @@ declare function table_getIsAllRowsExpanded<TFeatures extends TableFeatures, TDa
|
|
|
126
126
|
* const depth = table_getExpandedDepth(table)
|
|
127
127
|
* ```
|
|
128
128
|
*/
|
|
129
|
-
declare function table_getExpandedDepth<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
129
|
+
declare function table_getExpandedDepth<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): number;
|
|
130
130
|
/**
|
|
131
131
|
* Expands or collapses this row.
|
|
132
132
|
*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { RowData, Updater } from "../../types/type-utils.js";
|
|
2
2
|
import { ExpandedState } from "./rowExpandingFeature.types.js";
|
|
3
3
|
import { Row } from "../../types/Row.js";
|
|
4
|
+
import { Table } from "../../types/Table.js";
|
|
4
5
|
import { TableFeatures } from "../../types/TableFeatures.js";
|
|
5
|
-
import { Table_Internal } from "../../types/Table.js";
|
|
6
6
|
|
|
7
7
|
//#region src/features/row-expanding/rowExpandingFeature.utils.d.ts
|
|
8
8
|
/**
|
|
@@ -29,7 +29,7 @@ declare function getDefaultExpandedState(): ExpandedState;
|
|
|
29
29
|
* table_autoResetExpanded(table)
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
-
declare function table_autoResetExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
32
|
+
declare function table_autoResetExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): void;
|
|
33
33
|
/**
|
|
34
34
|
* Routes an expanded-state updater through the table's expanded change handler.
|
|
35
35
|
*
|
|
@@ -41,7 +41,7 @@ declare function table_autoResetExpanded<TFeatures extends TableFeatures, TData
|
|
|
41
41
|
* table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
|
-
declare function table_setExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
44
|
+
declare function table_setExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, updater: Updater<ExpandedState>): void;
|
|
45
45
|
/**
|
|
46
46
|
* Expands or collapses every row.
|
|
47
47
|
*
|
|
@@ -54,7 +54,7 @@ declare function table_setExpanded<TFeatures extends TableFeatures, TData extend
|
|
|
54
54
|
* table_toggleAllRowsExpanded(table)
|
|
55
55
|
* ```
|
|
56
56
|
*/
|
|
57
|
-
declare function table_toggleAllRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
57
|
+
declare function table_toggleAllRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, expanded?: boolean): void;
|
|
58
58
|
/**
|
|
59
59
|
* Resets `expanded` to the configured initial state or feature default.
|
|
60
60
|
*
|
|
@@ -67,7 +67,7 @@ declare function table_toggleAllRowsExpanded<TFeatures extends TableFeatures, TD
|
|
|
67
67
|
* table_resetExpanded(table, true)
|
|
68
68
|
* ```
|
|
69
69
|
*/
|
|
70
|
-
declare function table_resetExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
70
|
+
declare function table_resetExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, defaultState?: boolean): void;
|
|
71
71
|
/**
|
|
72
72
|
* Checks whether at least one pre-paginated row can expand.
|
|
73
73
|
*
|
|
@@ -79,7 +79,7 @@ declare function table_resetExpanded<TFeatures extends TableFeatures, TData exte
|
|
|
79
79
|
* const canExpand = table_getCanSomeRowsExpand(table)
|
|
80
80
|
* ```
|
|
81
81
|
*/
|
|
82
|
-
declare function table_getCanSomeRowsExpand<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
82
|
+
declare function table_getCanSomeRowsExpand<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): boolean;
|
|
83
83
|
/**
|
|
84
84
|
* Creates an event handler that toggles all rows expanded.
|
|
85
85
|
*
|
|
@@ -91,7 +91,7 @@ declare function table_getCanSomeRowsExpand<TFeatures extends TableFeatures, TDa
|
|
|
91
91
|
* const onClick = table_getToggleAllRowsExpandedHandler(table)
|
|
92
92
|
* ```
|
|
93
93
|
*/
|
|
94
|
-
declare function table_getToggleAllRowsExpandedHandler<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
94
|
+
declare function table_getToggleAllRowsExpandedHandler<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): (e: unknown) => void;
|
|
95
95
|
/**
|
|
96
96
|
* Checks whether any row is expanded.
|
|
97
97
|
*
|
|
@@ -102,7 +102,7 @@ declare function table_getToggleAllRowsExpandedHandler<TFeatures extends TableFe
|
|
|
102
102
|
* const someExpanded = table_getIsSomeRowsExpanded(table)
|
|
103
103
|
* ```
|
|
104
104
|
*/
|
|
105
|
-
declare function table_getIsSomeRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
105
|
+
declare function table_getIsSomeRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): boolean;
|
|
106
106
|
/**
|
|
107
107
|
* Checks whether every row in the current row model is expanded.
|
|
108
108
|
*
|
|
@@ -114,7 +114,7 @@ declare function table_getIsSomeRowsExpanded<TFeatures extends TableFeatures, TD
|
|
|
114
114
|
* const allExpanded = table_getIsAllRowsExpanded(table)
|
|
115
115
|
* ```
|
|
116
116
|
*/
|
|
117
|
-
declare function table_getIsAllRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
117
|
+
declare function table_getIsAllRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): boolean;
|
|
118
118
|
/**
|
|
119
119
|
* Computes the deepest expanded row id depth.
|
|
120
120
|
*
|
|
@@ -126,7 +126,7 @@ declare function table_getIsAllRowsExpanded<TFeatures extends TableFeatures, TDa
|
|
|
126
126
|
* const depth = table_getExpandedDepth(table)
|
|
127
127
|
* ```
|
|
128
128
|
*/
|
|
129
|
-
declare function table_getExpandedDepth<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
129
|
+
declare function table_getExpandedDepth<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): number;
|
|
130
130
|
/**
|
|
131
131
|
* Expands or collapses this row.
|
|
132
132
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cloneState } from "../../utils.js";
|
|
1
|
+
import { cloneState, hasOwn, makeObjectMap } from "../../utils.js";
|
|
2
2
|
|
|
3
3
|
//#region src/features/row-expanding/rowExpandingFeature.utils.ts
|
|
4
4
|
/**
|
|
@@ -13,7 +13,7 @@ import { cloneState } from "../../utils.js";
|
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
15
|
function getDefaultExpandedState() {
|
|
16
|
-
return
|
|
16
|
+
return makeObjectMap();
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Schedules an expanded-state reset after row-structure changes.
|
|
@@ -42,8 +42,7 @@ function table_autoResetExpanded(table) {
|
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
44
|
function table_setExpanded(table, updater) {
|
|
45
|
-
|
|
46
|
-
(_table$options$onExpa = (_table$options = table.options).onExpandedChange) === null || _table$options$onExpa === void 0 || _table$options$onExpa.call(_table$options, updater);
|
|
45
|
+
table.options.onExpandedChange?.(updater);
|
|
47
46
|
}
|
|
48
47
|
/**
|
|
49
48
|
* Expands or collapses every row.
|
|
@@ -59,7 +58,7 @@ function table_setExpanded(table, updater) {
|
|
|
59
58
|
*/
|
|
60
59
|
function table_toggleAllRowsExpanded(table, expanded) {
|
|
61
60
|
if (expanded ?? !table_getIsAllRowsExpanded(table)) table_setExpanded(table, true);
|
|
62
|
-
else table_setExpanded(table,
|
|
61
|
+
else table_setExpanded(table, makeObjectMap());
|
|
63
62
|
}
|
|
64
63
|
/**
|
|
65
64
|
* Resets `expanded` to the configured initial state or feature default.
|
|
@@ -74,7 +73,8 @@ function table_toggleAllRowsExpanded(table, expanded) {
|
|
|
74
73
|
* ```
|
|
75
74
|
*/
|
|
76
75
|
function table_resetExpanded(table, defaultState) {
|
|
77
|
-
|
|
76
|
+
const initialExpanded = table.initialState.expanded;
|
|
77
|
+
table_setExpanded(table, defaultState ? makeObjectMap() : initialExpanded === true ? true : Object.assign(makeObjectMap(), cloneState(initialExpanded ?? {})));
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* Checks whether at least one pre-paginated row can expand.
|
|
@@ -103,8 +103,7 @@ function table_getCanSomeRowsExpand(table) {
|
|
|
103
103
|
*/
|
|
104
104
|
function table_getToggleAllRowsExpandedHandler(table) {
|
|
105
105
|
return (e) => {
|
|
106
|
-
|
|
107
|
-
(_persist = e.persist) === null || _persist === void 0 || _persist.call(e);
|
|
106
|
+
e.persist?.();
|
|
108
107
|
table_toggleAllRowsExpanded(table);
|
|
109
108
|
};
|
|
110
109
|
}
|
|
@@ -119,8 +118,7 @@ function table_getToggleAllRowsExpandedHandler(table) {
|
|
|
119
118
|
* ```
|
|
120
119
|
*/
|
|
121
120
|
function table_getIsSomeRowsExpanded(table) {
|
|
122
|
-
|
|
123
|
-
const expanded = ((_table$atoms$expanded = table.atoms.expanded) === null || _table$atoms$expanded === void 0 ? void 0 : _table$atoms$expanded.get()) ?? {};
|
|
121
|
+
const expanded = table.atoms.expanded?.get() ?? {};
|
|
124
122
|
return expanded === true || Object.values(expanded).some(Boolean);
|
|
125
123
|
}
|
|
126
124
|
/**
|
|
@@ -135,8 +133,7 @@ function table_getIsSomeRowsExpanded(table) {
|
|
|
135
133
|
* ```
|
|
136
134
|
*/
|
|
137
135
|
function table_getIsAllRowsExpanded(table) {
|
|
138
|
-
|
|
139
|
-
const expanded = ((_table$atoms$expanded2 = table.atoms.expanded) === null || _table$atoms$expanded2 === void 0 ? void 0 : _table$atoms$expanded2.get()) ?? {};
|
|
136
|
+
const expanded = table.atoms.expanded?.get() ?? {};
|
|
140
137
|
if (expanded === true) return true;
|
|
141
138
|
if (!Object.keys(expanded).length) return false;
|
|
142
139
|
if (table.getRowModel().flatRows.some((row) => !row_getIsExpanded(row))) return false;
|
|
@@ -154,9 +151,8 @@ function table_getIsAllRowsExpanded(table) {
|
|
|
154
151
|
* ```
|
|
155
152
|
*/
|
|
156
153
|
function table_getExpandedDepth(table) {
|
|
157
|
-
var _table$atoms$expanded3, _table$atoms$expanded4;
|
|
158
154
|
let maxDepth = 0;
|
|
159
|
-
(
|
|
155
|
+
(table.atoms.expanded?.get() === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.atoms.expanded?.get() ?? {})).forEach((id) => {
|
|
160
156
|
const splitId = id.split(".");
|
|
161
157
|
maxDepth = Math.max(maxDepth, splitId.length);
|
|
162
158
|
});
|
|
@@ -176,19 +172,24 @@ function table_getExpandedDepth(table) {
|
|
|
176
172
|
*/
|
|
177
173
|
function row_toggleExpanded(row, expanded) {
|
|
178
174
|
table_setExpanded(row.table, (old) => {
|
|
179
|
-
const exists = old === true ? true :
|
|
180
|
-
let oldExpanded =
|
|
175
|
+
const exists = old === true ? true : isExpandedRowId(old, row.id);
|
|
176
|
+
let oldExpanded = makeObjectMap();
|
|
181
177
|
if (old === true) Object.keys(row.table.getRowModel().rowsById).forEach((rowId) => {
|
|
182
178
|
oldExpanded[rowId] = true;
|
|
183
179
|
});
|
|
184
|
-
else oldExpanded = old;
|
|
180
|
+
else oldExpanded = Object.assign(makeObjectMap(), old);
|
|
185
181
|
expanded = expanded ?? !exists;
|
|
186
|
-
if (!exists && expanded)
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}
|
|
182
|
+
if (!exists && expanded) {
|
|
183
|
+
oldExpanded[row.id] = true;
|
|
184
|
+
return oldExpanded;
|
|
185
|
+
}
|
|
190
186
|
if (exists && !expanded) {
|
|
191
|
-
const
|
|
187
|
+
const rest = makeObjectMap();
|
|
188
|
+
const rowIds = Object.keys(oldExpanded);
|
|
189
|
+
for (let i = 0; i < rowIds.length; i++) {
|
|
190
|
+
const rowId = rowIds[i];
|
|
191
|
+
if (rowId !== row.id && oldExpanded[rowId]) rest[rowId] = true;
|
|
192
|
+
}
|
|
192
193
|
return rest;
|
|
193
194
|
}
|
|
194
195
|
return old;
|
|
@@ -206,9 +207,11 @@ function row_toggleExpanded(row, expanded) {
|
|
|
206
207
|
* ```
|
|
207
208
|
*/
|
|
208
209
|
function row_getIsExpanded(row) {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
210
|
+
const expanded = row.table.atoms.expanded?.get() ?? {};
|
|
211
|
+
return !!(row.table.options.getIsRowExpanded?.(row) ?? (expanded === true || isExpandedRowId(expanded, row.id)));
|
|
212
|
+
}
|
|
213
|
+
function isExpandedRowId(expanded, rowId) {
|
|
214
|
+
return !!(expanded && expanded !== true && hasOwn(expanded, rowId) && expanded[rowId]);
|
|
212
215
|
}
|
|
213
216
|
/**
|
|
214
217
|
* Checks whether this row can be expanded.
|
|
@@ -222,8 +225,7 @@ function row_getIsExpanded(row) {
|
|
|
222
225
|
* ```
|
|
223
226
|
*/
|
|
224
227
|
function row_getCanExpand(row) {
|
|
225
|
-
|
|
226
|
-
return ((_row$table$options$ge2 = (_row$table$options2 = row.table.options).getRowCanExpand) === null || _row$table$options$ge2 === void 0 ? void 0 : _row$table$options$ge2.call(_row$table$options2, row)) ?? ((row.table.options.enableExpanding ?? true) && !!row.subRows.length);
|
|
228
|
+
return row.table.options.getRowCanExpand?.(row) ?? ((row.table.options.enableExpanding ?? true) && !!row.subRows.length);
|
|
227
229
|
}
|
|
228
230
|
/**
|
|
229
231
|
* Checks whether every ancestor of this row is expanded.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rowExpandingFeature.utils.js","names":[],"sources":["../../../src/features/row-expanding/rowExpandingFeature.utils.ts"],"sourcesContent":["import { cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n ExpandedState,\n ExpandedStateList,\n} from './rowExpandingFeature.types'\n\n/**\n * Creates the default expanded state.\n *\n * The feature default is an empty map, meaning no rows are expanded. Reset APIs\n * use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const expanded = getDefaultExpandedState()\n * ```\n */\nexport function getDefaultExpandedState(): ExpandedState {\n return {}\n}\n\n/**\n * Schedules an expanded-state reset after row-structure changes.\n *\n * The reset runs when `autoResetAll`, `autoResetExpanded`, or the default\n * client-side expanding behavior allows it. Manual expanding opts out unless\n * the reset options explicitly opt back in.\n *\n * @example\n * ```ts\n * table_autoResetExpanded(table)\n * ```\n */\nexport function table_autoResetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n table._reactivity.schedule(() => table_resetExpanded(table))\n }\n}\n\n/**\n * Routes an expanded-state updater through the table's expanded change handler.\n *\n * The updater may be `true`, a row-id map, or a function of the previous\n * expanded state, matching the instance `table.setExpanded` behavior.\n *\n * @example\n * ```ts\n * table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))\n * ```\n */\nexport function table_setExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ExpandedState>) {\n table.options.onExpandedChange?.(updater)\n}\n\n/**\n * Expands or collapses every row.\n *\n * Passing `true` stores the special expanded-all state. Passing `false` stores\n * an empty map. Omitting the value toggles based on whether all rows are\n * currently expanded.\n *\n * @example\n * ```ts\n * table_toggleAllRowsExpanded(table)\n * ```\n */\nexport function table_toggleAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, expanded?: boolean) {\n if (expanded ?? !table_getIsAllRowsExpanded(table)) {\n table_setExpanded(table, true)\n } else {\n table_setExpanded(table, {})\n }\n}\n\n/**\n * Resets `expanded` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.expanded` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetExpanded(table)\n * table_resetExpanded(table, true)\n * ```\n */\nexport function table_resetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setExpanded(\n table,\n defaultState ? {} : cloneState(table.initialState.expanded ?? {}),\n )\n}\n\n/**\n * Checks whether at least one pre-paginated row can expand.\n *\n * Pagination is intentionally ignored so controls can reflect expandable rows\n * that may not be on the current page.\n *\n * @example\n * ```ts\n * const canExpand = table_getCanSomeRowsExpand(table)\n * ```\n */\nexport function table_getCanSomeRowsExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getPrePaginatedRowModel()\n .flatRows.some((row) => row_getCanExpand(row))\n}\n\n/**\n * Creates an event handler that toggles all rows expanded.\n *\n * React-style synthetic events are persisted when present before the table state\n * is toggled.\n *\n * @example\n * ```ts\n * const onClick = table_getToggleAllRowsExpandedHandler(table)\n * ```\n */\nexport function table_getToggleAllRowsExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table_toggleAllRowsExpanded(table)\n }\n}\n\n/**\n * Checks whether any row is expanded.\n *\n * The special expanded-all value `true` counts as some rows expanded.\n *\n * @example\n * ```ts\n * const someExpanded = table_getIsSomeRowsExpanded(table)\n * ```\n */\nexport function table_getIsSomeRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n return expanded === true || Object.values(expanded).some(Boolean)\n}\n\n/**\n * Checks whether every row in the current row model is expanded.\n *\n * The special expanded-all value `true` returns true immediately. Empty\n * expanded state returns false.\n *\n * @example\n * ```ts\n * const allExpanded = table_getIsAllRowsExpanded(table)\n * ```\n */\nexport function table_getIsAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some((row) => !row_getIsExpanded(row))) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n}\n\n/**\n * Computes the deepest expanded row id depth.\n *\n * Row ids are split on `.`; expanded-all state scans the current row model,\n * while explicit expanded state scans its expanded id keys.\n *\n * @example\n * ```ts\n * const depth = table_getExpandedDepth(table)\n * ```\n */\nexport function table_getExpandedDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n let maxDepth = 0\n\n const rowIds =\n table.atoms.expanded?.get() === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.atoms.expanded?.get() ?? {})\n\n rowIds.forEach((id) => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n\n/**\n * Expands or collapses this row.\n *\n * Omitting `expanded` toggles the row. If the current state is expanded-all,\n * the function first materializes that state into a row-id map before applying\n * the row-specific change.\n *\n * @example\n * ```ts\n * row_toggleExpanded(row)\n * ```\n */\nexport function row_toggleExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, expanded?: boolean) {\n table_setExpanded(row.table, (old) => {\n const exists = old === true ? true : !!old[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(row.table.getRowModel().rowsById).forEach((rowId) => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n}\n\n/**\n * Checks whether this row is expanded.\n *\n * `options.getIsRowExpanded` can override state-derived behavior. Otherwise\n * the row is expanded when expanded state is `true` or contains this row id.\n *\n * @example\n * ```ts\n * const expanded = row_getIsExpanded(row)\n * ```\n */\nexport function row_getIsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const expanded: ExpandedState = row.table.atoms.expanded?.get() ?? {}\n\n return !!(\n row.table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded[row.id])\n )\n}\n\n/**\n * Checks whether this row can be expanded.\n *\n * `options.getRowCanExpand` wins when provided. Otherwise rows can expand when\n * expanding is enabled and the row has subRows.\n *\n * @example\n * ```ts\n * const canExpand = row_getCanExpand(row)\n * ```\n */\nexport function row_getCanExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return (\n row.table.options.getRowCanExpand?.(row) ??\n ((row.table.options.enableExpanding ?? true) && !!row.subRows.length)\n )\n}\n\n/**\n * Checks whether every ancestor of this row is expanded.\n *\n * The current row is not considered; only its parent chain is walked.\n *\n * @example\n * ```ts\n * const parentsExpanded = row_getIsAllParentsExpanded(row)\n * ```\n */\nexport function row_getIsAllParentsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = row.table.getRow(currentRow.parentId, true)\n isFullyExpanded = row_getIsExpanded(currentRow)\n }\n\n return isFullyExpanded\n}\n\n/**\n * Creates a row control handler that toggles this row's expanded state.\n *\n * The handler is a no-op when the row cannot expand.\n *\n * @example\n * ```ts\n * const onClick = row_getToggleExpandedHandler(row)\n * ```\n */\nexport function row_getToggleExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const canExpand = row_getCanExpand(row)\n\n return () => {\n if (!canExpand) return\n row_toggleExpanded(row)\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rowExpandingFeature.utils.js","names":[],"sources":["../../../src/features/row-expanding/rowExpandingFeature.utils.ts"],"sourcesContent":["import { cloneState, hasOwn, makeObjectMap } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n ExpandedState,\n ExpandedStateList,\n} from './rowExpandingFeature.types'\n\n/**\n * Creates the default expanded state.\n *\n * The feature default is an empty map, meaning no rows are expanded. Reset APIs\n * use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const expanded = getDefaultExpandedState()\n * ```\n */\nexport function getDefaultExpandedState(): ExpandedState {\n return makeObjectMap()\n}\n\n/**\n * Schedules an expanded-state reset after row-structure changes.\n *\n * The reset runs when `autoResetAll`, `autoResetExpanded`, or the default\n * client-side expanding behavior allows it. Manual expanding opts out unless\n * the reset options explicitly opt back in.\n *\n * @example\n * ```ts\n * table_autoResetExpanded(table)\n * ```\n */\nexport function table_autoResetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n table._reactivity.schedule(() => table_resetExpanded(table))\n }\n}\n\n/**\n * Routes an expanded-state updater through the table's expanded change handler.\n *\n * The updater may be `true`, a row-id map, or a function of the previous\n * expanded state, matching the instance `table.setExpanded` behavior.\n *\n * @example\n * ```ts\n * table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))\n * ```\n */\nexport function table_setExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ExpandedState>) {\n table.options.onExpandedChange?.(updater)\n}\n\n/**\n * Expands or collapses every row.\n *\n * Passing `true` stores the special expanded-all state. Passing `false` stores\n * an empty map. Omitting the value toggles based on whether all rows are\n * currently expanded.\n *\n * @example\n * ```ts\n * table_toggleAllRowsExpanded(table)\n * ```\n */\nexport function table_toggleAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, expanded?: boolean) {\n if (expanded ?? !table_getIsAllRowsExpanded(table)) {\n table_setExpanded(table, true)\n } else {\n table_setExpanded(table, makeObjectMap())\n }\n}\n\n/**\n * Resets `expanded` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.expanded` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetExpanded(table)\n * table_resetExpanded(table, true)\n * ```\n */\nexport function table_resetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n const initialExpanded = table.initialState.expanded\n table_setExpanded(\n table,\n defaultState\n ? makeObjectMap()\n : initialExpanded === true\n ? true\n : Object.assign(\n makeObjectMap<boolean | undefined>(),\n cloneState(initialExpanded ?? {}),\n ),\n )\n}\n\n/**\n * Checks whether at least one pre-paginated row can expand.\n *\n * Pagination is intentionally ignored so controls can reflect expandable rows\n * that may not be on the current page.\n *\n * @example\n * ```ts\n * const canExpand = table_getCanSomeRowsExpand(table)\n * ```\n */\nexport function table_getCanSomeRowsExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getPrePaginatedRowModel()\n .flatRows.some((row) => row_getCanExpand(row))\n}\n\n/**\n * Creates an event handler that toggles all rows expanded.\n *\n * React-style synthetic events are persisted when present before the table state\n * is toggled.\n *\n * @example\n * ```ts\n * const onClick = table_getToggleAllRowsExpandedHandler(table)\n * ```\n */\nexport function table_getToggleAllRowsExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table_toggleAllRowsExpanded(table)\n }\n}\n\n/**\n * Checks whether any row is expanded.\n *\n * The special expanded-all value `true` counts as some rows expanded.\n *\n * @example\n * ```ts\n * const someExpanded = table_getIsSomeRowsExpanded(table)\n * ```\n */\nexport function table_getIsSomeRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n return expanded === true || Object.values(expanded).some(Boolean)\n}\n\n/**\n * Checks whether every row in the current row model is expanded.\n *\n * The special expanded-all value `true` returns true immediately. Empty\n * expanded state returns false.\n *\n * @example\n * ```ts\n * const allExpanded = table_getIsAllRowsExpanded(table)\n * ```\n */\nexport function table_getIsAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some((row) => !row_getIsExpanded(row))) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n}\n\n/**\n * Computes the deepest expanded row id depth.\n *\n * Row ids are split on `.`; expanded-all state scans the current row model,\n * while explicit expanded state scans its expanded id keys.\n *\n * @example\n * ```ts\n * const depth = table_getExpandedDepth(table)\n * ```\n */\nexport function table_getExpandedDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n let maxDepth = 0\n\n const rowIds =\n table.atoms.expanded?.get() === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.atoms.expanded?.get() ?? {})\n\n rowIds.forEach((id) => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n\n/**\n * Expands or collapses this row.\n *\n * Omitting `expanded` toggles the row. If the current state is expanded-all,\n * the function first materializes that state into a row-id map before applying\n * the row-specific change.\n *\n * @example\n * ```ts\n * row_toggleExpanded(row)\n * ```\n */\nexport function row_toggleExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, expanded?: boolean) {\n table_setExpanded(row.table, (old) => {\n const exists = old === true ? true : isExpandedRowId(old, row.id)\n\n let oldExpanded: ExpandedStateList = makeObjectMap()\n\n if (old === true) {\n Object.keys(row.table.getRowModel().rowsById).forEach((rowId) => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = Object.assign(makeObjectMap<boolean | undefined>(), old)\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n oldExpanded[row.id] = true\n return oldExpanded\n }\n\n if (exists && !expanded) {\n const rest: ExpandedStateList = makeObjectMap()\n const rowIds = Object.keys(oldExpanded)\n for (let i = 0; i < rowIds.length; i++) {\n const rowId = rowIds[i]!\n if (rowId !== row.id && oldExpanded[rowId]) {\n rest[rowId] = true\n }\n }\n return rest\n }\n\n return old\n })\n}\n\n/**\n * Checks whether this row is expanded.\n *\n * `options.getIsRowExpanded` can override state-derived behavior. Otherwise\n * the row is expanded when expanded state is `true` or contains this row id.\n *\n * @example\n * ```ts\n * const expanded = row_getIsExpanded(row)\n * ```\n */\nexport function row_getIsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const expanded: ExpandedState = row.table.atoms.expanded?.get() ?? {}\n\n return !!(\n row.table.options.getIsRowExpanded?.(row) ??\n (expanded === true || isExpandedRowId(expanded, row.id))\n )\n}\n\nfunction isExpandedRowId(\n expanded: ExpandedState | undefined,\n rowId: string,\n): boolean {\n return !!(\n expanded &&\n expanded !== true &&\n hasOwn(expanded, rowId) &&\n expanded[rowId]\n )\n}\n\n/**\n * Checks whether this row can be expanded.\n *\n * `options.getRowCanExpand` wins when provided. Otherwise rows can expand when\n * expanding is enabled and the row has subRows.\n *\n * @example\n * ```ts\n * const canExpand = row_getCanExpand(row)\n * ```\n */\nexport function row_getCanExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return (\n row.table.options.getRowCanExpand?.(row) ??\n ((row.table.options.enableExpanding ?? true) && !!row.subRows.length)\n )\n}\n\n/**\n * Checks whether every ancestor of this row is expanded.\n *\n * The current row is not considered; only its parent chain is walked.\n *\n * @example\n * ```ts\n * const parentsExpanded = row_getIsAllParentsExpanded(row)\n * ```\n */\nexport function row_getIsAllParentsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = row.table.getRow(currentRow.parentId, true)\n isFullyExpanded = row_getIsExpanded(currentRow)\n }\n\n return isFullyExpanded\n}\n\n/**\n * Creates a row control handler that toggles this row's expanded state.\n *\n * The handler is a no-op when the row cannot expand.\n *\n * @example\n * ```ts\n * const onClick = row_getToggleExpandedHandler(row)\n * ```\n */\nexport function row_getToggleExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const canExpand = row_getCanExpand(row)\n\n return () => {\n if (!canExpand) return\n row_toggleExpanded(row)\n }\n}\n"],"mappings":"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"}
|
|
@@ -15,22 +15,18 @@ function createPaginatedRowModel() {
|
|
|
15
15
|
feature: "rowPaginationFeature",
|
|
16
16
|
table,
|
|
17
17
|
fnName: "table.getPaginatedRowModel",
|
|
18
|
-
memoDeps: () =>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
table.options.paginateExpandedRows ? (_table$atoms$expanded = table.atoms.expanded) === null || _table$atoms$expanded === void 0 ? void 0 : _table$atoms$expanded.get() : void 0
|
|
24
|
-
];
|
|
25
|
-
},
|
|
18
|
+
memoDeps: () => [
|
|
19
|
+
table.getPrePaginatedRowModel(),
|
|
20
|
+
table.atoms.pagination?.get(),
|
|
21
|
+
!table.options.paginateExpandedRows ? table.atoms.expanded?.get() : void 0
|
|
22
|
+
],
|
|
26
23
|
fn: () => _createPaginatedRowModel(table)
|
|
27
24
|
});
|
|
28
25
|
};
|
|
29
26
|
}
|
|
30
27
|
function _createPaginatedRowModel(table) {
|
|
31
|
-
var _table$atoms$paginati2;
|
|
32
28
|
const prePaginatedRowModel = table.getPrePaginatedRowModel();
|
|
33
|
-
const pagination =
|
|
29
|
+
const pagination = table.atoms.pagination?.get();
|
|
34
30
|
if (!prePaginatedRowModel.rows.length) return prePaginatedRowModel;
|
|
35
31
|
const { pageSize, pageIndex } = pagination ?? require_rowPaginationFeature_utils.getDefaultPaginationState();
|
|
36
32
|
const { rows, flatRows, rowsById } = prePaginatedRowModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPaginatedRowModel.cjs","names":["tableMemo","getDefaultPaginationState","expandRows"],"sources":["../../../src/features/row-pagination/createPaginatedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { expandRows } from '../row-expanding/createExpandedRowModel'\nimport { getDefaultPaginationState } from './rowPaginationFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized paginated row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table = _table as unknown as Table_Internal<TFeatures, TData>\n return tableMemo({\n feature: 'rowPaginationFeature',\n table,\n fnName: 'table.getPaginatedRowModel',\n memoDeps: () => [\n table.getPrePaginatedRowModel(),\n table.atoms.pagination?.get(),\n table.options.paginateExpandedRows\n ? table.atoms.expanded?.get()\n : undefined,\n ],\n fn: () => _createPaginatedRowModel(table),\n })\n }\n}\n\nfunction _createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const prePaginatedRowModel = table.getPrePaginatedRowModel()\n const pagination = table.atoms.pagination?.get()\n\n if (!prePaginatedRowModel.rows.length) {\n return prePaginatedRowModel\n }\n\n const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState()\n const { rows, flatRows, rowsById } = prePaginatedRowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n const paginatedRows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TFeatures, TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows: paginatedRows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows: paginatedRows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,0BAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAAQ;EACd,OAAOA,wBAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB
|
|
1
|
+
{"version":3,"file":"createPaginatedRowModel.cjs","names":["tableMemo","getDefaultPaginationState","expandRows"],"sources":["../../../src/features/row-pagination/createPaginatedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { expandRows } from '../row-expanding/createExpandedRowModel'\nimport { getDefaultPaginationState } from './rowPaginationFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized paginated row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table = _table as unknown as Table_Internal<TFeatures, TData>\n return tableMemo({\n feature: 'rowPaginationFeature',\n table,\n fnName: 'table.getPaginatedRowModel',\n memoDeps: () => [\n table.getPrePaginatedRowModel(),\n table.atoms.pagination?.get(),\n !table.options.paginateExpandedRows\n ? table.atoms.expanded?.get()\n : undefined,\n ],\n fn: () => _createPaginatedRowModel(table),\n })\n }\n}\n\nfunction _createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const prePaginatedRowModel = table.getPrePaginatedRowModel()\n const pagination = table.atoms.pagination?.get()\n\n if (!prePaginatedRowModel.rows.length) {\n return prePaginatedRowModel\n }\n\n const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState()\n const { rows, flatRows, rowsById } = prePaginatedRowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n const paginatedRows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TFeatures, TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows: paginatedRows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows: paginatedRows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,0BAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAAQ;EACd,OAAOA,wBAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;IACd,MAAM,wBAAwB;IAC9B,MAAM,MAAM,YAAY,IAAI;IAC5B,CAAC,MAAM,QAAQ,uBACX,MAAM,MAAM,UAAU,IAAI,IAC1B;GACN;GACA,UAAU,yBAAyB,KAAK;EAC1C,CAAC;CACH;AACF;AAEA,SAAS,yBAGP,OAAqE;CACrE,MAAM,uBAAuB,MAAM,wBAAwB;CAC3D,MAAM,aAAa,MAAM,MAAM,YAAY,IAAI;CAE/C,IAAI,CAAC,qBAAqB,KAAK,QAC7B,OAAO;CAGT,MAAM,EAAE,UAAU,cAAc,cAAcC,6DAA0B;CACxE,MAAM,EAAE,MAAM,UAAU,aAAa;CACrC,MAAM,YAAY,WAAW;CAC7B,MAAM,UAAU,YAAY;CAE5B,MAAM,gBAAgB,KAAK,MAAM,WAAW,OAAO;CAEnD,IAAI;CAEJ,IAAI,CAAC,MAAM,QAAQ,sBACjB,oBAAoBC,0CAAW;EAC7B,MAAM;EACN;EACA;CACF,CAAC;MAED,oBAAoB;EAClB,MAAM;EACN;EACA;CACF;CAGF,kBAAkB,WAAW,CAAC;CAE9B,MAAM,aAAa,QAA+B;EAChD,kBAAkB,SAAS,KAAK,GAAG;EACnC,IAAI,IAAI,QAAQ,QACd,IAAI,QAAQ,QAAQ,SAAS;CAEjC;CAEA,kBAAkB,KAAK,QAAQ,SAAS;CAExC,OAAO;AACT"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RowData } from "../../types/type-utils.cjs";
|
|
2
|
-
import { TableFeatures } from "../../types/TableFeatures.cjs";
|
|
3
|
-
import { Table } from "../../types/Table.cjs";
|
|
4
2
|
import { RowModel } from "../../core/row-models/coreRowModelsFeature.types.cjs";
|
|
3
|
+
import { Table } from "../../types/Table.cjs";
|
|
4
|
+
import { TableFeatures } from "../../types/TableFeatures.cjs";
|
|
5
5
|
|
|
6
6
|
//#region src/features/row-pagination/createPaginatedRowModel.d.ts
|
|
7
7
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RowData } from "../../types/type-utils.js";
|
|
2
|
-
import { TableFeatures } from "../../types/TableFeatures.js";
|
|
3
|
-
import { Table } from "../../types/Table.js";
|
|
4
2
|
import { RowModel } from "../../core/row-models/coreRowModelsFeature.types.js";
|
|
3
|
+
import { Table } from "../../types/Table.js";
|
|
4
|
+
import { TableFeatures } from "../../types/TableFeatures.js";
|
|
5
5
|
|
|
6
6
|
//#region src/features/row-pagination/createPaginatedRowModel.d.ts
|
|
7
7
|
/**
|
|
@@ -15,22 +15,18 @@ function createPaginatedRowModel() {
|
|
|
15
15
|
feature: "rowPaginationFeature",
|
|
16
16
|
table,
|
|
17
17
|
fnName: "table.getPaginatedRowModel",
|
|
18
|
-
memoDeps: () =>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
table.options.paginateExpandedRows ? (_table$atoms$expanded = table.atoms.expanded) === null || _table$atoms$expanded === void 0 ? void 0 : _table$atoms$expanded.get() : void 0
|
|
24
|
-
];
|
|
25
|
-
},
|
|
18
|
+
memoDeps: () => [
|
|
19
|
+
table.getPrePaginatedRowModel(),
|
|
20
|
+
table.atoms.pagination?.get(),
|
|
21
|
+
!table.options.paginateExpandedRows ? table.atoms.expanded?.get() : void 0
|
|
22
|
+
],
|
|
26
23
|
fn: () => _createPaginatedRowModel(table)
|
|
27
24
|
});
|
|
28
25
|
};
|
|
29
26
|
}
|
|
30
27
|
function _createPaginatedRowModel(table) {
|
|
31
|
-
var _table$atoms$paginati2;
|
|
32
28
|
const prePaginatedRowModel = table.getPrePaginatedRowModel();
|
|
33
|
-
const pagination =
|
|
29
|
+
const pagination = table.atoms.pagination?.get();
|
|
34
30
|
if (!prePaginatedRowModel.rows.length) return prePaginatedRowModel;
|
|
35
31
|
const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState();
|
|
36
32
|
const { rows, flatRows, rowsById } = prePaginatedRowModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPaginatedRowModel.js","names":[],"sources":["../../../src/features/row-pagination/createPaginatedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { expandRows } from '../row-expanding/createExpandedRowModel'\nimport { getDefaultPaginationState } from './rowPaginationFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized paginated row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table = _table as unknown as Table_Internal<TFeatures, TData>\n return tableMemo({\n feature: 'rowPaginationFeature',\n table,\n fnName: 'table.getPaginatedRowModel',\n memoDeps: () => [\n table.getPrePaginatedRowModel(),\n table.atoms.pagination?.get(),\n table.options.paginateExpandedRows\n ? table.atoms.expanded?.get()\n : undefined,\n ],\n fn: () => _createPaginatedRowModel(table),\n })\n }\n}\n\nfunction _createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const prePaginatedRowModel = table.getPrePaginatedRowModel()\n const pagination = table.atoms.pagination?.get()\n\n if (!prePaginatedRowModel.rows.length) {\n return prePaginatedRowModel\n }\n\n const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState()\n const { rows, flatRows, rowsById } = prePaginatedRowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n const paginatedRows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TFeatures, TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows: paginatedRows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows: paginatedRows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,0BAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAAQ;EACd,OAAO,UAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB
|
|
1
|
+
{"version":3,"file":"createPaginatedRowModel.js","names":[],"sources":["../../../src/features/row-pagination/createPaginatedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { expandRows } from '../row-expanding/createExpandedRowModel'\nimport { getDefaultPaginationState } from './rowPaginationFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized paginated row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table = _table as unknown as Table_Internal<TFeatures, TData>\n return tableMemo({\n feature: 'rowPaginationFeature',\n table,\n fnName: 'table.getPaginatedRowModel',\n memoDeps: () => [\n table.getPrePaginatedRowModel(),\n table.atoms.pagination?.get(),\n !table.options.paginateExpandedRows\n ? table.atoms.expanded?.get()\n : undefined,\n ],\n fn: () => _createPaginatedRowModel(table),\n })\n }\n}\n\nfunction _createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const prePaginatedRowModel = table.getPrePaginatedRowModel()\n const pagination = table.atoms.pagination?.get()\n\n if (!prePaginatedRowModel.rows.length) {\n return prePaginatedRowModel\n }\n\n const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState()\n const { rows, flatRows, rowsById } = prePaginatedRowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n const paginatedRows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TFeatures, TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows: paginatedRows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows: paginatedRows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,0BAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAAQ;EACd,OAAO,UAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;IACd,MAAM,wBAAwB;IAC9B,MAAM,MAAM,YAAY,IAAI;IAC5B,CAAC,MAAM,QAAQ,uBACX,MAAM,MAAM,UAAU,IAAI,IAC1B;GACN;GACA,UAAU,yBAAyB,KAAK;EAC1C,CAAC;CACH;AACF;AAEA,SAAS,yBAGP,OAAqE;CACrE,MAAM,uBAAuB,MAAM,wBAAwB;CAC3D,MAAM,aAAa,MAAM,MAAM,YAAY,IAAI;CAE/C,IAAI,CAAC,qBAAqB,KAAK,QAC7B,OAAO;CAGT,MAAM,EAAE,UAAU,cAAc,cAAc,0BAA0B;CACxE,MAAM,EAAE,MAAM,UAAU,aAAa;CACrC,MAAM,YAAY,WAAW;CAC7B,MAAM,UAAU,YAAY;CAE5B,MAAM,gBAAgB,KAAK,MAAM,WAAW,OAAO;CAEnD,IAAI;CAEJ,IAAI,CAAC,MAAM,QAAQ,sBACjB,oBAAoB,WAAW;EAC7B,MAAM;EACN;EACA;CACF,CAAC;MAED,oBAAoB;EAClB,MAAM;EACN;EACA;CACF;CAGF,kBAAkB,WAAW,CAAC;CAE9B,MAAM,aAAa,QAA+B;EAChD,kBAAkB,SAAS,KAAK,GAAG;EACnC,IAAI,IAAI,QAAQ,QACd,IAAI,QAAQ,QAAQ,SAAS;CAEjC;CAEA,kBAAkB,KAAK,QAAQ,SAAS;CAExC,OAAO;AACT"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { OnChangeFn, RowData, Updater } from "../../types/type-utils.cjs";
|
|
2
|
-
import { TableFeatures } from "../../types/TableFeatures.cjs";
|
|
3
|
-
import { Table } from "../../types/Table.cjs";
|
|
4
2
|
import { RowModel } from "../../core/row-models/coreRowModelsFeature.types.cjs";
|
|
3
|
+
import { TableFeatures } from "../../types/TableFeatures.cjs";
|
|
5
4
|
|
|
6
5
|
//#region src/features/row-pagination/rowPaginationFeature.types.d.ts
|
|
7
6
|
interface PaginationState {
|
|
@@ -38,7 +37,7 @@ interface TableOptions_RowPagination {
|
|
|
38
37
|
interface PaginationDefaultOptions {
|
|
39
38
|
onPaginationChange: OnChangeFn<PaginationState>;
|
|
40
39
|
}
|
|
41
|
-
interface Table_RowPagination<
|
|
40
|
+
interface Table_RowPagination<in out _TFeatures extends TableFeatures, in out _TData extends RowData> {
|
|
42
41
|
_autoResetPageIndex: () => void;
|
|
43
42
|
/**
|
|
44
43
|
* Checks whether the current page index can move forward.
|
|
@@ -109,7 +108,7 @@ interface Table_RowPagination<TFeatures extends TableFeatures, TData extends Row
|
|
|
109
108
|
*/
|
|
110
109
|
setPagination: (updater: Updater<PaginationState>) => void;
|
|
111
110
|
}
|
|
112
|
-
interface Table_RowModels_Paginated<TFeatures extends TableFeatures, TData extends RowData> {
|
|
111
|
+
interface Table_RowModels_Paginated<in out TFeatures extends TableFeatures, in out TData extends RowData> {
|
|
113
112
|
/**
|
|
114
113
|
* Resolves the row model after pagination has sliced the current page.
|
|
115
114
|
*/
|
|
@@ -119,17 +118,9 @@ interface Table_RowModels_Paginated<TFeatures extends TableFeatures, TData exten
|
|
|
119
118
|
*/
|
|
120
119
|
getPrePaginatedRowModel: () => RowModel<TFeatures, TData>;
|
|
121
120
|
}
|
|
122
|
-
interface
|
|
123
|
-
/**
|
|
124
|
-
* Factory used to retrieve the paginated row model. If using server-side
|
|
125
|
-
* pagination, this is not required. To use client-side pagination, pass
|
|
126
|
-
* `createPaginatedRowModel()` or implement your own factory.
|
|
127
|
-
*/
|
|
128
|
-
paginatedRowModel?: (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
|
|
129
|
-
}
|
|
130
|
-
interface CachedRowModel_Paginated<TFeatures extends TableFeatures, TData extends RowData> {
|
|
121
|
+
interface CachedRowModel_Paginated<in out TFeatures extends TableFeatures, in out TData extends RowData> {
|
|
131
122
|
paginatedRowModel: () => RowModel<TFeatures, TData>;
|
|
132
123
|
}
|
|
133
124
|
//#endregion
|
|
134
|
-
export { CachedRowModel_Paginated,
|
|
125
|
+
export { CachedRowModel_Paginated, PaginationDefaultOptions, PaginationState, TableOptions_RowPagination, TableState_RowPagination, Table_RowModels_Paginated, Table_RowPagination };
|
|
135
126
|
//# sourceMappingURL=rowPaginationFeature.types.d.cts.map
|