@tanstack/table-core 9.0.0-beta.31 → 9.0.0-beta.34
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.cjs +1 -4
- package/dist/core/cells/constructCell.cjs.map +1 -1
- package/dist/core/cells/constructCell.d.cts +1 -1
- package/dist/core/cells/constructCell.d.ts +1 -1
- 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 +1 -1
- package/dist/core/cells/coreCellsFeature.types.d.ts +1 -1
- package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
- package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
- package/dist/core/columns/constructColumn.cjs +3 -9
- package/dist/core/columns/constructColumn.cjs.map +1 -1
- package/dist/core/columns/constructColumn.js +3 -9
- 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.utils.cjs +2 -6
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.js +2 -6
- package/dist/core/columns/coreColumnsFeature.utils.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.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.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.utils.cjs +2 -4
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.js +2 -4
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.types.d.cts +3 -3
- package/dist/core/row-models/coreRowModelsFeature.types.d.ts +3 -3
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +6 -24
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.js +6 -24
- 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 +2 -3
- package/dist/core/row-models/createCoreRowModel.js.map +1 -1
- package/dist/core/rows/constructRow.cjs +2 -8
- package/dist/core/rows/constructRow.cjs.map +1 -1
- package/dist/core/rows/constructRow.js +2 -8
- package/dist/core/rows/constructRow.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.cjs +4 -1
- package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.js +4 -1
- package/dist/core/rows/coreRowsFeature.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.ts +1 -1
- package/dist/core/rows/coreRowsFeature.utils.cjs +3 -4
- package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
- package/dist/core/rows/coreRowsFeature.utils.js +3 -4
- package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
- package/dist/core/table/constructTable.cjs +4 -10
- package/dist/core/table/constructTable.cjs.map +1 -1
- package/dist/core/table/constructTable.js +4 -10
- package/dist/core/table/constructTable.js.map +1 -1
- package/dist/experimental-worker-plugin.cjs +14 -0
- package/dist/experimental-worker-plugin.d.cts +5 -0
- package/dist/experimental-worker-plugin.d.ts +5 -0
- package/dist/experimental-worker-plugin.js +6 -0
- package/dist/features/column-faceting/columnFacetingFeature.cjs +12 -18
- package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.js +12 -18
- package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +7 -25
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +7 -25
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs +8 -14
- 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 +8 -14
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +10 -13
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +10 -13
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs +12 -18
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.cts +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.ts +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.js +12 -18
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.cjs +1 -4
- package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.js +1 -4
- package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +4 -4
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +4 -4
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +8 -13
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +2 -2
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +2 -2
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -13
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs +3 -7
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.d.cts +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.d.ts +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.js +3 -7
- package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.cjs +13 -19
- package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.js +13 -19
- package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +6 -11
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.js +6 -11
- package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.cjs +78 -114
- package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.js +78 -114
- package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.types.d.cts +1 -1
- package/dist/features/column-pinning/columnPinningFeature.types.d.ts +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs +15 -28
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +2 -2
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +2 -2
- package/dist/features/column-pinning/columnPinningFeature.utils.js +15 -28
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +12 -16
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.js +12 -16
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +24 -48
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.js +24 -48
- package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +11 -18
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.js +11 -18
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +25 -40
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.js +25 -40
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +3 -6
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +3 -6
- 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.utils.cjs +3 -5
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.js +3 -5
- 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 +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
- 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 +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +8 -15
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +8 -15
- 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 +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
- 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 +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +8 -14
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.js +8 -14
- 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.utils.cjs +7 -12
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.js +7 -12
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.cjs +30 -60
- package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.js +30 -60
- package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.cts +1 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +11 -18
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.js +12 -19
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +20 -14
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.d.cts +1 -1
- package/dist/features/row-sorting/createSortedRowModel.d.ts +1 -1
- package/dist/features/row-sorting/createSortedRowModel.js +21 -15
- package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.types.d.cts +2 -2
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +2 -2
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +10 -14
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.js +10 -14
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/flex-render.d.cts +1 -1
- package/dist/flex-render.d.ts +1 -1
- package/dist/fns/filterFns.cjs +8 -12
- package/dist/fns/filterFns.cjs.map +1 -1
- package/dist/fns/filterFns.js +8 -12
- package/dist/fns/filterFns.js.map +1 -1
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +18 -18
- package/dist/index.d.ts +18 -18
- package/dist/index.js +2 -2
- package/dist/store-reactivity-bindings.cjs +2 -2
- package/dist/store-reactivity-bindings.cjs.map +1 -1
- package/dist/store-reactivity-bindings.js +2 -2
- package/dist/store-reactivity-bindings.js.map +1 -1
- package/dist/types/Cell.d.cts +1 -1
- package/dist/types/Cell.d.ts +1 -1
- package/dist/types/Column.d.cts +7 -7
- package/dist/types/Column.d.ts +7 -7
- package/dist/types/ColumnDef.d.cts +6 -6
- package/dist/types/ColumnDef.d.ts +6 -6
- package/dist/types/Header.d.cts +1 -1
- package/dist/types/Header.d.ts +1 -1
- package/dist/types/Row.d.cts +2 -2
- package/dist/types/Row.d.ts +2 -2
- package/dist/types/RowModel.d.cts +4 -4
- package/dist/types/RowModel.d.ts +4 -4
- package/dist/types/RowModelFns.d.cts +2 -2
- package/dist/types/RowModelFns.d.ts +2 -2
- package/dist/types/Table.d.cts +9 -9
- package/dist/types/Table.d.ts +9 -9
- package/dist/types/TableFeatures.d.cts +4 -4
- package/dist/types/TableFeatures.d.ts +4 -4
- package/dist/types/TableOptions.d.cts +7 -7
- package/dist/types/TableOptions.d.ts +7 -7
- package/dist/types/TableState.d.cts +6 -6
- package/dist/types/TableState.d.ts +6 -6
- package/dist/utils.cjs +23 -12
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +6 -1
- package/dist/utils.d.ts +6 -1
- package/dist/utils.js +23 -13
- 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 +6 -2
- package/src/core/rows/coreRowsFeature.ts +1 -0
- package/src/experimental-worker-plugin.ts +22 -0
- package/src/features/row-selection/rowSelectionFeature.utils.ts +2 -1
- package/src/features/row-sorting/createSortedRowModel.ts +31 -10
- package/src/features/row-sorting/rowSortingFeature.utils.ts +2 -10
- package/src/utils.ts +21 -0
- 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 +117 -0
- package/src/worker/serializeRowModel.ts +80 -0
- package/src/worker/tableWorkerProtocol.ts +105 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnSizingFeature.utils.cjs","names":["makeObjectMap","hasOwn","callMemoOrStaticFn","table_getPinnedVisibleLeafColumns","cloneState","table_getLeftHeaderGroups","table_getCenterHeaderGroups","table_getRightHeaderGroups"],"sources":["../../../src/features/column-sizing/columnSizingFeature.utils.ts"],"sourcesContent":["import {\n table_getCenterHeaderGroups,\n table_getLeftHeaderGroups,\n table_getPinnedVisibleLeafColumns,\n table_getRightHeaderGroups,\n} from '../column-pinning/columnPinningFeature.utils'\nimport {\n callMemoOrStaticFn,\n cloneState,\n hasOwn,\n makeObjectMap,\n} from '../../utils'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\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 {\n ColumnOffsets,\n ColumnOffsetsByPosition,\n ColumnSizingState,\n} from './columnSizingFeature.types'\n\n/**\n * Creates the default committed column sizing state.\n *\n * The feature default is an empty map, so columns fall back to their column def\n * size or the built-in sizing defaults.\n *\n * @example\n * ```ts\n * const sizing = getDefaultColumnSizingState()\n * ```\n */\nexport function getDefaultColumnSizingState(): ColumnSizingState {\n return makeObjectMap()\n}\n\n/**\n * Creates the built-in sizing defaults for column definitions.\n *\n * Columns default to `size: 150`, `minSize: 20`, and\n * `maxSize: Number.MAX_SAFE_INTEGER` unless overridden by column definitions or\n * table defaults.\n *\n * @example\n * ```ts\n * const defaults = getDefaultColumnSizingColumnDef()\n * ```\n */\nexport function getDefaultColumnSizingColumnDef() {\n return {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n }\n}\n\n/**\n * Resolves a column's current pixel size.\n *\n * Committed `state.columnSizing[column.id]` wins over `columnDef.size`, then the\n * built-in default size. The result is clamped between min and max size.\n *\n * @example\n * ```ts\n * const width = column_getSize(column)\n * ```\n */\nexport function column_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n const defaultSizes = getDefaultColumnSizingColumnDef()\n const columnSizing = column.table.atoms.columnSizing?.get()\n const columnSize =\n columnSizing && hasOwn(columnSizing, column.id)\n ? columnSizing[column.id]\n : undefined\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultSizes.minSize,\n columnSize ?? column.columnDef.size ?? defaultSizes.size,\n ),\n column.columnDef.maxSize ?? defaultSizes.maxSize,\n )\n}\n\nfunction buildColumnOffsets<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(columns: Array<Column_Internal<TFeatures, TData, unknown>>): ColumnOffsets {\n const starts = makeObjectMap<number>()\n const afters = makeObjectMap<number>()\n const sizes = new Array<number>(columns.length)\n\n let start = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n const size = callMemoOrStaticFn(column, 'getSize', column_getSize)\n sizes[i] = size\n starts[column.id] = start\n start += size\n }\n\n let after = 0\n for (let i = columns.length - 1; i >= 0; i--) {\n afters[columns[i]!.id] = after\n after += sizes[i]!\n }\n\n return { starts, afters }\n}\n\n/**\n * Builds start and after offset maps for every visible leaf column, computed\n * once per pinning region plus the full visible list.\n *\n * A single table-level memo of this result backs all `column.getStart()` and\n * `column.getAfter()` calls with O(1) lookups.\n *\n * @example\n * ```ts\n * const offsets = table_getColumnOffsets(table)\n * const leftOffset = offsets.left.starts[column.id]\n * ```\n */\nexport function table_getColumnOffsets<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): ColumnOffsetsByPosition {\n return {\n all: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table) as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n center: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'center') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n left: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'left') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n right: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'right') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n }\n}\n\nfunction toOffsetsKey(\n position: ColumnPinningPosition | 'center' | undefined,\n): keyof ColumnOffsetsByPosition {\n return position === 'left'\n ? 'left'\n : position === 'right'\n ? 'right'\n : position === 'center'\n ? 'center'\n : 'all' // undefined | false use the full visible list\n}\n\n/**\n * Computes the offset from the start edge of a pinning region to this column.\n *\n * The value is the sum of all previous visible leaf column sizes in the\n * requested `'left'`, `'center'`, or `'right'` region.\n *\n * @example\n * ```ts\n * const leftOffset = column_getStart(column, 'left')\n * ```\n */\nexport function column_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n): number {\n const offsets = callMemoOrStaticFn(\n column.table,\n 'getColumnOffsets',\n table_getColumnOffsets,\n )\n return offsets[toOffsetsKey(position)].starts[column.id] ?? 0\n}\n\n/**\n * Computes the offset from the end edge of a pinning region after this column.\n *\n * The value is the sum of all following visible leaf column sizes in the\n * requested region.\n *\n * @example\n * ```ts\n * const rightOffset = column_getAfter(column, 'right')\n * ```\n */\nexport function column_getAfter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n): number {\n const offsets = callMemoOrStaticFn(\n column.table,\n 'getColumnOffsets',\n table_getColumnOffsets,\n )\n return offsets[toOffsetsKey(position)].afters[column.id] ?? 0\n}\n\n/**\n * Removes this column's committed size override.\n *\n * After reset, the column resolves size from `columnDef.size` or built-in\n * defaults again.\n *\n * @example\n * ```ts\n * column_resetSize(column)\n * ```\n */\nexport function column_resetSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n table_setColumnSizing(column.table, (old) => {\n const rest = makeObjectMap<number>()\n const columnIds = Object.keys(old)\n for (let i = 0; i < columnIds.length; i++) {\n const columnId = columnIds[i]!\n if (columnId !== column.id) {\n rest[columnId] = old[columnId]!\n }\n }\n return rest\n })\n}\n\n/**\n * Computes a header's rendered size from its leaf headers.\n *\n * Group headers sum the sizes of all descendant leaf columns. Leaf headers use\n * their column's current size.\n *\n * @example\n * ```ts\n * const width = header_getSize(header)\n * ```\n */\nexport function header_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>) {\n let sum = 0\n\n const recurse = (h: Header<TFeatures, TData, TValue>) => {\n if (h.subHeaders.length) {\n h.subHeaders.forEach(recurse)\n } else {\n sum += column_getSize(h.column)\n }\n }\n\n recurse(header)\n\n return sum\n}\n\n/**\n * Computes a header's offset from the start of its header group.\n *\n * The offset is the previous sibling header's start plus size, or `0` for the\n * first header in the group.\n *\n * @example\n * ```ts\n * const offset = header_getStart(header)\n * ```\n */\nexport function header_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>): number {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup?.headers[header.index - 1]\n if (prevSiblingHeader) {\n return (\n callMemoOrStaticFn(prevSiblingHeader, 'getStart', header_getStart) +\n callMemoOrStaticFn(prevSiblingHeader, 'getSize', header_getSize)\n )\n }\n }\n\n return 0\n}\n\n// Table APIs\n\n/**\n * Routes a committed column sizing updater through the table's sizing handler.\n *\n * The updater may be a next size map or a function of the previous map,\n * matching the instance `table.setColumnSizing` behavior.\n *\n * @example\n * ```ts\n * table_setColumnSizing(table, (old) => ({ ...old, age: 96 }))\n * ```\n */\nexport function table_setColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnSizingState>,\n) {\n table.options.onColumnSizingChange?.(updater)\n}\n\n/**\n * Resets `columnSizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnSizing` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetColumnSizing(table)\n * table_resetColumnSizing(table, true)\n * ```\n */\nexport function table_resetColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnSizing(\n table,\n defaultState\n ? makeObjectMap()\n : Object.assign(\n makeObjectMap<number>(),\n cloneState(table.initialState.columnSizing ?? {}),\n ),\n )\n}\n\n/**\n * Sums the rendered size of the full table header row.\n *\n * This includes left, center, and right columns in the main header group.\n *\n * @example\n * ```ts\n * const width = table_getTotalSize(table)\n * ```\n */\nexport function table_getTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the left pinned header region.\n *\n * An empty left pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getLeftTotalSize(table)\n * ```\n */\nexport function table_getLeftTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the center, unpinned header region.\n *\n * An empty center region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getCenterTotalSize(table)\n * ```\n */\nexport function table_getCenterTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the right pinned header region.\n *\n * An empty right pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getRightTotalSize(table)\n * ```\n */\nexport function table_getRightTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnSizingFeature.utils.cjs","names":["makeObjectMap","hasOwn","callMemoOrStaticFn","table_getPinnedVisibleLeafColumns","cloneState","table_getLeftHeaderGroups","table_getCenterHeaderGroups","table_getRightHeaderGroups"],"sources":["../../../src/features/column-sizing/columnSizingFeature.utils.ts"],"sourcesContent":["import {\n table_getCenterHeaderGroups,\n table_getLeftHeaderGroups,\n table_getPinnedVisibleLeafColumns,\n table_getRightHeaderGroups,\n} from '../column-pinning/columnPinningFeature.utils'\nimport {\n callMemoOrStaticFn,\n cloneState,\n hasOwn,\n makeObjectMap,\n} from '../../utils'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\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 {\n ColumnOffsets,\n ColumnOffsetsByPosition,\n ColumnSizingState,\n} from './columnSizingFeature.types'\n\n/**\n * Creates the default committed column sizing state.\n *\n * The feature default is an empty map, so columns fall back to their column def\n * size or the built-in sizing defaults.\n *\n * @example\n * ```ts\n * const sizing = getDefaultColumnSizingState()\n * ```\n */\nexport function getDefaultColumnSizingState(): ColumnSizingState {\n return makeObjectMap()\n}\n\n/**\n * Creates the built-in sizing defaults for column definitions.\n *\n * Columns default to `size: 150`, `minSize: 20`, and\n * `maxSize: Number.MAX_SAFE_INTEGER` unless overridden by column definitions or\n * table defaults.\n *\n * @example\n * ```ts\n * const defaults = getDefaultColumnSizingColumnDef()\n * ```\n */\nexport function getDefaultColumnSizingColumnDef() {\n return {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n }\n}\n\n/**\n * Resolves a column's current pixel size.\n *\n * Committed `state.columnSizing[column.id]` wins over `columnDef.size`, then the\n * built-in default size. The result is clamped between min and max size.\n *\n * @example\n * ```ts\n * const width = column_getSize(column)\n * ```\n */\nexport function column_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n const defaultSizes = getDefaultColumnSizingColumnDef()\n const columnSizing = column.table.atoms.columnSizing?.get()\n const columnSize =\n columnSizing && hasOwn(columnSizing, column.id)\n ? columnSizing[column.id]\n : undefined\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultSizes.minSize,\n columnSize ?? column.columnDef.size ?? defaultSizes.size,\n ),\n column.columnDef.maxSize ?? defaultSizes.maxSize,\n )\n}\n\nfunction buildColumnOffsets<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(columns: Array<Column_Internal<TFeatures, TData, unknown>>): ColumnOffsets {\n const starts = makeObjectMap<number>()\n const afters = makeObjectMap<number>()\n const sizes = new Array<number>(columns.length)\n\n let start = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n const size = callMemoOrStaticFn(column, 'getSize', column_getSize)\n sizes[i] = size\n starts[column.id] = start\n start += size\n }\n\n let after = 0\n for (let i = columns.length - 1; i >= 0; i--) {\n afters[columns[i]!.id] = after\n after += sizes[i]!\n }\n\n return { starts, afters }\n}\n\n/**\n * Builds start and after offset maps for every visible leaf column, computed\n * once per pinning region plus the full visible list.\n *\n * A single table-level memo of this result backs all `column.getStart()` and\n * `column.getAfter()` calls with O(1) lookups.\n *\n * @example\n * ```ts\n * const offsets = table_getColumnOffsets(table)\n * const leftOffset = offsets.left.starts[column.id]\n * ```\n */\nexport function table_getColumnOffsets<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): ColumnOffsetsByPosition {\n return {\n all: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table) as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n center: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'center') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n left: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'left') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n right: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'right') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n }\n}\n\nfunction toOffsetsKey(\n position: ColumnPinningPosition | 'center' | undefined,\n): keyof ColumnOffsetsByPosition {\n return position === 'left'\n ? 'left'\n : position === 'right'\n ? 'right'\n : position === 'center'\n ? 'center'\n : 'all' // undefined | false use the full visible list\n}\n\n/**\n * Computes the offset from the start edge of a pinning region to this column.\n *\n * The value is the sum of all previous visible leaf column sizes in the\n * requested `'left'`, `'center'`, or `'right'` region.\n *\n * @example\n * ```ts\n * const leftOffset = column_getStart(column, 'left')\n * ```\n */\nexport function column_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n): number {\n const offsets = callMemoOrStaticFn(\n column.table,\n 'getColumnOffsets',\n table_getColumnOffsets,\n )\n return offsets[toOffsetsKey(position)].starts[column.id] ?? 0\n}\n\n/**\n * Computes the offset from the end edge of a pinning region after this column.\n *\n * The value is the sum of all following visible leaf column sizes in the\n * requested region.\n *\n * @example\n * ```ts\n * const rightOffset = column_getAfter(column, 'right')\n * ```\n */\nexport function column_getAfter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n): number {\n const offsets = callMemoOrStaticFn(\n column.table,\n 'getColumnOffsets',\n table_getColumnOffsets,\n )\n return offsets[toOffsetsKey(position)].afters[column.id] ?? 0\n}\n\n/**\n * Removes this column's committed size override.\n *\n * After reset, the column resolves size from `columnDef.size` or built-in\n * defaults again.\n *\n * @example\n * ```ts\n * column_resetSize(column)\n * ```\n */\nexport function column_resetSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n table_setColumnSizing(column.table, (old) => {\n const rest = makeObjectMap<number>()\n const columnIds = Object.keys(old)\n for (let i = 0; i < columnIds.length; i++) {\n const columnId = columnIds[i]!\n if (columnId !== column.id) {\n rest[columnId] = old[columnId]!\n }\n }\n return rest\n })\n}\n\n/**\n * Computes a header's rendered size from its leaf headers.\n *\n * Group headers sum the sizes of all descendant leaf columns. Leaf headers use\n * their column's current size.\n *\n * @example\n * ```ts\n * const width = header_getSize(header)\n * ```\n */\nexport function header_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>) {\n let sum = 0\n\n const recurse = (h: Header<TFeatures, TData, TValue>) => {\n if (h.subHeaders.length) {\n h.subHeaders.forEach(recurse)\n } else {\n sum += column_getSize(h.column)\n }\n }\n\n recurse(header)\n\n return sum\n}\n\n/**\n * Computes a header's offset from the start of its header group.\n *\n * The offset is the previous sibling header's start plus size, or `0` for the\n * first header in the group.\n *\n * @example\n * ```ts\n * const offset = header_getStart(header)\n * ```\n */\nexport function header_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>): number {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup?.headers[header.index - 1]\n if (prevSiblingHeader) {\n return (\n callMemoOrStaticFn(prevSiblingHeader, 'getStart', header_getStart) +\n callMemoOrStaticFn(prevSiblingHeader, 'getSize', header_getSize)\n )\n }\n }\n\n return 0\n}\n\n// Table APIs\n\n/**\n * Routes a committed column sizing updater through the table's sizing handler.\n *\n * The updater may be a next size map or a function of the previous map,\n * matching the instance `table.setColumnSizing` behavior.\n *\n * @example\n * ```ts\n * table_setColumnSizing(table, (old) => ({ ...old, age: 96 }))\n * ```\n */\nexport function table_setColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnSizingState>,\n) {\n table.options.onColumnSizingChange?.(updater)\n}\n\n/**\n * Resets `columnSizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnSizing` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetColumnSizing(table)\n * table_resetColumnSizing(table, true)\n * ```\n */\nexport function table_resetColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnSizing(\n table,\n defaultState\n ? makeObjectMap()\n : Object.assign(\n makeObjectMap<number>(),\n cloneState(table.initialState.columnSizing ?? {}),\n ),\n )\n}\n\n/**\n * Sums the rendered size of the full table header row.\n *\n * This includes left, center, and right columns in the main header group.\n *\n * @example\n * ```ts\n * const width = table_getTotalSize(table)\n * ```\n */\nexport function table_getTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the left pinned header region.\n *\n * An empty left pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getLeftTotalSize(table)\n * ```\n */\nexport function table_getLeftTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the center, unpinned header region.\n *\n * An empty center region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getCenterTotalSize(table)\n * ```\n */\nexport function table_getCenterTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the right pinned header region.\n *\n * An empty right pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getRightTotalSize(table)\n * ```\n */\nexport function table_getRightTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CellData, RowData, Updater } from "../../types/type-utils.cjs";
|
|
2
|
+
import { ColumnPinningPosition } from "../column-pinning/columnPinningFeature.types.cjs";
|
|
2
3
|
import { ColumnOffsetsByPosition, ColumnSizingState } from "./columnSizingFeature.types.cjs";
|
|
3
4
|
import { Header } from "../../types/Header.cjs";
|
|
4
|
-
import { ColumnPinningPosition } from "../column-pinning/columnPinningFeature.types.cjs";
|
|
5
5
|
import { Table } from "../../types/Table.cjs";
|
|
6
6
|
import { Column } from "../../types/Column.cjs";
|
|
7
7
|
import { TableFeatures } from "../../types/TableFeatures.cjs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CellData, RowData, Updater } from "../../types/type-utils.js";
|
|
2
|
+
import { ColumnPinningPosition } from "../column-pinning/columnPinningFeature.types.js";
|
|
2
3
|
import { ColumnOffsetsByPosition, ColumnSizingState } from "./columnSizingFeature.types.js";
|
|
3
4
|
import { Header } from "../../types/Header.js";
|
|
4
|
-
import { ColumnPinningPosition } from "../column-pinning/columnPinningFeature.types.js";
|
|
5
5
|
import { Table } from "../../types/Table.js";
|
|
6
6
|
import { Column } from "../../types/Column.js";
|
|
7
7
|
import { TableFeatures } from "../../types/TableFeatures.js";
|
|
@@ -47,9 +47,8 @@ function getDefaultColumnSizingColumnDef() {
|
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
49
|
function column_getSize(column) {
|
|
50
|
-
var _column$table$atoms$c;
|
|
51
50
|
const defaultSizes = getDefaultColumnSizingColumnDef();
|
|
52
|
-
const columnSizing =
|
|
51
|
+
const columnSizing = column.table.atoms.columnSizing?.get();
|
|
53
52
|
const columnSize = columnSizing && hasOwn(columnSizing, column.id) ? columnSizing[column.id] : void 0;
|
|
54
53
|
return Math.min(Math.max(column.columnDef.minSize ?? defaultSizes.minSize, columnSize ?? column.columnDef.size ?? defaultSizes.size), column.columnDef.maxSize ?? defaultSizes.maxSize);
|
|
55
54
|
}
|
|
@@ -182,8 +181,7 @@ function header_getSize(header) {
|
|
|
182
181
|
*/
|
|
183
182
|
function header_getStart(header) {
|
|
184
183
|
if (header.index > 0) {
|
|
185
|
-
|
|
186
|
-
const prevSiblingHeader = (_header$headerGroup = header.headerGroup) === null || _header$headerGroup === void 0 ? void 0 : _header$headerGroup.headers[header.index - 1];
|
|
184
|
+
const prevSiblingHeader = header.headerGroup?.headers[header.index - 1];
|
|
187
185
|
if (prevSiblingHeader) return callMemoOrStaticFn(prevSiblingHeader, "getStart", header_getStart) + callMemoOrStaticFn(prevSiblingHeader, "getSize", header_getSize);
|
|
188
186
|
}
|
|
189
187
|
return 0;
|
|
@@ -200,8 +198,7 @@ function header_getStart(header) {
|
|
|
200
198
|
* ```
|
|
201
199
|
*/
|
|
202
200
|
function table_setColumnSizing(table, updater) {
|
|
203
|
-
|
|
204
|
-
(_table$options$onColu = (_table$options = table.options).onColumnSizingChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
|
|
201
|
+
table.options.onColumnSizingChange?.(updater);
|
|
205
202
|
}
|
|
206
203
|
/**
|
|
207
204
|
* Resets `columnSizing` to the configured initial state or feature default.
|
|
@@ -229,10 +226,9 @@ function table_resetColumnSizing(table, defaultState) {
|
|
|
229
226
|
* ```
|
|
230
227
|
*/
|
|
231
228
|
function table_getTotalSize(table) {
|
|
232
|
-
|
|
233
|
-
return ((_table$getHeaderGroup = table.getHeaderGroups()[0]) === null || _table$getHeaderGroup === void 0 ? void 0 : _table$getHeaderGroup.headers.reduce((sum, header) => {
|
|
229
|
+
return table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {
|
|
234
230
|
return sum + header_getSize(header);
|
|
235
|
-
}, 0)
|
|
231
|
+
}, 0) ?? 0;
|
|
236
232
|
}
|
|
237
233
|
/**
|
|
238
234
|
* Sums the rendered size of the left pinned header region.
|
|
@@ -245,10 +241,9 @@ function table_getTotalSize(table) {
|
|
|
245
241
|
* ```
|
|
246
242
|
*/
|
|
247
243
|
function table_getLeftTotalSize(table) {
|
|
248
|
-
|
|
249
|
-
return ((_callMemoOrStaticFn$ = callMemoOrStaticFn(table, "getLeftHeaderGroups", table_getLeftHeaderGroups)[0]) === null || _callMemoOrStaticFn$ === void 0 ? void 0 : _callMemoOrStaticFn$.headers.reduce((sum, header) => {
|
|
244
|
+
return callMemoOrStaticFn(table, "getLeftHeaderGroups", table_getLeftHeaderGroups)[0]?.headers.reduce((sum, header) => {
|
|
250
245
|
return sum + header_getSize(header);
|
|
251
|
-
}, 0)
|
|
246
|
+
}, 0) ?? 0;
|
|
252
247
|
}
|
|
253
248
|
/**
|
|
254
249
|
* Sums the rendered size of the center, unpinned header region.
|
|
@@ -261,10 +256,9 @@ function table_getLeftTotalSize(table) {
|
|
|
261
256
|
* ```
|
|
262
257
|
*/
|
|
263
258
|
function table_getCenterTotalSize(table) {
|
|
264
|
-
|
|
265
|
-
return ((_callMemoOrStaticFn$2 = callMemoOrStaticFn(table, "getCenterHeaderGroups", table_getCenterHeaderGroups)[0]) === null || _callMemoOrStaticFn$2 === void 0 ? void 0 : _callMemoOrStaticFn$2.headers.reduce((sum, header) => {
|
|
259
|
+
return callMemoOrStaticFn(table, "getCenterHeaderGroups", table_getCenterHeaderGroups)[0]?.headers.reduce((sum, header) => {
|
|
266
260
|
return sum + header_getSize(header);
|
|
267
|
-
}, 0)
|
|
261
|
+
}, 0) ?? 0;
|
|
268
262
|
}
|
|
269
263
|
/**
|
|
270
264
|
* Sums the rendered size of the right pinned header region.
|
|
@@ -277,10 +271,9 @@ function table_getCenterTotalSize(table) {
|
|
|
277
271
|
* ```
|
|
278
272
|
*/
|
|
279
273
|
function table_getRightTotalSize(table) {
|
|
280
|
-
|
|
281
|
-
return ((_callMemoOrStaticFn$3 = callMemoOrStaticFn(table, "getRightHeaderGroups", table_getRightHeaderGroups)[0]) === null || _callMemoOrStaticFn$3 === void 0 ? void 0 : _callMemoOrStaticFn$3.headers.reduce((sum, header) => {
|
|
274
|
+
return callMemoOrStaticFn(table, "getRightHeaderGroups", table_getRightHeaderGroups)[0]?.headers.reduce((sum, header) => {
|
|
282
275
|
return sum + header_getSize(header);
|
|
283
|
-
}, 0)
|
|
276
|
+
}, 0) ?? 0;
|
|
284
277
|
}
|
|
285
278
|
|
|
286
279
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnSizingFeature.utils.js","names":[],"sources":["../../../src/features/column-sizing/columnSizingFeature.utils.ts"],"sourcesContent":["import {\n table_getCenterHeaderGroups,\n table_getLeftHeaderGroups,\n table_getPinnedVisibleLeafColumns,\n table_getRightHeaderGroups,\n} from '../column-pinning/columnPinningFeature.utils'\nimport {\n callMemoOrStaticFn,\n cloneState,\n hasOwn,\n makeObjectMap,\n} from '../../utils'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\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 {\n ColumnOffsets,\n ColumnOffsetsByPosition,\n ColumnSizingState,\n} from './columnSizingFeature.types'\n\n/**\n * Creates the default committed column sizing state.\n *\n * The feature default is an empty map, so columns fall back to their column def\n * size or the built-in sizing defaults.\n *\n * @example\n * ```ts\n * const sizing = getDefaultColumnSizingState()\n * ```\n */\nexport function getDefaultColumnSizingState(): ColumnSizingState {\n return makeObjectMap()\n}\n\n/**\n * Creates the built-in sizing defaults for column definitions.\n *\n * Columns default to `size: 150`, `minSize: 20`, and\n * `maxSize: Number.MAX_SAFE_INTEGER` unless overridden by column definitions or\n * table defaults.\n *\n * @example\n * ```ts\n * const defaults = getDefaultColumnSizingColumnDef()\n * ```\n */\nexport function getDefaultColumnSizingColumnDef() {\n return {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n }\n}\n\n/**\n * Resolves a column's current pixel size.\n *\n * Committed `state.columnSizing[column.id]` wins over `columnDef.size`, then the\n * built-in default size. The result is clamped between min and max size.\n *\n * @example\n * ```ts\n * const width = column_getSize(column)\n * ```\n */\nexport function column_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n const defaultSizes = getDefaultColumnSizingColumnDef()\n const columnSizing = column.table.atoms.columnSizing?.get()\n const columnSize =\n columnSizing && hasOwn(columnSizing, column.id)\n ? columnSizing[column.id]\n : undefined\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultSizes.minSize,\n columnSize ?? column.columnDef.size ?? defaultSizes.size,\n ),\n column.columnDef.maxSize ?? defaultSizes.maxSize,\n )\n}\n\nfunction buildColumnOffsets<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(columns: Array<Column_Internal<TFeatures, TData, unknown>>): ColumnOffsets {\n const starts = makeObjectMap<number>()\n const afters = makeObjectMap<number>()\n const sizes = new Array<number>(columns.length)\n\n let start = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n const size = callMemoOrStaticFn(column, 'getSize', column_getSize)\n sizes[i] = size\n starts[column.id] = start\n start += size\n }\n\n let after = 0\n for (let i = columns.length - 1; i >= 0; i--) {\n afters[columns[i]!.id] = after\n after += sizes[i]!\n }\n\n return { starts, afters }\n}\n\n/**\n * Builds start and after offset maps for every visible leaf column, computed\n * once per pinning region plus the full visible list.\n *\n * A single table-level memo of this result backs all `column.getStart()` and\n * `column.getAfter()` calls with O(1) lookups.\n *\n * @example\n * ```ts\n * const offsets = table_getColumnOffsets(table)\n * const leftOffset = offsets.left.starts[column.id]\n * ```\n */\nexport function table_getColumnOffsets<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): ColumnOffsetsByPosition {\n return {\n all: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table) as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n center: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'center') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n left: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'left') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n right: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'right') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n }\n}\n\nfunction toOffsetsKey(\n position: ColumnPinningPosition | 'center' | undefined,\n): keyof ColumnOffsetsByPosition {\n return position === 'left'\n ? 'left'\n : position === 'right'\n ? 'right'\n : position === 'center'\n ? 'center'\n : 'all' // undefined | false use the full visible list\n}\n\n/**\n * Computes the offset from the start edge of a pinning region to this column.\n *\n * The value is the sum of all previous visible leaf column sizes in the\n * requested `'left'`, `'center'`, or `'right'` region.\n *\n * @example\n * ```ts\n * const leftOffset = column_getStart(column, 'left')\n * ```\n */\nexport function column_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n): number {\n const offsets = callMemoOrStaticFn(\n column.table,\n 'getColumnOffsets',\n table_getColumnOffsets,\n )\n return offsets[toOffsetsKey(position)].starts[column.id] ?? 0\n}\n\n/**\n * Computes the offset from the end edge of a pinning region after this column.\n *\n * The value is the sum of all following visible leaf column sizes in the\n * requested region.\n *\n * @example\n * ```ts\n * const rightOffset = column_getAfter(column, 'right')\n * ```\n */\nexport function column_getAfter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n): number {\n const offsets = callMemoOrStaticFn(\n column.table,\n 'getColumnOffsets',\n table_getColumnOffsets,\n )\n return offsets[toOffsetsKey(position)].afters[column.id] ?? 0\n}\n\n/**\n * Removes this column's committed size override.\n *\n * After reset, the column resolves size from `columnDef.size` or built-in\n * defaults again.\n *\n * @example\n * ```ts\n * column_resetSize(column)\n * ```\n */\nexport function column_resetSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n table_setColumnSizing(column.table, (old) => {\n const rest = makeObjectMap<number>()\n const columnIds = Object.keys(old)\n for (let i = 0; i < columnIds.length; i++) {\n const columnId = columnIds[i]!\n if (columnId !== column.id) {\n rest[columnId] = old[columnId]!\n }\n }\n return rest\n })\n}\n\n/**\n * Computes a header's rendered size from its leaf headers.\n *\n * Group headers sum the sizes of all descendant leaf columns. Leaf headers use\n * their column's current size.\n *\n * @example\n * ```ts\n * const width = header_getSize(header)\n * ```\n */\nexport function header_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>) {\n let sum = 0\n\n const recurse = (h: Header<TFeatures, TData, TValue>) => {\n if (h.subHeaders.length) {\n h.subHeaders.forEach(recurse)\n } else {\n sum += column_getSize(h.column)\n }\n }\n\n recurse(header)\n\n return sum\n}\n\n/**\n * Computes a header's offset from the start of its header group.\n *\n * The offset is the previous sibling header's start plus size, or `0` for the\n * first header in the group.\n *\n * @example\n * ```ts\n * const offset = header_getStart(header)\n * ```\n */\nexport function header_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>): number {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup?.headers[header.index - 1]\n if (prevSiblingHeader) {\n return (\n callMemoOrStaticFn(prevSiblingHeader, 'getStart', header_getStart) +\n callMemoOrStaticFn(prevSiblingHeader, 'getSize', header_getSize)\n )\n }\n }\n\n return 0\n}\n\n// Table APIs\n\n/**\n * Routes a committed column sizing updater through the table's sizing handler.\n *\n * The updater may be a next size map or a function of the previous map,\n * matching the instance `table.setColumnSizing` behavior.\n *\n * @example\n * ```ts\n * table_setColumnSizing(table, (old) => ({ ...old, age: 96 }))\n * ```\n */\nexport function table_setColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnSizingState>,\n) {\n table.options.onColumnSizingChange?.(updater)\n}\n\n/**\n * Resets `columnSizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnSizing` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetColumnSizing(table)\n * table_resetColumnSizing(table, true)\n * ```\n */\nexport function table_resetColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnSizing(\n table,\n defaultState\n ? makeObjectMap()\n : Object.assign(\n makeObjectMap<number>(),\n cloneState(table.initialState.columnSizing ?? {}),\n ),\n )\n}\n\n/**\n * Sums the rendered size of the full table header row.\n *\n * This includes left, center, and right columns in the main header group.\n *\n * @example\n * ```ts\n * const width = table_getTotalSize(table)\n * ```\n */\nexport function table_getTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the left pinned header region.\n *\n * An empty left pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getLeftTotalSize(table)\n * ```\n */\nexport function table_getLeftTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the center, unpinned header region.\n *\n * An empty center region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getCenterTotalSize(table)\n * ```\n */\nexport function table_getCenterTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the right pinned header region.\n *\n * An empty right pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getRightTotalSize(table)\n * ```\n */\nexport function table_getRightTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnSizingFeature.utils.js","names":[],"sources":["../../../src/features/column-sizing/columnSizingFeature.utils.ts"],"sourcesContent":["import {\n table_getCenterHeaderGroups,\n table_getLeftHeaderGroups,\n table_getPinnedVisibleLeafColumns,\n table_getRightHeaderGroups,\n} from '../column-pinning/columnPinningFeature.utils'\nimport {\n callMemoOrStaticFn,\n cloneState,\n hasOwn,\n makeObjectMap,\n} from '../../utils'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\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 {\n ColumnOffsets,\n ColumnOffsetsByPosition,\n ColumnSizingState,\n} from './columnSizingFeature.types'\n\n/**\n * Creates the default committed column sizing state.\n *\n * The feature default is an empty map, so columns fall back to their column def\n * size or the built-in sizing defaults.\n *\n * @example\n * ```ts\n * const sizing = getDefaultColumnSizingState()\n * ```\n */\nexport function getDefaultColumnSizingState(): ColumnSizingState {\n return makeObjectMap()\n}\n\n/**\n * Creates the built-in sizing defaults for column definitions.\n *\n * Columns default to `size: 150`, `minSize: 20`, and\n * `maxSize: Number.MAX_SAFE_INTEGER` unless overridden by column definitions or\n * table defaults.\n *\n * @example\n * ```ts\n * const defaults = getDefaultColumnSizingColumnDef()\n * ```\n */\nexport function getDefaultColumnSizingColumnDef() {\n return {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n }\n}\n\n/**\n * Resolves a column's current pixel size.\n *\n * Committed `state.columnSizing[column.id]` wins over `columnDef.size`, then the\n * built-in default size. The result is clamped between min and max size.\n *\n * @example\n * ```ts\n * const width = column_getSize(column)\n * ```\n */\nexport function column_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n const defaultSizes = getDefaultColumnSizingColumnDef()\n const columnSizing = column.table.atoms.columnSizing?.get()\n const columnSize =\n columnSizing && hasOwn(columnSizing, column.id)\n ? columnSizing[column.id]\n : undefined\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultSizes.minSize,\n columnSize ?? column.columnDef.size ?? defaultSizes.size,\n ),\n column.columnDef.maxSize ?? defaultSizes.maxSize,\n )\n}\n\nfunction buildColumnOffsets<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(columns: Array<Column_Internal<TFeatures, TData, unknown>>): ColumnOffsets {\n const starts = makeObjectMap<number>()\n const afters = makeObjectMap<number>()\n const sizes = new Array<number>(columns.length)\n\n let start = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n const size = callMemoOrStaticFn(column, 'getSize', column_getSize)\n sizes[i] = size\n starts[column.id] = start\n start += size\n }\n\n let after = 0\n for (let i = columns.length - 1; i >= 0; i--) {\n afters[columns[i]!.id] = after\n after += sizes[i]!\n }\n\n return { starts, afters }\n}\n\n/**\n * Builds start and after offset maps for every visible leaf column, computed\n * once per pinning region plus the full visible list.\n *\n * A single table-level memo of this result backs all `column.getStart()` and\n * `column.getAfter()` calls with O(1) lookups.\n *\n * @example\n * ```ts\n * const offsets = table_getColumnOffsets(table)\n * const leftOffset = offsets.left.starts[column.id]\n * ```\n */\nexport function table_getColumnOffsets<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): ColumnOffsetsByPosition {\n return {\n all: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table) as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n center: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'center') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n left: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'left') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n right: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'right') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n }\n}\n\nfunction toOffsetsKey(\n position: ColumnPinningPosition | 'center' | undefined,\n): keyof ColumnOffsetsByPosition {\n return position === 'left'\n ? 'left'\n : position === 'right'\n ? 'right'\n : position === 'center'\n ? 'center'\n : 'all' // undefined | false use the full visible list\n}\n\n/**\n * Computes the offset from the start edge of a pinning region to this column.\n *\n * The value is the sum of all previous visible leaf column sizes in the\n * requested `'left'`, `'center'`, or `'right'` region.\n *\n * @example\n * ```ts\n * const leftOffset = column_getStart(column, 'left')\n * ```\n */\nexport function column_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n): number {\n const offsets = callMemoOrStaticFn(\n column.table,\n 'getColumnOffsets',\n table_getColumnOffsets,\n )\n return offsets[toOffsetsKey(position)].starts[column.id] ?? 0\n}\n\n/**\n * Computes the offset from the end edge of a pinning region after this column.\n *\n * The value is the sum of all following visible leaf column sizes in the\n * requested region.\n *\n * @example\n * ```ts\n * const rightOffset = column_getAfter(column, 'right')\n * ```\n */\nexport function column_getAfter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n): number {\n const offsets = callMemoOrStaticFn(\n column.table,\n 'getColumnOffsets',\n table_getColumnOffsets,\n )\n return offsets[toOffsetsKey(position)].afters[column.id] ?? 0\n}\n\n/**\n * Removes this column's committed size override.\n *\n * After reset, the column resolves size from `columnDef.size` or built-in\n * defaults again.\n *\n * @example\n * ```ts\n * column_resetSize(column)\n * ```\n */\nexport function column_resetSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n table_setColumnSizing(column.table, (old) => {\n const rest = makeObjectMap<number>()\n const columnIds = Object.keys(old)\n for (let i = 0; i < columnIds.length; i++) {\n const columnId = columnIds[i]!\n if (columnId !== column.id) {\n rest[columnId] = old[columnId]!\n }\n }\n return rest\n })\n}\n\n/**\n * Computes a header's rendered size from its leaf headers.\n *\n * Group headers sum the sizes of all descendant leaf columns. Leaf headers use\n * their column's current size.\n *\n * @example\n * ```ts\n * const width = header_getSize(header)\n * ```\n */\nexport function header_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>) {\n let sum = 0\n\n const recurse = (h: Header<TFeatures, TData, TValue>) => {\n if (h.subHeaders.length) {\n h.subHeaders.forEach(recurse)\n } else {\n sum += column_getSize(h.column)\n }\n }\n\n recurse(header)\n\n return sum\n}\n\n/**\n * Computes a header's offset from the start of its header group.\n *\n * The offset is the previous sibling header's start plus size, or `0` for the\n * first header in the group.\n *\n * @example\n * ```ts\n * const offset = header_getStart(header)\n * ```\n */\nexport function header_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>): number {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup?.headers[header.index - 1]\n if (prevSiblingHeader) {\n return (\n callMemoOrStaticFn(prevSiblingHeader, 'getStart', header_getStart) +\n callMemoOrStaticFn(prevSiblingHeader, 'getSize', header_getSize)\n )\n }\n }\n\n return 0\n}\n\n// Table APIs\n\n/**\n * Routes a committed column sizing updater through the table's sizing handler.\n *\n * The updater may be a next size map or a function of the previous map,\n * matching the instance `table.setColumnSizing` behavior.\n *\n * @example\n * ```ts\n * table_setColumnSizing(table, (old) => ({ ...old, age: 96 }))\n * ```\n */\nexport function table_setColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnSizingState>,\n) {\n table.options.onColumnSizingChange?.(updater)\n}\n\n/**\n * Resets `columnSizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnSizing` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetColumnSizing(table)\n * table_resetColumnSizing(table, true)\n * ```\n */\nexport function table_resetColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnSizing(\n table,\n defaultState\n ? makeObjectMap()\n : Object.assign(\n makeObjectMap<number>(),\n cloneState(table.initialState.columnSizing ?? {}),\n ),\n )\n}\n\n/**\n * Sums the rendered size of the full table header row.\n *\n * This includes left, center, and right columns in the main header group.\n *\n * @example\n * ```ts\n * const width = table_getTotalSize(table)\n * ```\n */\nexport function table_getTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the left pinned header region.\n *\n * An empty left pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getLeftTotalSize(table)\n * ```\n */\nexport function table_getLeftTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the center, unpinned header region.\n *\n * An empty center region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getCenterTotalSize(table)\n * ```\n */\nexport function table_getCenterTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the right pinned header region.\n *\n * An empty right pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getRightTotalSize(table)\n * ```\n */\nexport function table_getRightTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n"],"mappings":"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"}
|
|
@@ -19,14 +19,11 @@ const columnVisibilityFeature = {
|
|
|
19
19
|
require_utils.assignPrototypeAPIs("columnVisibilityFeature", prototype, table, {
|
|
20
20
|
column_getIsVisible: {
|
|
21
21
|
fn: (column) => require_columnVisibilityFeature_utils.column_getIsVisible(column),
|
|
22
|
-
memoDeps: (column) =>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
column.columns
|
|
28
|
-
];
|
|
29
|
-
}
|
|
22
|
+
memoDeps: (column) => [
|
|
23
|
+
table.options.columns,
|
|
24
|
+
table.atoms.columnVisibility?.get(),
|
|
25
|
+
column.columns
|
|
26
|
+
]
|
|
30
27
|
},
|
|
31
28
|
column_getCanHide: { fn: (column) => require_columnVisibilityFeature_utils.column_getCanHide(column) },
|
|
32
29
|
column_getToggleVisibilityHandler: { fn: (column) => require_columnVisibilityFeature_utils.column_getToggleVisibilityHandler(column) },
|
|
@@ -37,21 +34,15 @@ const columnVisibilityFeature = {
|
|
|
37
34
|
require_utils.assignPrototypeAPIs("columnVisibilityFeature", prototype, table, {
|
|
38
35
|
row_getVisibleCells: {
|
|
39
36
|
fn: (row) => require_columnVisibilityFeature_utils.row_getVisibleCells(row),
|
|
40
|
-
memoDeps: (row) =>
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
(_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get()
|
|
46
|
-
];
|
|
47
|
-
}
|
|
37
|
+
memoDeps: (row) => [
|
|
38
|
+
row.getAllCells(),
|
|
39
|
+
table.atoms.columnPinning?.get(),
|
|
40
|
+
table.atoms.columnVisibility?.get()
|
|
41
|
+
]
|
|
48
42
|
},
|
|
49
43
|
row_getVisibleCellsByColumnId: {
|
|
50
44
|
fn: (row) => require_columnVisibilityFeature_utils.row_getVisibleCellsByColumnId(row),
|
|
51
|
-
memoDeps: (row) =>
|
|
52
|
-
var _table$atoms$columnVi3;
|
|
53
|
-
return [row.getAllCells(), (_table$atoms$columnVi3 = table.atoms.columnVisibility) === null || _table$atoms$columnVi3 === void 0 ? void 0 : _table$atoms$columnVi3.get()];
|
|
54
|
-
}
|
|
45
|
+
memoDeps: (row) => [row.getAllCells(), table.atoms.columnVisibility?.get()]
|
|
55
46
|
}
|
|
56
47
|
});
|
|
57
48
|
},
|
|
@@ -59,29 +50,23 @@ const columnVisibilityFeature = {
|
|
|
59
50
|
require_utils.assignTableAPIs("columnVisibilityFeature", table, {
|
|
60
51
|
table_getVisibleFlatColumns: {
|
|
61
52
|
fn: () => require_columnVisibilityFeature_utils.table_getVisibleFlatColumns(table),
|
|
62
|
-
memoDeps: () =>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
table.options.groupedColumnMode
|
|
70
|
-
];
|
|
71
|
-
}
|
|
53
|
+
memoDeps: () => [
|
|
54
|
+
table.atoms.columnVisibility?.get(),
|
|
55
|
+
table.atoms.columnOrder?.get(),
|
|
56
|
+
table.atoms.grouping?.get(),
|
|
57
|
+
table.options.columns,
|
|
58
|
+
table.options.groupedColumnMode
|
|
59
|
+
]
|
|
72
60
|
},
|
|
73
61
|
table_getVisibleLeafColumns: {
|
|
74
62
|
fn: () => require_columnVisibilityFeature_utils.table_getVisibleLeafColumns(table),
|
|
75
|
-
memoDeps: () =>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
table.options.groupedColumnMode
|
|
83
|
-
];
|
|
84
|
-
}
|
|
63
|
+
memoDeps: () => [
|
|
64
|
+
table.atoms.columnVisibility?.get(),
|
|
65
|
+
table.atoms.columnOrder?.get(),
|
|
66
|
+
table.atoms.grouping?.get(),
|
|
67
|
+
table.options.columns,
|
|
68
|
+
table.options.groupedColumnMode
|
|
69
|
+
]
|
|
85
70
|
},
|
|
86
71
|
table_setColumnVisibility: { fn: (updater) => require_columnVisibilityFeature_utils.table_setColumnVisibility(table, updater) },
|
|
87
72
|
table_resetColumnVisibility: { fn: (defaultState) => require_columnVisibilityFeature_utils.table_resetColumnVisibility(table, defaultState) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnVisibilityFeature.cjs","names":["getDefaultColumnVisibilityState","makeStateUpdater","column_getIsVisible","column_getCanHide","column_getToggleVisibilityHandler","column_toggleVisibility","row_getVisibleCells","row_getVisibleCellsByColumnId","table_getVisibleFlatColumns","table_getVisibleLeafColumns","table_setColumnVisibility","table_resetColumnVisibility","table_toggleAllColumnsVisible","table_getIsAllColumnsVisible","table_getIsSomeColumnsVisible","table_getToggleAllColumnsVisibilityHandler"],"sources":["../../../src/features/column-visibility/columnVisibilityFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanHide,\n column_getIsVisible,\n column_getToggleVisibilityHandler,\n column_toggleVisibility,\n getDefaultColumnVisibilityState,\n row_getVisibleCells,\n row_getVisibleCellsByColumnId,\n table_getIsAllColumnsVisible,\n table_getIsSomeColumnsVisible,\n table_getToggleAllColumnsVisibilityHandler,\n table_getVisibleFlatColumns,\n table_getVisibleLeafColumns,\n table_resetColumnVisibility,\n table_setColumnVisibility,\n table_toggleAllColumnsVisible,\n} from './columnVisibilityFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column visibility state and APIs for hiding and showing columns.\n */\nexport const columnVisibilityFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnVisibility: getDefaultColumnVisibilityState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n column_getIsVisible: {\n fn: (column) => column_getIsVisible(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnVisibility?.get(),\n column.columns,\n ],\n },\n column_getCanHide: {\n fn: (column) => column_getCanHide(column),\n },\n column_getToggleVisibilityHandler: {\n fn: (column) => column_getToggleVisibilityHandler(column),\n },\n column_toggleVisibility: {\n fn: (column, visible) => column_toggleVisibility(column, visible),\n },\n })\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n row_getVisibleCells: {\n fn: (row) => row_getVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n row_getVisibleCellsByColumnId: {\n fn: (row) => row_getVisibleCellsByColumnId(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnVisibilityFeature', table, {\n table_getVisibleFlatColumns: {\n fn: () => table_getVisibleFlatColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.columns,\n table.options.groupedColumnMode,\n ],\n },\n table_getVisibleLeafColumns: {\n fn: () => table_getVisibleLeafColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.columns,\n table.options.groupedColumnMode,\n ],\n },\n table_setColumnVisibility: {\n fn: (updater) => table_setColumnVisibility(table, updater),\n },\n table_resetColumnVisibility: {\n fn: (defaultState) => table_resetColumnVisibility(table, defaultState),\n },\n table_toggleAllColumnsVisible: {\n fn: (value) => table_toggleAllColumnsVisible(table, value),\n },\n table_getIsAllColumnsVisible: {\n fn: () => table_getIsAllColumnsVisible(table),\n },\n table_getIsSomeColumnsVisible: {\n fn: () => table_getIsSomeColumnsVisible(table),\n },\n table_getToggleAllColumnsVisibilityHandler: {\n fn: () => table_getToggleAllColumnsVisibilityHandler(table),\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA2BA,MAAa,0BAAwC;CACnD,kBAAkB,iBAAiB;EACjC,OAAO;GACL,kBAAkBA,sEAAgC;GAClD,GAAG;EACL;CACF;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,0BAA0BC,+BAAiB,oBAAoB,KAAK,EACtE;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,kCAAoB,2BAA2B,WAAW,OAAO;GAC/D,qBAAqB;IACnB,KAAK,WAAWC,0DAAoB,MAAM;IAC1C,WAAW,WAAW
|
|
1
|
+
{"version":3,"file":"columnVisibilityFeature.cjs","names":["getDefaultColumnVisibilityState","makeStateUpdater","column_getIsVisible","column_getCanHide","column_getToggleVisibilityHandler","column_toggleVisibility","row_getVisibleCells","row_getVisibleCellsByColumnId","table_getVisibleFlatColumns","table_getVisibleLeafColumns","table_setColumnVisibility","table_resetColumnVisibility","table_toggleAllColumnsVisible","table_getIsAllColumnsVisible","table_getIsSomeColumnsVisible","table_getToggleAllColumnsVisibilityHandler"],"sources":["../../../src/features/column-visibility/columnVisibilityFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanHide,\n column_getIsVisible,\n column_getToggleVisibilityHandler,\n column_toggleVisibility,\n getDefaultColumnVisibilityState,\n row_getVisibleCells,\n row_getVisibleCellsByColumnId,\n table_getIsAllColumnsVisible,\n table_getIsSomeColumnsVisible,\n table_getToggleAllColumnsVisibilityHandler,\n table_getVisibleFlatColumns,\n table_getVisibleLeafColumns,\n table_resetColumnVisibility,\n table_setColumnVisibility,\n table_toggleAllColumnsVisible,\n} from './columnVisibilityFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column visibility state and APIs for hiding and showing columns.\n */\nexport const columnVisibilityFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnVisibility: getDefaultColumnVisibilityState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n column_getIsVisible: {\n fn: (column) => column_getIsVisible(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnVisibility?.get(),\n column.columns,\n ],\n },\n column_getCanHide: {\n fn: (column) => column_getCanHide(column),\n },\n column_getToggleVisibilityHandler: {\n fn: (column) => column_getToggleVisibilityHandler(column),\n },\n column_toggleVisibility: {\n fn: (column, visible) => column_toggleVisibility(column, visible),\n },\n })\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n row_getVisibleCells: {\n fn: (row) => row_getVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n row_getVisibleCellsByColumnId: {\n fn: (row) => row_getVisibleCellsByColumnId(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnVisibilityFeature', table, {\n table_getVisibleFlatColumns: {\n fn: () => table_getVisibleFlatColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.columns,\n table.options.groupedColumnMode,\n ],\n },\n table_getVisibleLeafColumns: {\n fn: () => table_getVisibleLeafColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.columns,\n table.options.groupedColumnMode,\n ],\n },\n table_setColumnVisibility: {\n fn: (updater) => table_setColumnVisibility(table, updater),\n },\n table_resetColumnVisibility: {\n fn: (defaultState) => table_resetColumnVisibility(table, defaultState),\n },\n table_toggleAllColumnsVisible: {\n fn: (value) => table_toggleAllColumnsVisible(table, value),\n },\n table_getIsAllColumnsVisible: {\n fn: () => table_getIsAllColumnsVisible(table),\n },\n table_getIsSomeColumnsVisible: {\n fn: () => table_getIsSomeColumnsVisible(table),\n },\n table_getToggleAllColumnsVisibilityHandler: {\n fn: () => table_getToggleAllColumnsVisibilityHandler(table),\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA2BA,MAAa,0BAAwC;CACnD,kBAAkB,iBAAiB;EACjC,OAAO;GACL,kBAAkBA,sEAAgC;GAClD,GAAG;EACL;CACF;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,0BAA0BC,+BAAiB,oBAAoB,KAAK,EACtE;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,kCAAoB,2BAA2B,WAAW,OAAO;GAC/D,qBAAqB;IACnB,KAAK,WAAWC,0DAAoB,MAAM;IAC1C,WAAW,WAAW;KACpB,MAAM,QAAQ;KACd,MAAM,MAAM,kBAAkB,IAAI;KAClC,OAAO;IACT;GACF;GACA,mBAAmB,EACjB,KAAK,WAAWC,wDAAkB,MAAM,EAC1C;GACA,mCAAmC,EACjC,KAAK,WAAWC,wEAAkC,MAAM,EAC1D;GACA,yBAAyB,EACvB,KAAK,QAAQ,YAAYC,8DAAwB,QAAQ,OAAO,EAClE;EACF,CAAC;CACH;CAEA,qBAAqB,WAAW,UAAU;EACxC,kCAAoB,2BAA2B,WAAW,OAAO;GAC/D,qBAAqB;IACnB,KAAK,QAAQC,0DAAoB,GAAG;IACpC,WAAW,QAAQ;KACjB,IAAI,YAAY;KAChB,MAAM,MAAM,eAAe,IAAI;KAC/B,MAAM,MAAM,kBAAkB,IAAI;IACpC;GACF;GACA,+BAA+B;IAC7B,KAAK,QAAQC,oEAA8B,GAAG;IAC9C,WAAW,QAAQ,CACjB,IAAI,YAAY,GAChB,MAAM,MAAM,kBAAkB,IAAI,CACpC;GACF;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,8BAAgB,2BAA2B,OAAO;GAChD,6BAA6B;IAC3B,UAAUC,kEAA4B,KAAK;IAC3C,gBAAgB;KACd,MAAM,MAAM,kBAAkB,IAAI;KAClC,MAAM,MAAM,aAAa,IAAI;KAC7B,MAAM,MAAM,UAAU,IAAI;KAC1B,MAAM,QAAQ;KACd,MAAM,QAAQ;IAChB;GACF;GACA,6BAA6B;IAC3B,UAAUC,kEAA4B,KAAK;IAC3C,gBAAgB;KACd,MAAM,MAAM,kBAAkB,IAAI;KAClC,MAAM,MAAM,aAAa,IAAI;KAC7B,MAAM,MAAM,UAAU,IAAI;KAC1B,MAAM,QAAQ;KACd,MAAM,QAAQ;IAChB;GACF;GACA,2BAA2B,EACzB,KAAK,YAAYC,gEAA0B,OAAO,OAAO,EAC3D;GACA,6BAA6B,EAC3B,KAAK,iBAAiBC,kEAA4B,OAAO,YAAY,EACvE;GACA,+BAA+B,EAC7B,KAAK,UAAUC,oEAA8B,OAAO,KAAK,EAC3D;GACA,8BAA8B,EAC5B,UAAUC,mEAA6B,KAAK,EAC9C;GACA,+BAA+B,EAC7B,UAAUC,oEAA8B,KAAK,EAC/C;GACA,4CAA4C,EAC1C,UAAUC,iFAA2C,KAAK,EAC5D;EACF,CAAC;CACH;AACF"}
|
|
@@ -19,14 +19,11 @@ const columnVisibilityFeature = {
|
|
|
19
19
|
assignPrototypeAPIs("columnVisibilityFeature", prototype, table, {
|
|
20
20
|
column_getIsVisible: {
|
|
21
21
|
fn: (column) => column_getIsVisible(column),
|
|
22
|
-
memoDeps: (column) =>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
column.columns
|
|
28
|
-
];
|
|
29
|
-
}
|
|
22
|
+
memoDeps: (column) => [
|
|
23
|
+
table.options.columns,
|
|
24
|
+
table.atoms.columnVisibility?.get(),
|
|
25
|
+
column.columns
|
|
26
|
+
]
|
|
30
27
|
},
|
|
31
28
|
column_getCanHide: { fn: (column) => column_getCanHide(column) },
|
|
32
29
|
column_getToggleVisibilityHandler: { fn: (column) => column_getToggleVisibilityHandler(column) },
|
|
@@ -37,21 +34,15 @@ const columnVisibilityFeature = {
|
|
|
37
34
|
assignPrototypeAPIs("columnVisibilityFeature", prototype, table, {
|
|
38
35
|
row_getVisibleCells: {
|
|
39
36
|
fn: (row) => row_getVisibleCells(row),
|
|
40
|
-
memoDeps: (row) =>
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
(_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get()
|
|
46
|
-
];
|
|
47
|
-
}
|
|
37
|
+
memoDeps: (row) => [
|
|
38
|
+
row.getAllCells(),
|
|
39
|
+
table.atoms.columnPinning?.get(),
|
|
40
|
+
table.atoms.columnVisibility?.get()
|
|
41
|
+
]
|
|
48
42
|
},
|
|
49
43
|
row_getVisibleCellsByColumnId: {
|
|
50
44
|
fn: (row) => row_getVisibleCellsByColumnId(row),
|
|
51
|
-
memoDeps: (row) =>
|
|
52
|
-
var _table$atoms$columnVi3;
|
|
53
|
-
return [row.getAllCells(), (_table$atoms$columnVi3 = table.atoms.columnVisibility) === null || _table$atoms$columnVi3 === void 0 ? void 0 : _table$atoms$columnVi3.get()];
|
|
54
|
-
}
|
|
45
|
+
memoDeps: (row) => [row.getAllCells(), table.atoms.columnVisibility?.get()]
|
|
55
46
|
}
|
|
56
47
|
});
|
|
57
48
|
},
|
|
@@ -59,29 +50,23 @@ const columnVisibilityFeature = {
|
|
|
59
50
|
assignTableAPIs("columnVisibilityFeature", table, {
|
|
60
51
|
table_getVisibleFlatColumns: {
|
|
61
52
|
fn: () => table_getVisibleFlatColumns(table),
|
|
62
|
-
memoDeps: () =>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
table.options.groupedColumnMode
|
|
70
|
-
];
|
|
71
|
-
}
|
|
53
|
+
memoDeps: () => [
|
|
54
|
+
table.atoms.columnVisibility?.get(),
|
|
55
|
+
table.atoms.columnOrder?.get(),
|
|
56
|
+
table.atoms.grouping?.get(),
|
|
57
|
+
table.options.columns,
|
|
58
|
+
table.options.groupedColumnMode
|
|
59
|
+
]
|
|
72
60
|
},
|
|
73
61
|
table_getVisibleLeafColumns: {
|
|
74
62
|
fn: () => table_getVisibleLeafColumns(table),
|
|
75
|
-
memoDeps: () =>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
table.options.groupedColumnMode
|
|
83
|
-
];
|
|
84
|
-
}
|
|
63
|
+
memoDeps: () => [
|
|
64
|
+
table.atoms.columnVisibility?.get(),
|
|
65
|
+
table.atoms.columnOrder?.get(),
|
|
66
|
+
table.atoms.grouping?.get(),
|
|
67
|
+
table.options.columns,
|
|
68
|
+
table.options.groupedColumnMode
|
|
69
|
+
]
|
|
85
70
|
},
|
|
86
71
|
table_setColumnVisibility: { fn: (updater) => table_setColumnVisibility(table, updater) },
|
|
87
72
|
table_resetColumnVisibility: { fn: (defaultState) => table_resetColumnVisibility(table, defaultState) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnVisibilityFeature.js","names":[],"sources":["../../../src/features/column-visibility/columnVisibilityFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanHide,\n column_getIsVisible,\n column_getToggleVisibilityHandler,\n column_toggleVisibility,\n getDefaultColumnVisibilityState,\n row_getVisibleCells,\n row_getVisibleCellsByColumnId,\n table_getIsAllColumnsVisible,\n table_getIsSomeColumnsVisible,\n table_getToggleAllColumnsVisibilityHandler,\n table_getVisibleFlatColumns,\n table_getVisibleLeafColumns,\n table_resetColumnVisibility,\n table_setColumnVisibility,\n table_toggleAllColumnsVisible,\n} from './columnVisibilityFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column visibility state and APIs for hiding and showing columns.\n */\nexport const columnVisibilityFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnVisibility: getDefaultColumnVisibilityState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n column_getIsVisible: {\n fn: (column) => column_getIsVisible(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnVisibility?.get(),\n column.columns,\n ],\n },\n column_getCanHide: {\n fn: (column) => column_getCanHide(column),\n },\n column_getToggleVisibilityHandler: {\n fn: (column) => column_getToggleVisibilityHandler(column),\n },\n column_toggleVisibility: {\n fn: (column, visible) => column_toggleVisibility(column, visible),\n },\n })\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n row_getVisibleCells: {\n fn: (row) => row_getVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n row_getVisibleCellsByColumnId: {\n fn: (row) => row_getVisibleCellsByColumnId(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnVisibilityFeature', table, {\n table_getVisibleFlatColumns: {\n fn: () => table_getVisibleFlatColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.columns,\n table.options.groupedColumnMode,\n ],\n },\n table_getVisibleLeafColumns: {\n fn: () => table_getVisibleLeafColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.columns,\n table.options.groupedColumnMode,\n ],\n },\n table_setColumnVisibility: {\n fn: (updater) => table_setColumnVisibility(table, updater),\n },\n table_resetColumnVisibility: {\n fn: (defaultState) => table_resetColumnVisibility(table, defaultState),\n },\n table_toggleAllColumnsVisible: {\n fn: (value) => table_toggleAllColumnsVisible(table, value),\n },\n table_getIsAllColumnsVisible: {\n fn: () => table_getIsAllColumnsVisible(table),\n },\n table_getIsSomeColumnsVisible: {\n fn: () => table_getIsSomeColumnsVisible(table),\n },\n table_getToggleAllColumnsVisibilityHandler: {\n fn: () => table_getToggleAllColumnsVisibilityHandler(table),\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA2BA,MAAa,0BAAwC;CACnD,kBAAkB,iBAAiB;EACjC,OAAO;GACL,kBAAkB,gCAAgC;GAClD,GAAG;EACL;CACF;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,0BAA0B,iBAAiB,oBAAoB,KAAK,EACtE;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,2BAA2B,WAAW,OAAO;GAC/D,qBAAqB;IACnB,KAAK,WAAW,oBAAoB,MAAM;IAC1C,WAAW,WAAW
|
|
1
|
+
{"version":3,"file":"columnVisibilityFeature.js","names":[],"sources":["../../../src/features/column-visibility/columnVisibilityFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanHide,\n column_getIsVisible,\n column_getToggleVisibilityHandler,\n column_toggleVisibility,\n getDefaultColumnVisibilityState,\n row_getVisibleCells,\n row_getVisibleCellsByColumnId,\n table_getIsAllColumnsVisible,\n table_getIsSomeColumnsVisible,\n table_getToggleAllColumnsVisibilityHandler,\n table_getVisibleFlatColumns,\n table_getVisibleLeafColumns,\n table_resetColumnVisibility,\n table_setColumnVisibility,\n table_toggleAllColumnsVisible,\n} from './columnVisibilityFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column visibility state and APIs for hiding and showing columns.\n */\nexport const columnVisibilityFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnVisibility: getDefaultColumnVisibilityState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n column_getIsVisible: {\n fn: (column) => column_getIsVisible(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnVisibility?.get(),\n column.columns,\n ],\n },\n column_getCanHide: {\n fn: (column) => column_getCanHide(column),\n },\n column_getToggleVisibilityHandler: {\n fn: (column) => column_getToggleVisibilityHandler(column),\n },\n column_toggleVisibility: {\n fn: (column, visible) => column_toggleVisibility(column, visible),\n },\n })\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n row_getVisibleCells: {\n fn: (row) => row_getVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n row_getVisibleCellsByColumnId: {\n fn: (row) => row_getVisibleCellsByColumnId(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnVisibilityFeature', table, {\n table_getVisibleFlatColumns: {\n fn: () => table_getVisibleFlatColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.columns,\n table.options.groupedColumnMode,\n ],\n },\n table_getVisibleLeafColumns: {\n fn: () => table_getVisibleLeafColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.columns,\n table.options.groupedColumnMode,\n ],\n },\n table_setColumnVisibility: {\n fn: (updater) => table_setColumnVisibility(table, updater),\n },\n table_resetColumnVisibility: {\n fn: (defaultState) => table_resetColumnVisibility(table, defaultState),\n },\n table_toggleAllColumnsVisible: {\n fn: (value) => table_toggleAllColumnsVisible(table, value),\n },\n table_getIsAllColumnsVisible: {\n fn: () => table_getIsAllColumnsVisible(table),\n },\n table_getIsSomeColumnsVisible: {\n fn: () => table_getIsSomeColumnsVisible(table),\n },\n table_getToggleAllColumnsVisibilityHandler: {\n fn: () => table_getToggleAllColumnsVisibilityHandler(table),\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA2BA,MAAa,0BAAwC;CACnD,kBAAkB,iBAAiB;EACjC,OAAO;GACL,kBAAkB,gCAAgC;GAClD,GAAG;EACL;CACF;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,0BAA0B,iBAAiB,oBAAoB,KAAK,EACtE;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,2BAA2B,WAAW,OAAO;GAC/D,qBAAqB;IACnB,KAAK,WAAW,oBAAoB,MAAM;IAC1C,WAAW,WAAW;KACpB,MAAM,QAAQ;KACd,MAAM,MAAM,kBAAkB,IAAI;KAClC,OAAO;IACT;GACF;GACA,mBAAmB,EACjB,KAAK,WAAW,kBAAkB,MAAM,EAC1C;GACA,mCAAmC,EACjC,KAAK,WAAW,kCAAkC,MAAM,EAC1D;GACA,yBAAyB,EACvB,KAAK,QAAQ,YAAY,wBAAwB,QAAQ,OAAO,EAClE;EACF,CAAC;CACH;CAEA,qBAAqB,WAAW,UAAU;EACxC,oBAAoB,2BAA2B,WAAW,OAAO;GAC/D,qBAAqB;IACnB,KAAK,QAAQ,oBAAoB,GAAG;IACpC,WAAW,QAAQ;KACjB,IAAI,YAAY;KAChB,MAAM,MAAM,eAAe,IAAI;KAC/B,MAAM,MAAM,kBAAkB,IAAI;IACpC;GACF;GACA,+BAA+B;IAC7B,KAAK,QAAQ,8BAA8B,GAAG;IAC9C,WAAW,QAAQ,CACjB,IAAI,YAAY,GAChB,MAAM,MAAM,kBAAkB,IAAI,CACpC;GACF;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,gBAAgB,2BAA2B,OAAO;GAChD,6BAA6B;IAC3B,UAAU,4BAA4B,KAAK;IAC3C,gBAAgB;KACd,MAAM,MAAM,kBAAkB,IAAI;KAClC,MAAM,MAAM,aAAa,IAAI;KAC7B,MAAM,MAAM,UAAU,IAAI;KAC1B,MAAM,QAAQ;KACd,MAAM,QAAQ;IAChB;GACF;GACA,6BAA6B;IAC3B,UAAU,4BAA4B,KAAK;IAC3C,gBAAgB;KACd,MAAM,MAAM,kBAAkB,IAAI;KAClC,MAAM,MAAM,aAAa,IAAI;KAC7B,MAAM,MAAM,UAAU,IAAI;KAC1B,MAAM,QAAQ;KACd,MAAM,QAAQ;IAChB;GACF;GACA,2BAA2B,EACzB,KAAK,YAAY,0BAA0B,OAAO,OAAO,EAC3D;GACA,6BAA6B,EAC3B,KAAK,iBAAiB,4BAA4B,OAAO,YAAY,EACvE;GACA,+BAA+B,EAC7B,KAAK,UAAU,8BAA8B,OAAO,KAAK,EAC3D;GACA,8BAA8B,EAC5B,UAAU,6BAA6B,KAAK,EAC9C;GACA,+BAA+B,EAC7B,UAAU,8BAA8B,KAAK,EAC/C;GACA,4CAA4C,EAC1C,UAAU,2CAA2C,KAAK,EAC5D;EACF,CAAC;CACH;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OnChangeFn, RowData, Updater } from "../../types/type-utils.cjs";
|
|
2
|
+
import { Cell } from "../../types/Cell.cjs";
|
|
2
3
|
import { Column } from "../../types/Column.cjs";
|
|
3
4
|
import { TableFeatures } from "../../types/TableFeatures.cjs";
|
|
4
|
-
import { Cell } from "../../types/Cell.cjs";
|
|
5
5
|
|
|
6
6
|
//#region src/features/column-visibility/columnVisibilityFeature.types.d.ts
|
|
7
7
|
type ColumnVisibilityState = Record<string, boolean>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OnChangeFn, RowData, Updater } from "../../types/type-utils.js";
|
|
2
|
+
import { Cell } from "../../types/Cell.js";
|
|
2
3
|
import { Column } from "../../types/Column.js";
|
|
3
4
|
import { TableFeatures } from "../../types/TableFeatures.js";
|
|
4
|
-
import { Cell } from "../../types/Cell.js";
|
|
5
5
|
|
|
6
6
|
//#region src/features/column-visibility/columnVisibilityFeature.types.d.ts
|
|
7
7
|
type ColumnVisibilityState = Record<string, boolean>;
|
|
@@ -47,8 +47,7 @@ function column_toggleVisibility(column, visible) {
|
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
49
|
function column_getIsVisible(column) {
|
|
50
|
-
|
|
51
|
-
const columnVisibility = (_column$table$atoms$c = column.table.atoms.columnVisibility) === null || _column$table$atoms$c === void 0 ? void 0 : _column$table$atoms$c.get();
|
|
50
|
+
const columnVisibility = column.table.atoms.columnVisibility?.get();
|
|
52
51
|
if (!columnVisibility) return true;
|
|
53
52
|
const childColumns = column.columns;
|
|
54
53
|
if (childColumns.length) return childColumns.some((childColumn) => require_utils.callMemoOrStaticFn(childColumn, "getIsVisible", column_getIsVisible));
|
|
@@ -95,14 +94,13 @@ function column_getToggleVisibilityHandler(column) {
|
|
|
95
94
|
* ```
|
|
96
95
|
*/
|
|
97
96
|
function row_getVisibleCells(row) {
|
|
98
|
-
var _row$table$atoms$colu;
|
|
99
97
|
const allCells = row.getAllCells();
|
|
100
98
|
const visibleCells = [];
|
|
101
99
|
for (let i = 0; i < allCells.length; i++) {
|
|
102
100
|
const cell = allCells[i];
|
|
103
101
|
if (require_utils.callMemoOrStaticFn(cell.column, "getIsVisible", column_getIsVisible)) visibleCells.push(cell);
|
|
104
102
|
}
|
|
105
|
-
const { left, right } =
|
|
103
|
+
const { left, right } = row.table.atoms.columnPinning?.get() ?? require_columnPinningFeature_utils.getDefaultColumnPinningState();
|
|
106
104
|
if (!left.length && !right.length) return visibleCells;
|
|
107
105
|
const visibleCellsByColumnId = require_utils.callMemoOrStaticFn(row, "getVisibleCellsByColumnId", row_getVisibleCellsByColumnId);
|
|
108
106
|
const leftCells = [];
|
|
@@ -186,8 +184,7 @@ function table_getVisibleLeafColumns(table) {
|
|
|
186
184
|
* ```
|
|
187
185
|
*/
|
|
188
186
|
function table_setColumnVisibility(table, updater) {
|
|
189
|
-
|
|
190
|
-
(_table$options$onColu = (_table$options = table.options).onColumnVisibilityChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
|
|
187
|
+
table.options.onColumnVisibilityChange?.(updater);
|
|
191
188
|
}
|
|
192
189
|
/**
|
|
193
190
|
* Resets `columnVisibility` to the configured initial state or feature default.
|