@tanstack/table-core 9.0.0-beta.2 → 9.0.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/cells/constructCell.d.cts +3 -3
- package/dist/core/cells/constructCell.d.ts +3 -3
- package/dist/core/cells/coreCellsFeature.cjs +11 -20
- package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
- package/dist/core/cells/coreCellsFeature.d.cts +4 -12
- package/dist/core/cells/coreCellsFeature.d.ts +4 -12
- package/dist/core/cells/coreCellsFeature.js +12 -20
- package/dist/core/cells/coreCellsFeature.js.map +1 -1
- package/dist/core/cells/coreCellsFeature.types.d.cts +6 -6
- package/dist/core/cells/coreCellsFeature.types.d.ts +6 -6
- package/dist/core/cells/coreCellsFeature.utils.d.cts +3 -3
- package/dist/core/cells/coreCellsFeature.utils.d.ts +3 -3
- package/dist/core/columns/constructColumn.cjs +5 -0
- package/dist/core/columns/constructColumn.cjs.map +1 -1
- package/dist/core/columns/constructColumn.d.cts +3 -3
- package/dist/core/columns/constructColumn.d.ts +3 -3
- package/dist/core/columns/constructColumn.js +5 -0
- package/dist/core/columns/constructColumn.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.cjs +59 -68
- package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
- package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
- package/dist/core/columns/coreColumnsFeature.js +60 -68
- package/dist/core/columns/coreColumnsFeature.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
- package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
- package/dist/core/columns/coreColumnsFeature.utils.cjs +2 -2
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
- package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
- package/dist/core/columns/coreColumnsFeature.utils.js +3 -3
- package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
- package/dist/core/coreFeatures.cjs.map +1 -1
- package/dist/core/coreFeatures.d.cts +1 -1
- package/dist/core/coreFeatures.d.ts +1 -1
- package/dist/core/coreFeatures.js.map +1 -1
- package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
- package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
- package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/constructHeader.d.cts +2 -2
- package/dist/core/headers/constructHeader.d.ts +2 -2
- package/dist/core/headers/coreHeadersFeature.cjs +44 -53
- package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
- package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
- package/dist/core/headers/coreHeadersFeature.js +45 -53
- package/dist/core/headers/coreHeadersFeature.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
- package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
- package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
- package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
- package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
- package/dist/core/row-models/coreRowModelsFeature.js +18 -26
- package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.types.d.cts +6 -16
- package/dist/core/row-models/coreRowModelsFeature.types.d.ts +6 -16
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +14 -14
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +14 -14
- package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
- package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
- package/dist/core/row-models/createCoreRowModel.cjs +2 -3
- package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
- package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
- package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
- package/dist/core/row-models/createCoreRowModel.js +3 -4
- package/dist/core/row-models/createCoreRowModel.js.map +1 -1
- package/dist/core/rows/constructRow.cjs +3 -2
- package/dist/core/rows/constructRow.cjs.map +1 -1
- package/dist/core/rows/constructRow.d.cts +2 -2
- package/dist/core/rows/constructRow.d.ts +2 -2
- package/dist/core/rows/constructRow.js +4 -2
- package/dist/core/rows/constructRow.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.cjs +27 -36
- package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.d.cts +4 -12
- package/dist/core/rows/coreRowsFeature.d.ts +4 -12
- package/dist/core/rows/coreRowsFeature.js +28 -36
- package/dist/core/rows/coreRowsFeature.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +6 -6
- package/dist/core/rows/coreRowsFeature.types.d.ts +6 -6
- package/dist/core/rows/coreRowsFeature.utils.cjs +3 -3
- package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +3 -3
- package/dist/core/rows/coreRowsFeature.utils.d.ts +3 -3
- package/dist/core/rows/coreRowsFeature.utils.js +4 -4
- package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
- package/dist/core/table/constructTable.cjs +21 -6
- package/dist/core/table/constructTable.cjs.map +1 -1
- package/dist/core/table/constructTable.d.cts +1 -1
- package/dist/core/table/constructTable.d.ts +1 -1
- package/dist/core/table/constructTable.js +21 -6
- package/dist/core/table/constructTable.js.map +1 -1
- package/dist/core/table/coreTablesFeature.cjs +7 -16
- package/dist/core/table/coreTablesFeature.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.d.cts +4 -12
- package/dist/core/table/coreTablesFeature.d.ts +4 -12
- package/dist/core/table/coreTablesFeature.js +8 -16
- package/dist/core/table/coreTablesFeature.js.map +1 -1
- package/dist/core/table/coreTablesFeature.types.d.cts +28 -16
- package/dist/core/table/coreTablesFeature.types.d.ts +28 -16
- package/dist/core/table/coreTablesFeature.utils.cjs +33 -12
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +8 -6
- package/dist/core/table/coreTablesFeature.utils.d.ts +8 -6
- package/dist/core/table/coreTablesFeature.utils.js +33 -12
- package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
- package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
- package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
- package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
- package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +8 -8
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +8 -8
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
- package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
- package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
- package/dist/features/column-filtering/columnFilteringFeature.js +42 -54
- package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +12 -12
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +12 -12
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs +12 -7
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
- package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
- package/dist/features/column-filtering/createFilteredRowModel.js +13 -8
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
- package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
- package/dist/features/column-filtering/filterRowsUtils.js +3 -2
- package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
- package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
- package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
- package/dist/features/column-grouping/columnGroupingFeature.js +59 -70
- package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +28 -21
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +28 -21
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +4 -4
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +11 -11
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +11 -11
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +5 -5
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs +9 -7
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
- package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
- package/dist/features/column-grouping/createGroupedRowModel.js +10 -8
- package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
- package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
- package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
- package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
- package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +9 -9
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +9 -9
- package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
- package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
- package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
- package/dist/features/column-pinning/columnPinningFeature.js +210 -221
- package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
- package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +31 -30
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +31 -30
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
- package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
- package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
- package/dist/features/column-resizing/columnResizingFeature.js +32 -43
- package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
- package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +2 -5
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
- package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
- package/dist/features/column-resizing/columnResizingFeature.utils.js +3 -6
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
- package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
- package/dist/features/column-sizing/columnSizingFeature.js +113 -125
- package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +11 -4
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +12 -12
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +12 -12
- package/dist/features/column-sizing/columnSizingFeature.utils.js +12 -5
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
- package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
- package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +12 -9
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +14 -14
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +14 -14
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +13 -10
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
- package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
- package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
- package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
- package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
- package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +10 -8
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -8
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
- package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
- package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
- package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
- package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +21 -12
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +22 -13
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.js +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
- package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
- package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
- package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
- package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
- package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
- package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
- package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
- package/dist/features/row-pinning/rowPinningFeature.js +56 -67
- package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
- package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs +2 -2
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
- package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
- package/dist/features/row-pinning/rowPinningFeature.utils.js +2 -2
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.cjs +108 -77
- package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
- package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
- package/dist/features/row-selection/rowSelectionFeature.js +110 -78
- package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.cts +13 -5
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +13 -5
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +76 -60
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +48 -23
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +48 -23
- package/dist/features/row-selection/rowSelectionFeature.utils.js +77 -62
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +5 -3
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
- package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
- package/dist/features/row-sorting/createSortedRowModel.js +6 -4
- package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
- package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
- package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
- package/dist/features/row-sorting/rowSortingFeature.js +46 -57
- package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.types.d.cts +24 -21
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +24 -21
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
- package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/fns/aggregationFns.cjs +18 -18
- package/dist/fns/aggregationFns.cjs.map +1 -1
- package/dist/fns/aggregationFns.d.cts +21 -19
- package/dist/fns/aggregationFns.d.ts +21 -19
- package/dist/fns/aggregationFns.js +18 -18
- package/dist/fns/aggregationFns.js.map +1 -1
- package/dist/fns/filterFns.cjs +51 -65
- package/dist/fns/filterFns.cjs.map +1 -1
- package/dist/fns/filterFns.d.cts +82 -28
- package/dist/fns/filterFns.d.ts +82 -28
- package/dist/fns/filterFns.js +51 -65
- package/dist/fns/filterFns.js.map +1 -1
- package/dist/fns/sortFns.cjs +18 -6
- package/dist/fns/sortFns.cjs.map +1 -1
- package/dist/fns/sortFns.d.cts +15 -13
- package/dist/fns/sortFns.d.ts +15 -13
- package/dist/fns/sortFns.js +18 -6
- package/dist/fns/sortFns.js.map +1 -1
- package/dist/helpers/columnHelper.cjs.map +1 -1
- package/dist/helpers/columnHelper.d.cts +2 -2
- package/dist/helpers/columnHelper.d.ts +2 -2
- package/dist/helpers/columnHelper.js.map +1 -1
- package/dist/helpers/metaHelper.cjs +30 -0
- package/dist/helpers/metaHelper.cjs.map +1 -0
- package/dist/helpers/metaHelper.d.cts +26 -0
- package/dist/helpers/metaHelper.d.ts +26 -0
- package/dist/helpers/metaHelper.js +29 -0
- package/dist/helpers/metaHelper.js.map +1 -0
- package/dist/helpers/tableFeatures.cjs +31 -3
- package/dist/helpers/tableFeatures.cjs.map +1 -1
- package/dist/helpers/tableFeatures.d.cts +33 -5
- package/dist/helpers/tableFeatures.d.ts +33 -5
- package/dist/helpers/tableFeatures.js +31 -3
- package/dist/helpers/tableFeatures.js.map +1 -1
- package/dist/index.cjs +4 -20
- package/dist/index.d.cts +50 -49
- package/dist/index.d.ts +50 -49
- package/dist/index.js +23 -22
- package/dist/static-functions.cjs +1 -0
- package/dist/static-functions.d.cts +2 -2
- package/dist/static-functions.d.ts +2 -2
- package/dist/static-functions.js +2 -2
- package/dist/store-reactivity-bindings.cjs +1 -1
- package/dist/store-reactivity-bindings.cjs.map +1 -1
- package/dist/store-reactivity-bindings.d.cts +1 -1
- package/dist/store-reactivity-bindings.d.ts +1 -1
- package/dist/store-reactivity-bindings.js +1 -1
- package/dist/store-reactivity-bindings.js.map +1 -1
- package/dist/types/Cell.d.cts +4 -9
- package/dist/types/Cell.d.ts +4 -9
- package/dist/types/Column.d.cts +11 -18
- package/dist/types/Column.d.ts +11 -18
- package/dist/types/ColumnDef.d.cts +23 -14
- package/dist/types/ColumnDef.d.ts +23 -14
- package/dist/types/Header.d.cts +5 -10
- package/dist/types/Header.d.ts +5 -10
- package/dist/types/HeaderGroup.d.cts +4 -9
- package/dist/types/HeaderGroup.d.ts +4 -9
- package/dist/types/Row.d.cts +7 -12
- package/dist/types/Row.d.ts +7 -12
- package/dist/types/RowModel.d.cts +12 -28
- package/dist/types/RowModel.d.ts +12 -28
- package/dist/types/RowModelFns.d.cts +6 -11
- package/dist/types/RowModelFns.d.ts +6 -11
- package/dist/types/Table.d.cts +26 -36
- package/dist/types/Table.d.ts +26 -36
- package/dist/types/TableFeatures.d.cts +328 -54
- package/dist/types/TableFeatures.d.ts +328 -54
- package/dist/types/TableOptions.d.cts +22 -17
- package/dist/types/TableOptions.d.ts +22 -17
- package/dist/types/TableState.d.cts +11 -16
- package/dist/types/TableState.d.ts +11 -16
- package/dist/utils.cjs +24 -2
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +23 -7
- package/dist/utils.d.ts +23 -7
- package/dist/utils.js +23 -3
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
- package/skills/column-definitions/SKILL.md +3 -6
- package/skills/column-layout/SKILL.md +0 -2
- package/skills/customizing-feature-behavior/SKILL.md +63 -56
- package/skills/filtering/SKILL.md +60 -42
- package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
- package/skills/grouping/SKILL.md +49 -54
- package/skills/migrate-v8-to-v9/SKILL.md +30 -33
- package/skills/pagination/SKILL.md +22 -20
- package/skills/row-expanding/SKILL.md +33 -25
- package/skills/row-pinning/SKILL.md +11 -7
- package/skills/row-selection/SKILL.md +0 -3
- package/skills/setup/SKILL.md +55 -65
- package/skills/sorting/SKILL.md +21 -21
- package/skills/state-management/SKILL.md +40 -25
- package/src/core/cells/coreCellsFeature.ts +17 -39
- package/src/core/cells/coreCellsFeature.types.ts +6 -6
- package/src/core/columns/constructColumn.ts +6 -0
- package/src/core/columns/coreColumnsFeature.ts +56 -83
- package/src/core/columns/coreColumnsFeature.types.ts +8 -8
- package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
- package/src/core/coreFeatures.ts +1 -1
- package/src/core/headers/buildHeaderGroups.ts +4 -2
- package/src/core/headers/coreHeadersFeature.ts +42 -64
- package/src/core/headers/coreHeadersFeature.types.ts +12 -12
- package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
- package/src/core/row-models/coreRowModelsFeature.ts +43 -64
- package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
- package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
- package/src/core/row-models/createCoreRowModel.ts +7 -6
- package/src/core/rows/constructRow.ts +3 -2
- package/src/core/rows/coreRowsFeature.ts +45 -72
- package/src/core/rows/coreRowsFeature.types.ts +8 -8
- package/src/core/rows/coreRowsFeature.utils.ts +4 -4
- package/src/core/table/constructTable.ts +50 -13
- package/src/core/table/coreTablesFeature.ts +13 -35
- package/src/core/table/coreTablesFeature.types.ts +40 -17
- package/src/core/table/coreTablesFeature.utils.ts +52 -18
- package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
- package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
- package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
- package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
- package/src/features/column-filtering/columnFilteringFeature.ts +61 -103
- package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
- package/src/features/column-filtering/createFilteredRowModel.ts +18 -17
- package/src/features/column-filtering/filterRowsUtils.ts +3 -2
- package/src/features/column-grouping/columnGroupingFeature.ts +83 -126
- package/src/features/column-grouping/columnGroupingFeature.types.ts +42 -34
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -2
- package/src/features/column-grouping/createGroupedRowModel.ts +17 -16
- package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
- package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
- package/src/features/column-pinning/columnPinningFeature.ts +268 -304
- package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
- package/src/features/column-pinning/columnPinningFeature.utils.ts +11 -19
- package/src/features/column-resizing/columnResizingFeature.ts +44 -78
- package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
- package/src/features/column-resizing/columnResizingFeature.utils.ts +5 -6
- package/src/features/column-sizing/columnSizingFeature.ts +115 -152
- package/src/features/column-sizing/columnSizingFeature.utils.ts +27 -5
- package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
- package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +31 -15
- package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
- package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +5 -3
- package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
- package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
- package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
- package/src/features/row-pagination/createPaginatedRowModel.ts +2 -2
- package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
- package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
- package/src/features/row-pinning/rowPinningFeature.ts +72 -104
- package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
- package/src/features/row-selection/rowSelectionFeature.ts +125 -135
- package/src/features/row-selection/rowSelectionFeature.types.ts +17 -7
- package/src/features/row-selection/rowSelectionFeature.utils.ts +144 -66
- package/src/features/row-sorting/createSortedRowModel.ts +12 -15
- package/src/features/row-sorting/rowSortingFeature.ts +73 -114
- package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
- package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
- package/src/fns/aggregationFns.ts +26 -42
- package/src/fns/filterFns.ts +237 -264
- package/src/fns/sortFns.ts +51 -29
- package/src/helpers/columnHelper.ts +4 -4
- package/src/helpers/metaHelper.ts +24 -0
- package/src/helpers/tableFeatures.ts +36 -5
- package/src/index.ts +1 -0
- package/src/store-reactivity-bindings.ts +1 -1
- package/src/types/Cell.ts +5 -21
- package/src/types/Column.ts +12 -26
- package/src/types/ColumnDef.ts +28 -18
- package/src/types/Header.ts +4 -20
- package/src/types/HeaderGroup.ts +7 -18
- package/src/types/Row.ts +6 -21
- package/src/types/RowModel.ts +15 -88
- package/src/types/RowModelFns.ts +9 -24
- package/src/types/Table.ts +54 -44
- package/src/types/TableFeatures.ts +402 -123
- package/src/types/TableOptions.ts +59 -21
- package/src/types/TableState.ts +5 -17
- package/src/utils.ts +40 -8
|
@@ -3,50 +3,39 @@ import { column_getCanResize, column_getIsResizing, getDefaultColumnResizingStat
|
|
|
3
3
|
|
|
4
4
|
//#region src/features/column-resizing/columnResizingFeature.ts
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
|
|
6
|
+
* Feature that adds column resizing state, options, and resize handlers.
|
|
9
7
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* The stock column resizing feature.
|
|
44
|
-
*
|
|
45
|
-
* Register this feature with `columnSizingFeature` to add resize interaction
|
|
46
|
-
* state and APIs for drag-based column resizing.
|
|
47
|
-
*/
|
|
48
|
-
const columnResizingFeature = constructColumnResizingFeature();
|
|
8
|
+
const columnResizingFeature = {
|
|
9
|
+
getInitialState: (initialState) => {
|
|
10
|
+
return {
|
|
11
|
+
columnResizing: getDefaultColumnResizingState(),
|
|
12
|
+
...initialState
|
|
13
|
+
};
|
|
14
|
+
},
|
|
15
|
+
getDefaultTableOptions: (table) => {
|
|
16
|
+
return {
|
|
17
|
+
columnResizeMode: "onEnd",
|
|
18
|
+
columnResizeDirection: "ltr",
|
|
19
|
+
onColumnResizingChange: makeStateUpdater("columnResizing", table)
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
assignColumnPrototype: (prototype, table) => {
|
|
23
|
+
assignPrototypeAPIs("columnResizingFeature", prototype, table, {
|
|
24
|
+
column_getCanResize: { fn: (column) => column_getCanResize(column) },
|
|
25
|
+
column_getIsResizing: { fn: (column) => column_getIsResizing(column) }
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
assignHeaderPrototype: (prototype, table) => {
|
|
29
|
+
assignPrototypeAPIs("columnResizingFeature", prototype, table, { header_getResizeHandler: { fn: (header, _contextDocument) => header_getResizeHandler(header, _contextDocument) } });
|
|
30
|
+
},
|
|
31
|
+
constructTableAPIs: (table) => {
|
|
32
|
+
assignTableAPIs("columnResizingFeature", table, {
|
|
33
|
+
table_setColumnResizing: { fn: (updater) => table_setColumnResizing(table, updater) },
|
|
34
|
+
table_resetHeaderSizeInfo: { fn: (defaultState) => table_resetHeaderSizeInfo(table, defaultState) }
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
49
38
|
|
|
50
39
|
//#endregion
|
|
51
|
-
export { columnResizingFeature
|
|
40
|
+
export { columnResizingFeature };
|
|
52
41
|
//# sourceMappingURL=columnResizingFeature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnResizingFeature.js","names":[],"sources":["../../../src/features/column-resizing/columnResizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanResize,\n column_getIsResizing,\n getDefaultColumnResizingState,\n header_getResizeHandler,\n table_resetHeaderSizeInfo,\n table_setColumnResizing,\n} from './columnResizingFeature.utils'\nimport type {
|
|
1
|
+
{"version":3,"file":"columnResizingFeature.js","names":[],"sources":["../../../src/features/column-resizing/columnResizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanResize,\n column_getIsResizing,\n getDefaultColumnResizingState,\n header_getResizeHandler,\n table_resetHeaderSizeInfo,\n table_setColumnResizing,\n} from './columnResizingFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column resizing state, options, and resize handlers.\n */\nexport const columnResizingFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnResizing: getDefaultColumnResizingState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnResizingChange: makeStateUpdater('columnResizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnResizingFeature', prototype, table, {\n column_getCanResize: {\n fn: (column) => column_getCanResize(column),\n },\n column_getIsResizing: {\n fn: (column) => column_getIsResizing(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnResizingFeature', prototype, table, {\n header_getResizeHandler: {\n fn: (header, _contextDocument) =>\n header_getResizeHandler(header, _contextDocument),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnResizingFeature', table, {\n table_setColumnResizing: {\n fn: (updater) => table_setColumnResizing(table, updater),\n },\n table_resetHeaderSizeInfo: {\n fn: (defaultState) => table_resetHeaderSizeInfo(table, defaultState),\n },\n })\n },\n}\n"],"mappings":";;;;;;;AAkBA,MAAa,wBAAsC;CACjD,kBAAkB,iBAAiB;EACjC,OAAO;GACL,gBAAgB,8BAA8B;GAC9C,GAAG;EACL;CACF;CAEA,yBAAyB,UAAU;EACjC,OAAO;GACL,kBAAkB;GAClB,uBAAuB;GACvB,wBAAwB,iBAAiB,kBAAkB,KAAK;EAClE;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,yBAAyB,WAAW,OAAO;GAC7D,qBAAqB,EACnB,KAAK,WAAW,oBAAoB,MAAM,EAC5C;GACA,sBAAsB,EACpB,KAAK,WAAW,qBAAqB,MAAM,EAC7C;EACF,CAAC;CACH;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,yBAAyB,WAAW,OAAO,EAC7D,yBAAyB,EACvB,KAAK,QAAQ,qBACX,wBAAwB,QAAQ,gBAAgB,EACpD,EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,gBAAgB,yBAAyB,OAAO;GAC9C,yBAAyB,EACvB,KAAK,YAAY,wBAAwB,OAAO,OAAO,EACzD;GACA,2BAA2B,EACzB,KAAK,iBAAiB,0BAA0B,OAAO,YAAY,EACrE;EACF,CAAC;CACH;AACF"}
|
|
@@ -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
|
/**
|
|
@@ -76,7 +76,7 @@ function header_getResizeHandler(header, _contextDocument) {
|
|
|
76
76
|
const startSize = require_columnSizingFeature_utils.header_getSize(header);
|
|
77
77
|
const columnSizingStart = header.getLeafHeaders().map((leafHeader) => [leafHeader.column.id, require_columnSizingFeature_utils.column_getSize(leafHeader.column)]);
|
|
78
78
|
const clientX = isTouchStartEvent(event) ? Math.round(event.touches[0].clientX) : event.clientX;
|
|
79
|
-
const newColumnSizing =
|
|
79
|
+
const newColumnSizing = require_utils.makeObjectMap();
|
|
80
80
|
const updateOffset = (eventType, clientXPos) => {
|
|
81
81
|
if (typeof clientXPos !== "number") return;
|
|
82
82
|
table_setColumnResizing(column.table, (old) => {
|
|
@@ -93,10 +93,7 @@ function header_getResizeHandler(header, _contextDocument) {
|
|
|
93
93
|
deltaPercentage
|
|
94
94
|
};
|
|
95
95
|
});
|
|
96
|
-
if (column.table.options.columnResizeMode === "onChange" || eventType === "end") require_columnSizingFeature_utils.table_setColumnSizing(column.table, (old) => (
|
|
97
|
-
...old,
|
|
98
|
-
...newColumnSizing
|
|
99
|
-
}));
|
|
96
|
+
if (column.table.options.columnResizeMode === "onChange" || eventType === "end") require_columnSizingFeature_utils.table_setColumnSizing(column.table, (old) => Object.assign(require_utils.makeObjectMap(), old, newColumnSizing));
|
|
100
97
|
};
|
|
101
98
|
const onMove = (clientXPos) => updateOffset("move", clientXPos);
|
|
102
99
|
const onEnd = (clientXPos) => {
|
|
@@ -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 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 Object.assign(makeObjectMap<number>(), old, 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,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
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cloneState } from "../../utils.js";
|
|
1
|
+
import { cloneState, makeObjectMap } from "../../utils.js";
|
|
2
2
|
import { column_getSize, header_getSize, table_setColumnSizing } from "../column-sizing/columnSizingFeature.utils.js";
|
|
3
3
|
|
|
4
4
|
//#region src/features/column-resizing/columnResizingFeature.utils.ts
|
|
@@ -76,7 +76,7 @@ function header_getResizeHandler(header, _contextDocument) {
|
|
|
76
76
|
const startSize = header_getSize(header);
|
|
77
77
|
const columnSizingStart = header.getLeafHeaders().map((leafHeader) => [leafHeader.column.id, column_getSize(leafHeader.column)]);
|
|
78
78
|
const clientX = isTouchStartEvent(event) ? Math.round(event.touches[0].clientX) : event.clientX;
|
|
79
|
-
const newColumnSizing =
|
|
79
|
+
const newColumnSizing = makeObjectMap();
|
|
80
80
|
const updateOffset = (eventType, clientXPos) => {
|
|
81
81
|
if (typeof clientXPos !== "number") return;
|
|
82
82
|
table_setColumnResizing(column.table, (old) => {
|
|
@@ -93,10 +93,7 @@ function header_getResizeHandler(header, _contextDocument) {
|
|
|
93
93
|
deltaPercentage
|
|
94
94
|
};
|
|
95
95
|
});
|
|
96
|
-
if (column.table.options.columnResizeMode === "onChange" || eventType === "end") table_setColumnSizing(column.table, (old) => (
|
|
97
|
-
...old,
|
|
98
|
-
...newColumnSizing
|
|
99
|
-
}));
|
|
96
|
+
if (column.table.options.columnResizeMode === "onChange" || eventType === "end") table_setColumnSizing(column.table, (old) => Object.assign(makeObjectMap(), old, newColumnSizing));
|
|
100
97
|
};
|
|
101
98
|
const onMove = (clientXPos) => updateOffset("move", clientXPos);
|
|
102
99
|
const onEnd = (clientXPos) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnResizingFeature.utils.js","names":[],"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.js","names":[],"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 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 Object.assign(makeObjectMap<number>(), old, 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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"}
|