@tanstack/table-core 9.0.0-beta.5 → 9.0.0-beta.50
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/aggregation/aggregationFeature.cjs +39 -0
- package/dist/features/aggregation/aggregationFeature.cjs.map +1 -0
- package/dist/features/aggregation/aggregationFeature.d.cts +10 -0
- package/dist/features/aggregation/aggregationFeature.d.ts +10 -0
- package/dist/features/aggregation/aggregationFeature.js +39 -0
- package/dist/features/aggregation/aggregationFeature.js.map +1 -0
- package/dist/features/aggregation/aggregationFeature.types.cjs +13 -0
- package/dist/features/aggregation/aggregationFeature.types.cjs.map +1 -0
- package/dist/features/aggregation/aggregationFeature.types.d.cts +195 -0
- package/dist/features/aggregation/aggregationFeature.types.d.ts +195 -0
- package/dist/features/aggregation/aggregationFeature.types.js +12 -0
- package/dist/features/aggregation/aggregationFeature.types.js.map +1 -0
- package/dist/features/aggregation/aggregationFeature.utils.cjs +212 -0
- package/dist/features/aggregation/aggregationFeature.utils.cjs.map +1 -0
- package/dist/features/aggregation/aggregationFeature.utils.d.cts +34 -0
- package/dist/features/aggregation/aggregationFeature.utils.d.ts +34 -0
- package/dist/features/aggregation/aggregationFeature.utils.js +206 -0
- package/dist/features/aggregation/aggregationFeature.utils.js.map +1 -0
- package/dist/features/aggregation/aggregationFns.cjs +246 -0
- package/dist/features/aggregation/aggregationFns.cjs.map +1 -0
- package/dist/features/aggregation/aggregationFns.d.cts +68 -0
- package/dist/features/aggregation/aggregationFns.d.ts +68 -0
- package/dist/features/aggregation/aggregationFns.js +235 -0
- package/dist/features/aggregation/aggregationFns.js.map +1 -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-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/aggregation/aggregationFeature.ts +60 -0
- package/src/features/aggregation/aggregationFeature.types.ts +339 -0
- package/src/features/aggregation/aggregationFeature.utils.ts +430 -0
- package/src/features/aggregation/aggregationFns.ts +345 -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-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":"columnPinningFeature.utils.js","names":[],"sources":["../../../src/features/column-pinning/columnPinningFeature.utils.ts"],"sourcesContent":["import {\n column_getIsVisible,\n row_getVisibleCells,\n row_getVisibleCellsByColumnId,\n table_getVisibleLeafColumns,\n} from '../column-visibility/columnVisibilityFeature.utils'\nimport { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { Header } from '../../types/Header'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Cell } from '../../types/Cell'\nimport type { Row } from '../../types/Row'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnPinningPosition,\n ColumnPinningState,\n} from './columnPinningFeature.types'\n\n// State\n\n/**\n * Creates the default column pinning state.\n *\n * Both pinning regions start empty. Reset APIs use this value when\n * `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const pinning = getDefaultColumnPinningState()\n * ```\n */\nexport function getDefaultColumnPinningState(): ColumnPinningState {\n return {\n left: [],\n right: [],\n }\n}\n\n// Column APIs\n\n/**\n * Moves this column's leaf column ids into a pinning region.\n *\n * Pinning a group column pins all of its leaves. The leaf ids are first removed\n * from both regions, then appended to the requested `'left'` or `'right'`\n * region. Passing `false` unpins them back to the center.\n *\n * @example\n * ```ts\n * column_pin(column, 'left')\n * ```\n */\nexport function column_pin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition,\n) {\n // Single pass: collect non-empty leaf-column ids.\n const leafColumns = column.getLeafColumns()\n const columnIds: Array<string> = []\n for (let i = 0; i < leafColumns.length; i++) {\n const id = leafColumns[i]!.id\n if (id) columnIds.push(id)\n }\n\n table_setColumnPinning(column.table, (old) => {\n if (position === 'right') {\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: [\n ...old.right.filter((d) => !columnIds.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n }\n\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n })\n}\n\n/**\n * Checks whether this column or any of its leaf columns can be pinned.\n *\n * Column-level `enablePinning` and table `enableColumnPinning` both default to\n * `true`; at least one leaf column must allow pinning.\n *\n * @example\n * ```ts\n * const canPin = column_getCanPin(column)\n * ```\n */\nexport function column_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const leafColumns = column.getLeafColumns() as Array<\n Column_Internal<TFeatures, TData, TValue>\n >\n\n return leafColumns.some(\n (leafColumn) =>\n (leafColumn.columnDef.enablePinning ?? true) &&\n (column.table.options.enableColumnPinning ?? true),\n )\n}\n\n/**\n * Reads this column's current pinning region.\n *\n * Group columns report `'left'` or `'right'` when any leaf column is pinned in\n * that region. Unpinned columns return `false`.\n *\n * @example\n * ```ts\n * const position = column_getIsPinned(column)\n * ```\n */\nexport function column_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ColumnPinningPosition | false {\n const leafColumnIds = column.getLeafColumns().map((d) => d.id)\n\n const { left, right } =\n column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const isLeft = leafColumnIds.some((d) => left.includes(d))\n const isRight = leafColumnIds.some((d) => right.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n}\n\n/**\n * Finds this column's index within its pinned region.\n *\n * Unpinned columns return `0`; pinned columns return their position in\n * `state.columnPinning.left` or `state.columnPinning.right`.\n *\n * @example\n * ```ts\n * const index = column_getPinnedIndex(column)\n * ```\n */\nexport function column_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const position = column_getIsPinned(column)\n\n return position\n ? (column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ??\n -1)\n : 0\n}\n\n// Row APIs\n\n/**\n * Collects visible cells whose columns are not pinned left or right.\n *\n * The result preserves the row's visible-cell order for center columns.\n *\n * @example\n * ```ts\n * const centerCells = row_getCenterVisibleCells(row)\n * ```\n */\nexport function row_getCenterVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getVisibleCells',\n row_getVisibleCells,\n )\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return allCells.filter((d) => !leftAndRight.includes(d.column.id))\n}\n\n/**\n * Collects visible cells for columns pinned to the left region.\n *\n * Cells are returned in `state.columnPinning.left` order and are marked with\n * `cell.position = 'left'`.\n *\n * @example\n * ```ts\n * const leftCells = row_getLeftVisibleCells(row)\n * ```\n */\nexport function row_getLeftVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const { left } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!left.length) return []\n const allVisibleCells = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n const cells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const columnId = left[i]!\n const cell = allVisibleCells[columnId]\n if (cell) {\n // Assign position property directly to preserve prototype chain\n ;(cell as any).position = 'left'\n cells.push(cell)\n }\n }\n return cells\n}\n\n/**\n * Collects visible cells for columns pinned to the right region.\n *\n * Cells are returned in `state.columnPinning.right` order and are marked with\n * `cell.position = 'right'`.\n *\n * @example\n * ```ts\n * const rightCells = row_getRightVisibleCells(row)\n * ```\n */\nexport function row_getRightVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const { right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!right.length) return [] as Array<Cell<TFeatures, TData, unknown>>\n const allVisibleCells = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n const cells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const columnId = right[i]!\n const cell = allVisibleCells[columnId]\n if (cell) {\n // Assign position property directly to preserve prototype chain\n ;(cell as any).position = 'right'\n cells.push(cell)\n }\n }\n return cells\n}\n\n// Table APIs\n\n/**\n * Routes a column pinning updater through the table's pinning change handler.\n *\n * The updater may be a next `{ left, right }` state or a function of the\n * previous state, matching the instance `table.setColumnPinning` behavior.\n *\n * @example\n * ```ts\n * table_setColumnPinning(table, (old) => ({ ...old, left: ['select'] }))\n * ```\n */\nexport function table_setColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnPinningState>,\n) {\n table.options.onColumnPinningChange?.(updater)\n}\n\n/**\n * Resets `columnPinning` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnPinning` when it\n * exists. Passing `true` ignores initial state and resets to empty left/right\n * arrays.\n *\n * @example\n * ```ts\n * table_resetColumnPinning(table)\n * table_resetColumnPinning(table, true)\n * ```\n */\nexport function table_resetColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnPinning(\n table,\n defaultState\n ? getDefaultColumnPinningState()\n : cloneState(\n table.initialState.columnPinning ?? getDefaultColumnPinningState(),\n ),\n )\n}\n\n/**\n * Checks whether any columns are pinned.\n *\n * Omit `position` to check both sides, or pass `'left'`/`'right'` to inspect a\n * single pinning region.\n *\n * @example\n * ```ts\n * const hasPinnedColumns = table_getIsSomeColumnsPinned(table)\n * ```\n */\nexport function table_getIsSomeColumnsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {\n const pinningState = table.atoms.columnPinning?.get()\n\n if (!position) {\n return Boolean(pinningState?.left.length || pinningState?.right.length)\n }\n return Boolean(pinningState?.[position].length)\n}\n\n// header groups\n\n/**\n * Builds header groups for visible columns pinned to the left region.\n *\n * The leaf columns are read in `state.columnPinning.left` order and then passed\n * through the same header-group builder as the unpinned table.\n *\n * @example\n * ```ts\n * const headerGroups = table_getLeftHeaderGroups(table)\n * ```\n */\nexport function table_getLeftHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumnsById = table.getAllLeafColumnsById() as Record<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns: Array<Column_Internal<TFeatures, TData, unknown>> =\n []\n for (let i = 0; i < left.length; i++) {\n const column = leafColumnsById[left[i]!]\n if (\n column &&\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)\n ) {\n orderedLeafColumns.push(column)\n }\n }\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')\n}\n\n/**\n * Builds header groups for visible columns pinned to the right region.\n *\n * The leaf columns are read in `state.columnPinning.right` order and then\n * passed through the same header-group builder as the unpinned table.\n *\n * @example\n * ```ts\n * const headerGroups = table_getRightHeaderGroups(table)\n * ```\n */\nexport function table_getRightHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumnsById = table.getAllLeafColumnsById() as Record<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns: Array<Column_Internal<TFeatures, TData, unknown>> =\n []\n for (let i = 0; i < right.length; i++) {\n const column = leafColumnsById[right[i]!]\n if (\n column &&\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)\n ) {\n orderedLeafColumns.push(column)\n }\n }\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')\n}\n\n/**\n * Builds header groups for visible columns that are not pinned.\n *\n * Left- and right-pinned column ids are removed from the visible leaf column\n * list before header groups are built for the center region.\n *\n * @example\n * ```ts\n * const headerGroups = table_getCenterHeaderGroups(table)\n * ```\n */\nexport function table_getCenterHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<HeaderGroup<TFeatures, TData>> {\n const allColumns = table.getAllColumns()\n let leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n\n leafColumns = leafColumns.filter(\n (column) => !leftAndRight.includes(column.id),\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n}\n\n// footer groups\n\n/**\n * Builds footer groups for the left pinned region.\n *\n * Footer groups reuse the left header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getLeftFooterGroups(table)\n * ```\n */\nexport function table_getLeftFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n/**\n * Builds footer groups for the right pinned region.\n *\n * Footer groups reuse the right header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getRightFooterGroups(table)\n * ```\n */\nexport function table_getRightFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n/**\n * Builds footer groups for the center, unpinned region.\n *\n * Footer groups reuse the center header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getCenterFooterGroups(table)\n * ```\n */\nexport function table_getCenterFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n// flat headers\n\n/**\n * Flattens every header from the left pinned header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getLeftFlatHeaders(table)\n * ```\n */\nexport function table_getLeftFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const leftHeaderGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < leftHeaderGroups.length; i++) {\n const headers = leftHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n/**\n * Flattens every header from the right pinned header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getRightFlatHeaders(table)\n * ```\n */\nexport function table_getRightFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rightHeaderGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < rightHeaderGroups.length; i++) {\n const headers = rightHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n/**\n * Flattens every header from the center header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getCenterFlatHeaders(table)\n * ```\n */\nexport function table_getCenterFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const centerHeaderGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < centerHeaderGroups.length; i++) {\n const headers = centerHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n// leaf headers\n\n/**\n * Collects leaf headers for the left pinned region.\n *\n * Parent headers are filtered out from the left flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getLeftLeafHeaders(table)\n * ```\n */\nexport function table_getLeftLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftFlatHeaders',\n table_getLeftFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n/**\n * Collects leaf headers for the right pinned region.\n *\n * Parent headers are filtered out from the right flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getRightLeafHeaders(table)\n * ```\n */\nexport function table_getRightLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightFlatHeaders',\n table_getRightFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n/**\n * Collects leaf headers for the center, unpinned region.\n *\n * Parent headers are filtered out from the center flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getCenterLeafHeaders(table)\n * ```\n */\nexport function table_getCenterLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterFlatHeaders',\n table_getCenterFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n// leaf columns\n\n/**\n * Resolves leaf columns pinned to the left region.\n *\n * The result follows `state.columnPinning.left` order and skips stale ids that\n * no longer correspond to a leaf column.\n *\n * @example\n * ```ts\n * const columns = table_getLeftLeafColumns(table)\n * ```\n */\nexport function table_getLeftLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leafColumnsById = table.getAllLeafColumnsById()\n const result: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const column = leafColumnsById[left[i]!]\n if (column) result.push(column)\n }\n return result\n}\n\n/**\n * Resolves leaf columns pinned to the right region.\n *\n * The result follows `state.columnPinning.right` order and skips stale ids that\n * no longer correspond to a leaf column.\n *\n * @example\n * ```ts\n * const columns = table_getRightLeafColumns(table)\n * ```\n */\nexport function table_getRightLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leafColumnsById = table.getAllLeafColumnsById()\n const result: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const column = leafColumnsById[right[i]!]\n if (column) result.push(column)\n }\n return result\n}\n\n/**\n * Resolves leaf columns that are not pinned to either side.\n *\n * Left- and right-pinned ids are removed from `table.getAllLeafColumns()`.\n *\n * @example\n * ```ts\n * const columns = table_getCenterLeafColumns(table)\n * ```\n */\nexport function table_getCenterLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))\n}\n\n/**\n * Resolves leaf columns for a requested pinning region.\n *\n * Pass `'left'`, `'center'`, or `'right'` for a partition, or pass `false` to\n * read all leaf columns without partitioning.\n *\n * @example\n * ```ts\n * const columns = table_getPinnedLeafColumns(table, 'center')\n * ```\n */\nexport function table_getPinnedLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: ColumnPinningPosition | 'center',\n) {\n return !position\n ? table.getAllLeafColumns()\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n )\n}\n\n// visible leaf columns\n\n/**\n * Resolves visible leaf columns pinned to the left region.\n *\n * Hidden pinned columns are filtered out after the left pin order is applied.\n *\n * @example\n * ```ts\n * const columns = table_getLeftVisibleLeafColumns(table)\n * ```\n */\nexport function table_getLeftVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns pinned to the right region.\n *\n * Hidden pinned columns are filtered out after the right pin order is applied.\n *\n * @example\n * ```ts\n * const columns = table_getRightVisibleLeafColumns(table)\n * ```\n */\nexport function table_getRightVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns that are not pinned.\n *\n * This is the center partition used by layouts that render pinned columns\n * separately from the scrollable middle region.\n *\n * @example\n * ```ts\n * const columns = table_getCenterVisibleLeafColumns(table)\n * ```\n */\nexport function table_getCenterVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns for a requested pinning region.\n *\n * Omit `position` to get all visible leaf columns, or pass `'left'`, `'center'`,\n * or `'right'` to get one partition.\n *\n * @example\n * ```ts\n * const columns = table_getPinnedVisibleLeafColumns(table, 'left')\n * ```\n */\nexport function table_getPinnedVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: ColumnPinningPosition | 'center',\n) {\n return !position\n ? callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftVisibleLeafColumns',\n table_getLeftVisibleLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightVisibleLeafColumns',\n table_getRightVisibleLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterVisibleLeafColumns',\n table_getCenterVisibleLeafColumns,\n )\n}\n"],"mappings":"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CX,mBACE,OACA,sBACA,wBACF,IACA,aAAa,UACX,mBACE,OACA,uBACA,yBACF,IACA,mBACE,OACA,wBACA,0BACF;AACV;;;;;;;;;;;AAcA,SAAgB,gCAGd,OAAyC;CACzC,OAAO,mBACL,OACA,sBACA,wBACF,CAAC,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACF;;;;;;;;;;;AAYA,SAAgB,iCAGd,OAAyC;CACzC,OAAO,mBACL,OACA,uBACA,yBACF,CAAC,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACF;;;;;;;;;;;;AAaA,SAAgB,kCAGd,OAAyC;CACzC,OAAO,mBACL,OACA,wBACA,0BACF,CAAC,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACF;;;;;;;;;;;;AAaA,SAAgB,kCAId,OACA,UACA;CACA,OAAO,CAAC,WACJ,mBACE,OACA,yBACA,2BACF,IACA,aAAa,SACX,mBACE,OACA,6BACA,+BACF,IACA,aAAa,UACX,mBACE,OACA,8BACA,gCACF,IACA,mBACE,OACA,+BACA,iCACF;AACV"}
|
|
1
|
+
{"version":3,"file":"columnPinningFeature.utils.js","names":[],"sources":["../../../src/features/column-pinning/columnPinningFeature.utils.ts"],"sourcesContent":["import {\n column_getIsVisible,\n row_getVisibleCells,\n row_getVisibleCellsByColumnId,\n table_getVisibleLeafColumns,\n} from '../column-visibility/columnVisibilityFeature.utils'\nimport { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { Header } from '../../types/Header'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Cell } from '../../types/Cell'\nimport type { Row } from '../../types/Row'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column, Column_Internal } from '../../types/Column'\nimport type {\n ColumnPinningPosition,\n ColumnPinningState,\n} from './columnPinningFeature.types'\n\n// State\n\n/**\n * Creates the default column pinning state.\n *\n * Both pinning regions start empty. Reset APIs use this value when\n * `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const pinning = getDefaultColumnPinningState()\n * ```\n */\nexport function getDefaultColumnPinningState(): ColumnPinningState {\n return {\n start: [],\n end: [],\n }\n}\n\n// Column APIs\n\n/**\n * Moves this column's leaf column ids into a pinning region.\n *\n * Pinning a group column pins all of its leaves. The leaf ids are first removed\n * from both regions, then appended to the requested `'start'` or `'end'`\n * region. Passing `false` unpins them back to the center.\n *\n * `start` and `end` are logical positions. In LTR languages/layouts, `start`\n * usually corresponds to left and `end` to right. In RTL languages/layouts,\n * `start` usually corresponds to right and `end` to left.\n *\n * @example\n * ```ts\n * column_pin(column, 'start')\n * ```\n */\nexport function column_pin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition,\n) {\n // Single pass: collect non-empty leaf-column ids.\n const leafColumns = column.getLeafColumns()\n const columnIds: Array<string> = []\n for (let i = 0; i < leafColumns.length; i++) {\n const id = leafColumns[i]!.id\n if (id) columnIds.push(id)\n }\n\n table_setColumnPinning(column.table, (old) => {\n if (position === 'end') {\n return {\n start: old.start.filter((d) => !columnIds.includes(d)),\n end: [...old.end.filter((d) => !columnIds.includes(d)), ...columnIds],\n }\n }\n\n if (position === 'start') {\n return {\n start: [\n ...old.start.filter((d) => !columnIds.includes(d)),\n ...columnIds,\n ],\n end: old.end.filter((d) => !columnIds.includes(d)),\n }\n }\n\n return {\n start: old.start.filter((d) => !columnIds.includes(d)),\n end: old.end.filter((d) => !columnIds.includes(d)),\n }\n })\n}\n\n/**\n * Checks whether this column or any of its leaf columns can be pinned.\n *\n * Column-level `enablePinning` and table `enableColumnPinning` both default to\n * `true`; at least one leaf column must allow pinning.\n *\n * @example\n * ```ts\n * const canPin = column_getCanPin(column)\n * ```\n */\nexport function column_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const leafColumns = column.getLeafColumns() as Array<\n Column_Internal<TFeatures, TData, TValue>\n >\n\n return leafColumns.some(\n (leafColumn) =>\n (leafColumn.columnDef.enablePinning ?? true) &&\n (column.table.options.enableColumnPinning ?? true),\n )\n}\n\n/**\n * Reads this column's current pinning region.\n *\n * Group columns report `'start'` or `'end'` when any leaf column is pinned in\n * that region. Unpinned columns return `false`.\n *\n * `start` and `end` are logical positions. In LTR languages/layouts, `start`\n * usually corresponds to left and `end` to right. In RTL languages/layouts,\n * `start` usually corresponds to right and `end` to left.\n *\n * @example\n * ```ts\n * const position = column_getIsPinned(column)\n * ```\n */\nexport function column_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ColumnPinningPosition | false {\n const leafColumns = column.getLeafColumns()\n\n const { start, end } =\n column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n for (let i = 0; i < leafColumns.length; i++) {\n if (start.includes(leafColumns[i]!.id)) {\n return 'start'\n }\n }\n for (let i = 0; i < leafColumns.length; i++) {\n if (end.includes(leafColumns[i]!.id)) {\n return 'end'\n }\n }\n return false\n}\n\n/**\n * Finds this column's index within its pinned region.\n *\n * Unpinned columns return `0`; pinned columns return their position in\n * `state.columnPinning.start` or `state.columnPinning.end`.\n *\n * @example\n * ```ts\n * const index = column_getPinnedIndex(column)\n * ```\n */\nexport function column_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const position = column_getIsPinned(column)\n\n return position\n ? (column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ??\n -1)\n : 0\n}\n\n// Row APIs\n\n/**\n * Collects visible cells whose columns are not pinned start or end.\n *\n * The result preserves the row's visible-cell order for center columns.\n *\n * @example\n * ```ts\n * const centerCells = row_getCenterVisibleCells(row)\n * ```\n */\nexport function row_getCenterVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getVisibleCells',\n row_getVisibleCells,\n )\n const { start, end } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!start.length && !end.length) {\n return allCells\n }\n const startAndEnd: Array<string> = [...start, ...end]\n return allCells.filter((d) => !startAndEnd.includes(d.column.id))\n}\n\n/**\n * Collects visible cells for columns pinned to the start region.\n *\n * Cells are returned in `state.columnPinning.start` order and are marked with\n * `cell.position = 'start'`.\n *\n * @example\n * ```ts\n * const startCells = row_getStartVisibleCells(row)\n * ```\n */\nexport function row_getStartVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const { start } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!start.length) return []\n const allVisibleCells = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n const cells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < start.length; i++) {\n const columnId = start[i]!\n const cell = allVisibleCells[columnId]\n if (cell) {\n // Assign position property directly to preserve prototype chain\n ;(cell as any).position = 'start'\n cells.push(cell)\n }\n }\n return cells\n}\n\n/**\n * Collects visible cells for columns pinned to the end region.\n *\n * Cells are returned in `state.columnPinning.end` order and are marked with\n * `cell.position = 'end'`.\n *\n * @example\n * ```ts\n * const endCells = row_getEndVisibleCells(row)\n * ```\n */\nexport function row_getEndVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const { end } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!end.length) return [] as Array<Cell<TFeatures, TData, unknown>>\n const allVisibleCells = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n const cells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < end.length; i++) {\n const columnId = end[i]!\n const cell = allVisibleCells[columnId]\n if (cell) {\n // Assign position property directly to preserve prototype chain\n ;(cell as any).position = 'end'\n cells.push(cell)\n }\n }\n return cells\n}\n\n// Table APIs\n\n/**\n * Routes a column pinning updater through the table's pinning change handler.\n *\n * The updater may be a next `{ start, end }` state or a function of the\n * previous state, matching the instance `table.setColumnPinning` behavior.\n *\n * @example\n * ```ts\n * table_setColumnPinning(table, (old) => ({ ...old, start: ['select'] }))\n * ```\n */\nexport function table_setColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnPinningState>,\n) {\n table.options.onColumnPinningChange?.(updater)\n}\n\n/**\n * Resets `columnPinning` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnPinning` when it\n * exists. Passing `true` ignores initial state and resets to empty start/end\n * arrays.\n *\n * @example\n * ```ts\n * table_resetColumnPinning(table)\n * table_resetColumnPinning(table, true)\n * ```\n */\nexport function table_resetColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnPinning(\n table,\n defaultState\n ? getDefaultColumnPinningState()\n : cloneState(\n table.initialState.columnPinning ?? getDefaultColumnPinningState(),\n ),\n )\n}\n\n/**\n * Checks whether any columns are pinned.\n *\n * Omit `position` to check both sides, or pass `'start'`/`'end'` to inspect a\n * single pinning region.\n *\n * @example\n * ```ts\n * const hasPinnedColumns = table_getIsSomeColumnsPinned(table)\n * ```\n */\nexport function table_getIsSomeColumnsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {\n const pinningState = table.atoms.columnPinning?.get()\n\n if (!position) {\n return Boolean(pinningState?.start.length || pinningState?.end.length)\n }\n return Boolean(pinningState?.[position].length)\n}\n\n// header groups\n\n/**\n * Builds header groups for visible columns pinned to the start region.\n *\n * The leaf columns are read in `state.columnPinning.start` order and then passed\n * through the same header-group builder as the unpinned table.\n *\n * @example\n * ```ts\n * const headerGroups = table_getStartHeaderGroups(table)\n * ```\n */\nexport function table_getStartHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumnsById = table.getAllLeafColumnsById()\n const { start } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns: Array<Column<TFeatures, TData, unknown>> = []\n for (let i = 0; i < start.length; i++) {\n const column = leafColumnsById[start[i]!]\n if (\n column &&\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)\n ) {\n orderedLeafColumns.push(column)\n }\n }\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'start')\n}\n\n/**\n * Builds header groups for visible columns pinned to the end region.\n *\n * The leaf columns are read in `state.columnPinning.end` order and then\n * passed through the same header-group builder as the unpinned table.\n *\n * @example\n * ```ts\n * const headerGroups = table_getEndHeaderGroups(table)\n * ```\n */\nexport function table_getEndHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumnsById = table.getAllLeafColumnsById()\n const { end } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns: Array<Column<TFeatures, TData, unknown>> = []\n for (let i = 0; i < end.length; i++) {\n const column = leafColumnsById[end[i]!]\n if (\n column &&\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)\n ) {\n orderedLeafColumns.push(column)\n }\n }\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'end')\n}\n\n/**\n * Builds header groups for visible columns that are not pinned.\n *\n * Start- and end-pinned column ids are removed from the visible leaf column\n * list before header groups are built for the center region.\n *\n * @example\n * ```ts\n * const headerGroups = table_getCenterHeaderGroups(table)\n * ```\n */\nexport function table_getCenterHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<HeaderGroup<TFeatures, TData>> {\n const allColumns = table.getAllColumns()\n let leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n const { start, end } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (start.length || end.length) {\n const startAndEnd: Array<string> = [...start, ...end]\n leafColumns = leafColumns.filter(\n (column) => !startAndEnd.includes(column.id),\n )\n }\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n}\n\n// footer groups\n\n/**\n * Builds footer groups for the start pinned region.\n *\n * Footer groups reuse the start header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getStartFooterGroups(table)\n * ```\n */\nexport function table_getStartFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getStartHeaderGroups',\n table_getStartHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n/**\n * Builds footer groups for the end pinned region.\n *\n * Footer groups reuse the end header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getEndFooterGroups(table)\n * ```\n */\nexport function table_getEndFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getEndHeaderGroups',\n table_getEndHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n/**\n * Builds footer groups for the center, unpinned region.\n *\n * Footer groups reuse the center header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getCenterFooterGroups(table)\n * ```\n */\nexport function table_getCenterFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n// flat headers\n\n/**\n * Flattens every header from the start pinned header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getStartFlatHeaders(table)\n * ```\n */\nexport function table_getStartFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const leftHeaderGroups = callMemoOrStaticFn(\n table,\n 'getStartHeaderGroups',\n table_getStartHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < leftHeaderGroups.length; i++) {\n const headers = leftHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n/**\n * Flattens every header from the end pinned header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getEndFlatHeaders(table)\n * ```\n */\nexport function table_getEndFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rightHeaderGroups = callMemoOrStaticFn(\n table,\n 'getEndHeaderGroups',\n table_getEndHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < rightHeaderGroups.length; i++) {\n const headers = rightHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n/**\n * Flattens every header from the center header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getCenterFlatHeaders(table)\n * ```\n */\nexport function table_getCenterFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const centerHeaderGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < centerHeaderGroups.length; i++) {\n const headers = centerHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n// leaf headers\n\n/**\n * Collects leaf headers for the start pinned region.\n *\n * Parent headers are filtered out from the start flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getStartLeafHeaders(table)\n * ```\n */\nexport function table_getStartLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getStartFlatHeaders',\n table_getStartFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n/**\n * Collects leaf headers for the end pinned region.\n *\n * Parent headers are filtered out from the end flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getEndLeafHeaders(table)\n * ```\n */\nexport function table_getEndLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getEndFlatHeaders',\n table_getEndFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n/**\n * Collects leaf headers for the center, unpinned region.\n *\n * Parent headers are filtered out from the center flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getCenterLeafHeaders(table)\n * ```\n */\nexport function table_getCenterLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterFlatHeaders',\n table_getCenterFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n// leaf columns\n\n/**\n * Resolves leaf columns pinned to the start region.\n *\n * The result follows `state.columnPinning.start` order and skips stale ids that\n * no longer correspond to a leaf column.\n *\n * @example\n * ```ts\n * const columns = table_getStartLeafColumns(table)\n * ```\n */\nexport function table_getStartLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { start } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leafColumnsById = table.getAllLeafColumnsById()\n const result: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < start.length; i++) {\n const column = leafColumnsById[start[i]!]\n if (column) result.push(column)\n }\n return result\n}\n\n/**\n * Resolves leaf columns pinned to the end region.\n *\n * The result follows `state.columnPinning.end` order and skips stale ids that\n * no longer correspond to a leaf column.\n *\n * @example\n * ```ts\n * const columns = table_getEndLeafColumns(table)\n * ```\n */\nexport function table_getEndLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { end } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leafColumnsById = table.getAllLeafColumnsById()\n const result: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < end.length; i++) {\n const column = leafColumnsById[end[i]!]\n if (column) result.push(column)\n }\n return result\n}\n\n/**\n * Resolves leaf columns that are not pinned to either logical side.\n *\n * Start- and end-pinned ids are removed from `table.getAllLeafColumns()`.\n *\n * @example\n * ```ts\n * const columns = table_getCenterLeafColumns(table)\n * ```\n */\nexport function table_getCenterLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { start, end } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!start.length && !end.length) {\n return table.getAllLeafColumns()\n }\n const startAndEnd: Array<string> = [...start, ...end]\n return table.getAllLeafColumns().filter((d) => !startAndEnd.includes(d.id))\n}\n\n/**\n * Resolves leaf columns for a requested pinning region.\n *\n * Pass `'start'`, `'center'`, or `'end'` for a partition, or pass `false` to\n * read all leaf columns without partitioning.\n *\n * @example\n * ```ts\n * const columns = table_getPinnedLeafColumns(table, 'center')\n * ```\n */\nexport function table_getPinnedLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: ColumnPinningPosition | 'center',\n) {\n return !position\n ? table.getAllLeafColumns()\n : position === 'start'\n ? callMemoOrStaticFn(\n table,\n 'getStartLeafColumns',\n table_getStartLeafColumns,\n )\n : position === 'end'\n ? callMemoOrStaticFn(\n table,\n 'getEndLeafColumns',\n table_getEndLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n )\n}\n\n// visible leaf columns\n\n/**\n * Resolves visible leaf columns pinned to the start region.\n *\n * Hidden pinned columns are filtered out after the start pin order is applied.\n *\n * @example\n * ```ts\n * const columns = table_getStartVisibleLeafColumns(table)\n * ```\n */\nexport function table_getStartVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getStartLeafColumns',\n table_getStartLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns pinned to the end region.\n *\n * Hidden pinned columns are filtered out after the end pin order is applied.\n *\n * @example\n * ```ts\n * const columns = table_getEndVisibleLeafColumns(table)\n * ```\n */\nexport function table_getEndVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getEndLeafColumns',\n table_getEndLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns that are not pinned.\n *\n * This is the center partition used by layouts that render pinned columns\n * separately from the scrollable middle region.\n *\n * @example\n * ```ts\n * const columns = table_getCenterVisibleLeafColumns(table)\n * ```\n */\nexport function table_getCenterVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns for a requested pinning region.\n *\n * Omit `position` to get all visible leaf columns, or pass `'start'`, `'center'`,\n * or `'end'` to get one partition.\n *\n * @example\n * ```ts\n * const columns = table_getPinnedVisibleLeafColumns(table, 'start')\n * ```\n */\nexport function table_getPinnedVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: ColumnPinningPosition | 'center',\n) {\n return !position\n ? callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n : position === 'start'\n ? callMemoOrStaticFn(\n table,\n 'getStartVisibleLeafColumns',\n table_getStartVisibleLeafColumns,\n )\n : position === 'end'\n ? callMemoOrStaticFn(\n table,\n 'getEndVisibleLeafColumns',\n table_getEndVisibleLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterVisibleLeafColumns',\n table_getCenterVisibleLeafColumns,\n )\n}\n"],"mappings":"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"}
|
|
@@ -46,11 +46,8 @@ interface Table_ColumnResizing {
|
|
|
46
46
|
resetHeaderSizeInfo: (defaultState?: boolean) => void;
|
|
47
47
|
/**
|
|
48
48
|
* Updates transient resize interaction state with a next state or updater function.
|
|
49
|
-
*
|
|
50
|
-
* The lowercase `c` in this API name matches the current generated v9 table
|
|
51
|
-
* API for the `columnResizing` state slice.
|
|
52
49
|
*/
|
|
53
|
-
|
|
50
|
+
setColumnResizing: (updater: Updater<columnResizingState>) => void;
|
|
54
51
|
}
|
|
55
52
|
interface ColumnDef_ColumnResizing {
|
|
56
53
|
/**
|
|
@@ -46,11 +46,8 @@ interface Table_ColumnResizing {
|
|
|
46
46
|
resetHeaderSizeInfo: (defaultState?: boolean) => void;
|
|
47
47
|
/**
|
|
48
48
|
* Updates transient resize interaction state with a next state or updater function.
|
|
49
|
-
*
|
|
50
|
-
* The lowercase `c` in this API name matches the current generated v9 table
|
|
51
|
-
* API for the `columnResizing` state slice.
|
|
52
49
|
*/
|
|
53
|
-
|
|
50
|
+
setColumnResizing: (updater: Updater<columnResizingState>) => void;
|
|
54
51
|
}
|
|
55
52
|
interface ColumnDef_ColumnResizing {
|
|
56
53
|
/**
|
|
@@ -48,8 +48,7 @@ function column_getCanResize(column) {
|
|
|
48
48
|
* ```
|
|
49
49
|
*/
|
|
50
50
|
function column_getIsResizing(column) {
|
|
51
|
-
|
|
52
|
-
return ((_column$table$atoms$c = column.table.atoms.columnResizing) === null || _column$table$atoms$c === void 0 || (_column$table$atoms$c = _column$table$atoms$c.get()) === null || _column$table$atoms$c === void 0 ? void 0 : _column$table$atoms$c.isResizingColumn) === column.id;
|
|
51
|
+
return column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id;
|
|
53
52
|
}
|
|
54
53
|
/**
|
|
55
54
|
* Creates the pointer/touch start handler for resizing a header.
|
|
@@ -67,56 +66,90 @@ function header_getResizeHandler(header, _contextDocument) {
|
|
|
67
66
|
const column = header.table.getColumn(header.column.id);
|
|
68
67
|
const canResize = column_getCanResize(column);
|
|
69
68
|
return (event) => {
|
|
70
|
-
var _persist;
|
|
71
69
|
if (!canResize) return;
|
|
72
|
-
|
|
70
|
+
event.persist?.();
|
|
73
71
|
if (isTouchStartEvent(event)) {
|
|
74
72
|
if (event.touches.length > 1) return;
|
|
75
73
|
}
|
|
76
74
|
const startSize = require_columnSizingFeature_utils.header_getSize(header);
|
|
77
75
|
const columnSizingStart = header.getLeafHeaders().map((leafHeader) => [leafHeader.column.id, require_columnSizingFeature_utils.column_getSize(leafHeader.column)]);
|
|
78
76
|
const clientX = isTouchStartEvent(event) ? Math.round(event.touches[0].clientX) : event.clientX;
|
|
79
|
-
const newColumnSizing =
|
|
77
|
+
const newColumnSizing = require_utils.makeObjectMap();
|
|
80
78
|
const updateOffset = (eventType, clientXPos) => {
|
|
81
79
|
if (typeof clientXPos !== "number") return;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
80
|
+
const table = column.table;
|
|
81
|
+
const isCommit = table.options.columnResizeMode === "onChange" || eventType === "end";
|
|
82
|
+
table._reactivity.batch(() => {
|
|
83
|
+
table_setColumnResizing(table, (old) => {
|
|
84
|
+
const deltaDirection = table.options.columnResizeDirection === "rtl" ? -1 : 1;
|
|
85
|
+
const deltaOffset = (clientXPos - (old.startOffset ?? 0)) * deltaDirection;
|
|
86
|
+
const startSize = old.startSize ?? 0;
|
|
87
|
+
const deltaPercentage = Math.max(startSize > 0 ? deltaOffset / startSize : 0, -.999999);
|
|
88
|
+
if (isCommit) {
|
|
89
|
+
const columnSizingStart = old.columnSizingStart;
|
|
90
|
+
for (let i = 0; i < columnSizingStart.length; i++) {
|
|
91
|
+
const entry = columnSizingStart[i];
|
|
92
|
+
const headerSize = entry[1];
|
|
93
|
+
newColumnSizing[entry[0]] = Math.round(Math.max(headerSize > 0 ? headerSize + headerSize * deltaPercentage : deltaOffset / columnSizingStart.length, 0) * 100) / 100;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
...old,
|
|
98
|
+
deltaOffset,
|
|
99
|
+
deltaPercentage
|
|
100
|
+
};
|
|
89
101
|
});
|
|
90
|
-
|
|
91
|
-
...old,
|
|
92
|
-
deltaOffset,
|
|
93
|
-
deltaPercentage
|
|
94
|
-
};
|
|
102
|
+
if (isCommit) require_columnSizingFeature_utils.table_setColumnSizing(table, (old) => Object.assign(require_utils.makeObjectMap(), old, newColumnSizing));
|
|
95
103
|
});
|
|
96
|
-
if (column.table.options.columnResizeMode === "onChange" || eventType === "end") require_columnSizingFeature_utils.table_setColumnSizing(column.table, (old) => ({
|
|
97
|
-
...old,
|
|
98
|
-
...newColumnSizing
|
|
99
|
-
}));
|
|
100
104
|
};
|
|
101
|
-
|
|
105
|
+
let moveRafId = null;
|
|
106
|
+
let hasPendingMove = false;
|
|
107
|
+
let latestMoveX;
|
|
108
|
+
const flushMove = () => {
|
|
109
|
+
if (hasPendingMove) {
|
|
110
|
+
hasPendingMove = false;
|
|
111
|
+
updateOffset("move", latestMoveX);
|
|
112
|
+
moveRafId = requestAnimationFrame(flushMove);
|
|
113
|
+
} else moveRafId = null;
|
|
114
|
+
};
|
|
115
|
+
const onMove = (clientXPos) => {
|
|
116
|
+
latestMoveX = clientXPos;
|
|
117
|
+
if (typeof requestAnimationFrame !== "function") {
|
|
118
|
+
updateOffset("move", clientXPos);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (moveRafId !== null) {
|
|
122
|
+
hasPendingMove = true;
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
updateOffset("move", clientXPos);
|
|
126
|
+
moveRafId = requestAnimationFrame(flushMove);
|
|
127
|
+
};
|
|
102
128
|
const onEnd = (clientXPos) => {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
129
|
+
if (moveRafId !== null) {
|
|
130
|
+
cancelAnimationFrame(moveRafId);
|
|
131
|
+
moveRafId = null;
|
|
132
|
+
hasPendingMove = false;
|
|
133
|
+
}
|
|
134
|
+
column.table._reactivity.batch(() => {
|
|
135
|
+
updateOffset("end", clientXPos ?? latestMoveX);
|
|
136
|
+
table_setColumnResizing(column.table, (old) => ({
|
|
137
|
+
...old,
|
|
138
|
+
isResizingColumn: false,
|
|
139
|
+
startOffset: null,
|
|
140
|
+
startSize: null,
|
|
141
|
+
deltaOffset: null,
|
|
142
|
+
deltaPercentage: null,
|
|
143
|
+
columnSizingStart: []
|
|
144
|
+
}));
|
|
145
|
+
});
|
|
113
146
|
};
|
|
114
147
|
const contextDocument = _contextDocument || typeof document !== "undefined" ? document : null;
|
|
115
148
|
const mouseEvents = {
|
|
116
149
|
moveHandler: (e) => onMove(e.clientX),
|
|
117
150
|
upHandler: (e) => {
|
|
118
|
-
contextDocument
|
|
119
|
-
contextDocument
|
|
151
|
+
contextDocument?.removeEventListener("mousemove", mouseEvents.moveHandler);
|
|
152
|
+
contextDocument?.removeEventListener("mouseup", mouseEvents.upHandler);
|
|
120
153
|
onEnd(e.clientX);
|
|
121
154
|
}
|
|
122
155
|
};
|
|
@@ -130,23 +163,31 @@ function header_getResizeHandler(header, _contextDocument) {
|
|
|
130
163
|
return false;
|
|
131
164
|
},
|
|
132
165
|
upHandler: (e) => {
|
|
133
|
-
|
|
134
|
-
contextDocument === null || contextDocument === void 0 || contextDocument.removeEventListener("touchmove", touchEvents.moveHandler);
|
|
135
|
-
contextDocument === null || contextDocument === void 0 || contextDocument.removeEventListener("touchend", touchEvents.upHandler);
|
|
166
|
+
removeTouchEvents();
|
|
136
167
|
if (e.cancelable) {
|
|
137
168
|
e.preventDefault();
|
|
138
169
|
e.stopPropagation();
|
|
139
170
|
}
|
|
140
|
-
onEnd(
|
|
171
|
+
onEnd(e.touches[0]?.clientX);
|
|
172
|
+
},
|
|
173
|
+
cancelHandler: () => {
|
|
174
|
+
removeTouchEvents();
|
|
175
|
+
onEnd();
|
|
141
176
|
}
|
|
142
177
|
};
|
|
178
|
+
const removeTouchEvents = () => {
|
|
179
|
+
contextDocument?.removeEventListener("touchmove", touchEvents.moveHandler);
|
|
180
|
+
contextDocument?.removeEventListener("touchend", touchEvents.upHandler);
|
|
181
|
+
contextDocument?.removeEventListener("touchcancel", touchEvents.cancelHandler);
|
|
182
|
+
};
|
|
143
183
|
const passiveIfSupported = passiveEventSupported() ? { passive: false } : false;
|
|
144
184
|
if (isTouchStartEvent(event)) {
|
|
145
|
-
contextDocument
|
|
146
|
-
contextDocument
|
|
185
|
+
contextDocument?.addEventListener("touchmove", touchEvents.moveHandler, passiveIfSupported);
|
|
186
|
+
contextDocument?.addEventListener("touchend", touchEvents.upHandler, passiveIfSupported);
|
|
187
|
+
contextDocument?.addEventListener("touchcancel", touchEvents.cancelHandler, passiveIfSupported);
|
|
147
188
|
} else {
|
|
148
|
-
contextDocument
|
|
149
|
-
contextDocument
|
|
189
|
+
contextDocument?.addEventListener("mousemove", mouseEvents.moveHandler, passiveIfSupported);
|
|
190
|
+
contextDocument?.addEventListener("mouseup", mouseEvents.upHandler, passiveIfSupported);
|
|
150
191
|
}
|
|
151
192
|
table_setColumnResizing(column.table, (old) => ({
|
|
152
193
|
...old,
|
|
@@ -171,8 +212,7 @@ function header_getResizeHandler(header, _contextDocument) {
|
|
|
171
212
|
* ```
|
|
172
213
|
*/
|
|
173
214
|
function table_setColumnResizing(table, updater) {
|
|
174
|
-
|
|
175
|
-
(_table$options$onColu = (_table$options = table.options).onColumnResizingChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
|
|
215
|
+
table.options.onColumnResizingChange?.(updater);
|
|
176
216
|
}
|
|
177
217
|
/**
|
|
178
218
|
* Resets `columnResizing` to the configured initial state or feature default.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnResizingFeature.utils.cjs","names":["header_getSize","column_getSize","cloneState"],"sources":["../../../src/features/column-resizing/columnResizingFeature.utils.ts"],"sourcesContent":["import {\n column_getSize,\n header_getSize,\n table_setColumnSizing,\n} from '../column-sizing/columnSizingFeature.utils'\nimport { cloneState } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from '../column-sizing/columnSizingFeature.types'\nimport type { columnResizingState } from './columnResizingFeature.types'\n\n/**\n * Creates the default transient column resizing state.\n *\n * The feature default represents no active drag interaction. Reset APIs use\n * this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const resizeInfo = getDefaultColumnResizingState()\n * ```\n */\nexport function getDefaultColumnResizingState(): columnResizingState {\n return {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n }\n}\n\n/**\n * Checks whether this column can start a resize interaction.\n *\n * Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n * `true`.\n *\n * @example\n * ```ts\n * const canResize = column_getCanResize(column)\n * ```\n */\nexport function column_getCanResize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (column.table.options.enableColumnResizing ?? true)\n )\n}\n\n/**\n * Checks whether this column is the active column resize target.\n *\n * The value is read from `state.columnResizing.isResizingColumn`.\n *\n * @example\n * ```ts\n * const isResizing = column_getIsResizing(column)\n * ```\n */\nexport function column_getIsResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id\n )\n}\n\n/**\n * Creates the pointer/touch start handler for resizing a header.\n *\n * The handler records starting sizes for all leaf headers, tracks drag deltas,\n * writes transient resize info, and commits column sizes on change or drag end\n * depending on `columnResizeMode`.\n *\n * @example\n * ```ts\n * const onMouseDown = header_getResizeHandler(header)\n * ```\n */\nexport function header_getResizeHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>, _contextDocument?: Document) {\n const column = header.table.getColumn(header.column.id)!\n const canResize = column_getCanResize(column)\n\n return (event: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(event as any).persist?.()\n\n if (isTouchStartEvent(event)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (event.touches.length > 1) {\n return\n }\n }\n\n const startSize = header_getSize(header)\n\n const columnSizingStart: Array<[string, number]> = header\n .getLeafHeaders()\n .map((leafHeader) => [\n leafHeader.column.id,\n column_getSize(leafHeader.column),\n ])\n\n const clientX = isTouchStartEvent(event)\n ? Math.round(event.touches[0]!.clientX)\n : (event as MouseEvent).clientX\n\n const newColumnSizing: ColumnSizingState = {}\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n table_setColumnResizing(column.table, (old) => {\n const deltaDirection =\n column.table.options.columnResizeDirection === 'rtl' ? -1 : 1\n const deltaOffset =\n (clientXPos - (old.startOffset ?? 0)) * deltaDirection\n const startSize = old.startSize ?? 0\n const deltaPercentage = Math.max(\n startSize > 0 ? deltaOffset / startSize : 0,\n -0.999999,\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / old.columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n column.table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table_setColumnSizing(column.table, (old) => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) => updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const contextDocument =\n _contextDocument || typeof document !== 'undefined' ? document : null\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n contextDocument?.removeEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n )\n contextDocument?.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (touchEvent: TouchEvent) => {\n if (touchEvent.cancelable) {\n touchEvent.preventDefault()\n touchEvent.stopPropagation()\n }\n onMove(touchEvent.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n contextDocument?.removeEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n )\n contextDocument?.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(event)) {\n contextDocument?.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported,\n )\n } else {\n contextDocument?.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported,\n )\n }\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n}\n\n/**\n * Routes a transient column resizing updater through the table's resize handler.\n *\n * This state tracks the active drag interaction; committed widths live in\n * `columnSizing`.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\n * ```\n */\nexport function table_setColumnResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<columnResizingState>,\n) {\n table.options.onColumnResizingChange?.(updater)\n}\n\n/**\n * Resets `columnResizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnResizing` when\n * it exists. Passing `true` ignores initial state and resets to the no-drag\n * default state.\n *\n * @example\n * ```ts\n * table_resetHeaderSizeInfo(table)\n * table_resetHeaderSizeInfo(table, true)\n * ```\n */\nexport function table_resetHeaderSizeInfo<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnResizing(\n table,\n defaultState\n ? getDefaultColumnResizingState()\n : cloneState(\n table.initialState.columnResizing ?? getDefaultColumnResizingState(),\n ),\n )\n}\n\nlet passiveSupported: boolean | null = null\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with\n * `passive: false` only when the environment understands passive options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n/**\n * Narrows an unknown event to a `touchstart` event.\n *\n * Column resizing uses this before reading touch coordinates and installing\n * touch-specific listeners.\n *\n * @example\n * ```ts\n * const isTouch = isTouchStartEvent(event)\n * ```\n */\nexport function isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnResizingFeature.utils.cjs","names":["header_getSize","column_getSize","makeObjectMap","cloneState"],"sources":["../../../src/features/column-resizing/columnResizingFeature.utils.ts"],"sourcesContent":["import {\n column_getSize,\n header_getSize,\n table_setColumnSizing,\n} from '../column-sizing/columnSizingFeature.utils'\nimport { cloneState, makeObjectMap } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from '../column-sizing/columnSizingFeature.types'\nimport type { columnResizingState } from './columnResizingFeature.types'\n\n/**\n * Creates the default transient column resizing state.\n *\n * The feature default represents no active drag interaction. Reset APIs use\n * this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const resizeInfo = getDefaultColumnResizingState()\n * ```\n */\nexport function getDefaultColumnResizingState(): columnResizingState {\n return {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n }\n}\n\n/**\n * Checks whether this column can start a resize interaction.\n *\n * Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n * `true`.\n *\n * @example\n * ```ts\n * const canResize = column_getCanResize(column)\n * ```\n */\nexport function column_getCanResize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (column.table.options.enableColumnResizing ?? true)\n )\n}\n\n/**\n * Checks whether this column is the active column resize target.\n *\n * The value is read from `state.columnResizing.isResizingColumn`.\n *\n * @example\n * ```ts\n * const isResizing = column_getIsResizing(column)\n * ```\n */\nexport function column_getIsResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id\n )\n}\n\n/**\n * Creates the pointer/touch start handler for resizing a header.\n *\n * The handler records starting sizes for all leaf headers, tracks drag deltas,\n * writes transient resize info, and commits column sizes on change or drag end\n * depending on `columnResizeMode`.\n *\n * @example\n * ```ts\n * const onMouseDown = header_getResizeHandler(header)\n * ```\n */\nexport function header_getResizeHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>, _contextDocument?: Document) {\n const column = header.table.getColumn(header.column.id)!\n const canResize = column_getCanResize(column)\n\n return (event: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(event as any).persist?.()\n\n if (isTouchStartEvent(event)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (event.touches.length > 1) {\n return\n }\n }\n\n const startSize = header_getSize(header)\n\n const columnSizingStart: Array<[string, number]> = header\n .getLeafHeaders()\n .map((leafHeader) => [\n leafHeader.column.id,\n column_getSize(leafHeader.column),\n ])\n\n const clientX = isTouchStartEvent(event)\n ? Math.round(event.touches[0]!.clientX)\n : (event as MouseEvent).clientX\n\n const newColumnSizing: ColumnSizingState = makeObjectMap()\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n const table = column.table\n const isCommit =\n table.options.columnResizeMode === 'onChange' || eventType === 'end'\n\n // one notification flush per tick instead of two\n table._reactivity.batch(() => {\n table_setColumnResizing(table, (old) => {\n const deltaDirection =\n table.options.columnResizeDirection === 'rtl' ? -1 : 1\n const deltaOffset =\n (clientXPos - (old.startOffset ?? 0)) * deltaDirection\n const startSize = old.startSize ?? 0\n const deltaPercentage = Math.max(\n startSize > 0 ? deltaOffset / startSize : 0,\n -0.999999,\n )\n\n // new sizes are only read at commit and are recomputed from\n // absolute positions each time, so skip them on onEnd-mode moves\n if (isCommit) {\n const columnSizingStart = old.columnSizingStart\n for (let i = 0; i < columnSizingStart.length; i++) {\n const entry = columnSizingStart[i]!\n const headerSize = entry[1]\n newColumnSizing[entry[0]] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n }\n }\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (isCommit) {\n table_setColumnSizing(table, (old) =>\n Object.assign(makeObjectMap<number>(), old, newColumnSizing),\n )\n }\n })\n }\n\n // Pointer devices can report at several times the display refresh rate,\n // and every update between frames is overwritten by the next one. Apply\n // the first move of a frame immediately, then coalesce the rest into one\n // update per animation frame.\n let moveRafId: number | null = null\n let hasPendingMove = false\n let latestMoveX: number | undefined\n\n const flushMove = () => {\n if (hasPendingMove) {\n hasPendingMove = false\n updateOffset('move', latestMoveX)\n moveRafId = requestAnimationFrame(flushMove)\n } else {\n moveRafId = null\n }\n }\n\n const onMove = (clientXPos?: number) => {\n latestMoveX = clientXPos\n if (typeof requestAnimationFrame !== 'function') {\n updateOffset('move', clientXPos)\n return\n }\n if (moveRafId !== null) {\n hasPendingMove = true\n return\n }\n updateOffset('move', clientXPos)\n moveRafId = requestAnimationFrame(flushMove)\n }\n\n const onEnd = (clientXPos?: number) => {\n if (moveRafId !== null) {\n cancelAnimationFrame(moveRafId)\n moveRafId = null\n hasPendingMove = false\n }\n\n // batch the 'end' commit and the reset into one notification flush\n column.table._reactivity.batch(() => {\n // touchend events carry no touch position, so fall back to the last\n // observed move position for the final commit\n updateOffset('end', clientXPos ?? latestMoveX)\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n })\n }\n\n const contextDocument =\n _contextDocument || typeof document !== 'undefined' ? document : null\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n contextDocument?.removeEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n )\n contextDocument?.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (touchEvent: TouchEvent) => {\n if (touchEvent.cancelable) {\n touchEvent.preventDefault()\n touchEvent.stopPropagation()\n }\n onMove(touchEvent.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n removeTouchEvents()\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n // the browser fires touchcancel instead of touchend when it takes over\n // the gesture (system gesture, scroll takeover, tab switch); without\n // this the non-passive touchmove listener stays on the document forever\n cancelHandler: () => {\n removeTouchEvents()\n onEnd()\n },\n }\n\n const removeTouchEvents = () => {\n contextDocument?.removeEventListener('touchmove', touchEvents.moveHandler)\n contextDocument?.removeEventListener('touchend', touchEvents.upHandler)\n contextDocument?.removeEventListener(\n 'touchcancel',\n touchEvents.cancelHandler,\n )\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(event)) {\n contextDocument?.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'touchcancel',\n touchEvents.cancelHandler,\n passiveIfSupported,\n )\n } else {\n contextDocument?.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported,\n )\n }\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n}\n\n/**\n * Routes a transient column resizing updater through the table's resize handler.\n *\n * This state tracks the active drag interaction; committed widths live in\n * `columnSizing`.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\n * ```\n */\nexport function table_setColumnResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<columnResizingState>,\n) {\n table.options.onColumnResizingChange?.(updater)\n}\n\n/**\n * Resets `columnResizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnResizing` when\n * it exists. Passing `true` ignores initial state and resets to the no-drag\n * default state.\n *\n * @example\n * ```ts\n * table_resetHeaderSizeInfo(table)\n * table_resetHeaderSizeInfo(table, true)\n * ```\n */\nexport function table_resetHeaderSizeInfo<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnResizing(\n table,\n defaultState\n ? getDefaultColumnResizingState()\n : cloneState(\n table.initialState.columnResizing ?? getDefaultColumnResizingState(),\n ),\n )\n}\n\nlet passiveSupported: boolean | null = null\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with\n * `passive: false` only when the environment understands passive options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n/**\n * Narrows an unknown event to a `touchstart` event.\n *\n * Column resizing uses this before reading touch coordinates and installing\n * touch-specific listeners.\n *\n * @example\n * ```ts\n * const isTouch = isTouchStartEvent(event)\n * ```\n */\nexport function isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CellData, RowData, Updater } from "../../types/type-utils.cjs";
|
|
2
2
|
import { columnResizingState } from "./columnResizingFeature.types.cjs";
|
|
3
3
|
import { Header } from "../../types/Header.cjs";
|
|
4
|
-
import {
|
|
4
|
+
import { Table } from "../../types/Table.cjs";
|
|
5
|
+
import { Column } from "../../types/Column.cjs";
|
|
5
6
|
import { TableFeatures } from "../../types/TableFeatures.cjs";
|
|
6
|
-
import { Table_Internal } from "../../types/Table.cjs";
|
|
7
7
|
|
|
8
8
|
//#region src/features/column-resizing/columnResizingFeature.utils.d.ts
|
|
9
9
|
/**
|
|
@@ -29,7 +29,7 @@ declare function getDefaultColumnResizingState(): columnResizingState;
|
|
|
29
29
|
* const canResize = column_getCanResize(column)
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
-
declare function column_getCanResize<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column:
|
|
32
|
+
declare function column_getCanResize<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): boolean;
|
|
33
33
|
/**
|
|
34
34
|
* Checks whether this column is the active column resize target.
|
|
35
35
|
*
|
|
@@ -40,7 +40,7 @@ declare function column_getCanResize<TFeatures extends TableFeatures, TData exte
|
|
|
40
40
|
* const isResizing = column_getIsResizing(column)
|
|
41
41
|
* ```
|
|
42
42
|
*/
|
|
43
|
-
declare function column_getIsResizing<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column:
|
|
43
|
+
declare function column_getIsResizing<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): boolean;
|
|
44
44
|
/**
|
|
45
45
|
* Creates the pointer/touch start handler for resizing a header.
|
|
46
46
|
*
|
|
@@ -65,7 +65,7 @@ declare function header_getResizeHandler<TFeatures extends TableFeatures, TData
|
|
|
65
65
|
* table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))
|
|
66
66
|
* ```
|
|
67
67
|
*/
|
|
68
|
-
declare function table_setColumnResizing<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
68
|
+
declare function table_setColumnResizing<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, updater: Updater<columnResizingState>): void;
|
|
69
69
|
/**
|
|
70
70
|
* Resets `columnResizing` to the configured initial state or feature default.
|
|
71
71
|
*
|
|
@@ -79,7 +79,7 @@ declare function table_setColumnResizing<TFeatures extends TableFeatures, TData
|
|
|
79
79
|
* table_resetHeaderSizeInfo(table, true)
|
|
80
80
|
* ```
|
|
81
81
|
*/
|
|
82
|
-
declare function table_resetHeaderSizeInfo<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
82
|
+
declare function table_resetHeaderSizeInfo<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, defaultState?: boolean): void;
|
|
83
83
|
/**
|
|
84
84
|
* Detects whether the current environment supports passive event listeners.
|
|
85
85
|
*
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CellData, RowData, Updater } from "../../types/type-utils.js";
|
|
2
2
|
import { columnResizingState } from "./columnResizingFeature.types.js";
|
|
3
3
|
import { Header } from "../../types/Header.js";
|
|
4
|
-
import {
|
|
4
|
+
import { Table } from "../../types/Table.js";
|
|
5
|
+
import { Column } from "../../types/Column.js";
|
|
5
6
|
import { TableFeatures } from "../../types/TableFeatures.js";
|
|
6
|
-
import { Table_Internal } from "../../types/Table.js";
|
|
7
7
|
|
|
8
8
|
//#region src/features/column-resizing/columnResizingFeature.utils.d.ts
|
|
9
9
|
/**
|
|
@@ -29,7 +29,7 @@ declare function getDefaultColumnResizingState(): columnResizingState;
|
|
|
29
29
|
* const canResize = column_getCanResize(column)
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
-
declare function column_getCanResize<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column:
|
|
32
|
+
declare function column_getCanResize<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): boolean;
|
|
33
33
|
/**
|
|
34
34
|
* Checks whether this column is the active column resize target.
|
|
35
35
|
*
|
|
@@ -40,7 +40,7 @@ declare function column_getCanResize<TFeatures extends TableFeatures, TData exte
|
|
|
40
40
|
* const isResizing = column_getIsResizing(column)
|
|
41
41
|
* ```
|
|
42
42
|
*/
|
|
43
|
-
declare function column_getIsResizing<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column:
|
|
43
|
+
declare function column_getIsResizing<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): boolean;
|
|
44
44
|
/**
|
|
45
45
|
* Creates the pointer/touch start handler for resizing a header.
|
|
46
46
|
*
|
|
@@ -65,7 +65,7 @@ declare function header_getResizeHandler<TFeatures extends TableFeatures, TData
|
|
|
65
65
|
* table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))
|
|
66
66
|
* ```
|
|
67
67
|
*/
|
|
68
|
-
declare function table_setColumnResizing<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
68
|
+
declare function table_setColumnResizing<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, updater: Updater<columnResizingState>): void;
|
|
69
69
|
/**
|
|
70
70
|
* Resets `columnResizing` to the configured initial state or feature default.
|
|
71
71
|
*
|
|
@@ -79,7 +79,7 @@ declare function table_setColumnResizing<TFeatures extends TableFeatures, TData
|
|
|
79
79
|
* table_resetHeaderSizeInfo(table, true)
|
|
80
80
|
* ```
|
|
81
81
|
*/
|
|
82
|
-
declare function table_resetHeaderSizeInfo<TFeatures extends TableFeatures, TData extends RowData>(table:
|
|
82
|
+
declare function table_resetHeaderSizeInfo<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, defaultState?: boolean): void;
|
|
83
83
|
/**
|
|
84
84
|
* Detects whether the current environment supports passive event listeners.
|
|
85
85
|
*
|