@tanstack/table-core 9.0.0-beta.7 → 9.0.0-beta.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/core/cells/constructCell.d.ts +4 -6
- package/dist/core/cells/constructCell.js +4 -6
- package/dist/core/cells/coreCellsFeature.d.ts +1 -3
- package/dist/core/cells/coreCellsFeature.js +1 -2
- package/dist/core/cells/coreCellsFeature.types.d.ts +7 -9
- package/dist/core/cells/coreCellsFeature.utils.d.ts +5 -5
- package/dist/core/cells/coreCellsFeature.utils.js +1 -2
- package/dist/core/columns/constructColumn.d.ts +4 -6
- package/dist/core/columns/constructColumn.js +8 -9
- package/dist/core/columns/coreColumnsFeature.d.ts +1 -3
- package/dist/core/columns/coreColumnsFeature.js +13 -20
- package/dist/core/columns/coreColumnsFeature.types.d.ts +13 -15
- package/dist/core/columns/coreColumnsFeature.utils.d.ts +10 -12
- package/dist/core/columns/coreColumnsFeature.utils.js +19 -20
- package/dist/core/coreFeatures.d.ts +3 -3
- package/dist/core/coreFeatures.js +1 -2
- package/dist/core/headers/buildHeaderGroups.d.ts +3 -5
- package/dist/core/headers/buildHeaderGroups.js +99 -85
- package/dist/core/headers/constructHeader.d.ts +3 -5
- package/dist/core/headers/constructHeader.js +4 -6
- package/dist/core/headers/coreHeadersFeature.d.ts +1 -3
- package/dist/core/headers/coreHeadersFeature.js +9 -13
- package/dist/core/headers/coreHeadersFeature.types.d.ts +21 -11
- package/dist/core/headers/coreHeadersFeature.utils.d.ts +8 -8
- package/dist/core/headers/coreHeadersFeature.utils.js +14 -17
- package/dist/core/reactivity/coreReactivityFeature.types.d.ts +8 -3
- package/dist/core/reactivity/coreReactivityFeature.utils.d.ts +1 -3
- package/dist/core/reactivity/coreReactivityFeature.utils.js +1 -2
- package/dist/core/reactivity/renderPhaseReactivity.d.ts +80 -0
- package/dist/core/reactivity/renderPhaseReactivity.js +95 -0
- package/dist/core/row-models/coreRowModelsFeature.d.ts +1 -3
- package/dist/core/row-models/coreRowModelsFeature.js +1 -2
- package/dist/core/row-models/coreRowModelsFeature.types.d.ts +7 -17
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +17 -19
- package/dist/core/row-models/coreRowModelsFeature.utils.js +9 -28
- package/dist/core/row-models/createCoreRowModel.d.ts +3 -5
- package/dist/core/row-models/createCoreRowModel.js +27 -24
- package/dist/core/rows/constructRow.d.ts +3 -5
- package/dist/core/rows/constructRow.js +9 -13
- package/dist/core/rows/coreRowsFeature.d.ts +1 -3
- package/dist/core/rows/coreRowsFeature.js +20 -5
- package/dist/core/rows/coreRowsFeature.types.d.ts +42 -10
- package/dist/core/rows/coreRowsFeature.utils.d.ts +26 -9
- package/dist/core/rows/coreRowsFeature.utils.js +65 -14
- package/dist/core/table/constructTable.d.ts +2 -4
- package/dist/core/table/constructTable.js +52 -23
- package/dist/core/table/coreTablesFeature.d.ts +1 -3
- package/dist/core/table/coreTablesFeature.js +1 -2
- package/dist/core/table/coreTablesFeature.types.d.ts +56 -25
- package/dist/core/table/coreTablesFeature.utils.d.ts +34 -12
- package/dist/core/table/coreTablesFeature.utils.js +69 -24
- package/dist/experimental-worker-plugin.d.ts +5 -0
- package/dist/experimental-worker-plugin.js +6 -0
- package/dist/features/cell-selection/cellSelectionFeature.d.ts +8 -0
- package/dist/features/cell-selection/cellSelectionFeature.js +128 -0
- package/dist/features/cell-selection/cellSelectionFeature.types.d.ts +296 -0
- package/dist/features/cell-selection/cellSelectionFeature.utils.d.ts +306 -0
- package/dist/features/cell-selection/cellSelectionFeature.utils.js +873 -0
- package/dist/features/cell-selection/cellSelectionGeometry.js +121 -0
- package/dist/features/cell-spanning/cellSpanningFeature.d.ts +13 -0
- package/dist/features/cell-spanning/cellSpanningFeature.js +47 -0
- package/dist/features/cell-spanning/cellSpanningFeature.types.d.ts +150 -0
- package/dist/features/cell-spanning/cellSpanningFeature.utils.d.ts +74 -0
- package/dist/features/cell-spanning/cellSpanningFeature.utils.js +262 -0
- package/dist/features/column-faceting/columnFacetingFeature.d.ts +1 -3
- package/dist/features/column-faceting/columnFacetingFeature.js +13 -20
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -35
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +10 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +25 -14
- package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +2 -4
- package/dist/features/column-faceting/createFacetedMinMaxValues.js +9 -7
- package/dist/features/column-faceting/createFacetedRowModel.d.ts +3 -5
- package/dist/features/column-faceting/createFacetedRowModel.js +12 -17
- package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +2 -4
- package/dist/features/column-faceting/createFacetedUniqueValues.js +12 -9
- package/dist/features/column-filtering/columnFilteringFeature.d.ts +1 -3
- package/dist/features/column-filtering/columnFilteringFeature.js +4 -5
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +85 -33
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +19 -17
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +33 -21
- package/dist/features/column-filtering/createFilteredRowModel.d.ts +11 -7
- package/dist/features/column-filtering/createFilteredRowModel.js +33 -29
- package/dist/features/column-filtering/filterFns.d.ts +208 -0
- package/dist/features/column-filtering/filterFns.js +374 -0
- package/dist/features/column-filtering/filterRowsUtils.js +4 -4
- package/dist/features/column-grouping/columnGroupingFeature.d.ts +2 -4
- package/dist/features/column-grouping/columnGroupingFeature.js +7 -20
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -52
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -51
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -61
- package/dist/features/column-grouping/createGroupedRowModel.d.ts +7 -7
- package/dist/features/column-grouping/createGroupedRowModel.js +69 -38
- package/dist/features/column-ordering/columnOrderingFeature.d.ts +1 -3
- package/dist/features/column-ordering/columnOrderingFeature.js +19 -24
- package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -5
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -16
- package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -18
- package/dist/features/column-pinning/columnPinningFeature.d.ts +7 -4
- package/dist/features/column-pinning/columnPinningFeature.js +126 -146
- package/dist/features/column-pinning/columnPinningFeature.types.d.ts +53 -44
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +100 -93
- package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -150
- package/dist/features/column-resizing/columnResizingFeature.d.ts +1 -3
- package/dist/features/column-resizing/columnResizingFeature.js +1 -2
- package/dist/features/column-resizing/columnResizingFeature.types.d.ts +2 -7
- package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +7 -9
- package/dist/features/column-resizing/columnResizingFeature.utils.js +86 -48
- package/dist/features/column-sizing/columnSizingFeature.d.ts +1 -3
- package/dist/features/column-sizing/columnSizingFeature.js +35 -70
- package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -11
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -27
- package/dist/features/column-sizing/columnSizingFeature.utils.js +95 -54
- package/dist/features/column-visibility/columnVisibilityFeature.d.ts +1 -3
- package/dist/features/column-visibility/columnVisibilityFeature.js +26 -38
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +4 -6
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +20 -20
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +32 -32
- package/dist/features/global-filtering/globalFilteringFeature.d.ts +1 -3
- package/dist/features/global-filtering/globalFilteringFeature.js +3 -4
- package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +4 -6
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -13
- package/dist/features/global-filtering/globalFilteringFeature.utils.js +7 -8
- package/dist/features/row-aggregation/aggregationFns.d.ts +66 -0
- package/dist/features/row-aggregation/aggregationFns.js +279 -0
- package/dist/features/row-aggregation/rowAggregationFeature.d.ts +8 -0
- package/dist/features/row-aggregation/rowAggregationFeature.js +35 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.d.ts +193 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.js +11 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.d.ts +46 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.js +235 -0
- package/dist/features/row-expanding/createExpandedRowModel.d.ts +3 -5
- package/dist/features/row-expanding/createExpandedRowModel.js +9 -13
- package/dist/features/row-expanding/rowExpandingFeature.d.ts +1 -3
- package/dist/features/row-expanding/rowExpandingFeature.js +1 -2
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +6 -17
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +11 -16
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +30 -33
- package/dist/features/row-pagination/createPaginatedRowModel.d.ts +3 -5
- package/dist/features/row-pagination/createPaginatedRowModel.js +7 -12
- package/dist/features/row-pagination/rowPaginationFeature.d.ts +1 -3
- package/dist/features/row-pagination/rowPaginationFeature.js +1 -2
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +5 -16
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +18 -20
- package/dist/features/row-pagination/rowPaginationFeature.utils.js +10 -17
- package/dist/features/row-pinning/rowPinningFeature.d.ts +1 -3
- package/dist/features/row-pinning/rowPinningFeature.js +5 -18
- package/dist/features/row-pinning/rowPinningFeature.types.d.ts +3 -5
- package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +8 -10
- package/dist/features/row-pinning/rowPinningFeature.utils.js +10 -16
- package/dist/features/row-selection/rowSelectionFeature.d.ts +1 -3
- package/dist/features/row-selection/rowSelectionFeature.js +68 -25
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +51 -15
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +60 -35
- package/dist/features/row-selection/rowSelectionFeature.utils.js +142 -89
- package/dist/features/row-sorting/createSortedRowModel.d.ts +11 -7
- package/dist/features/row-sorting/createSortedRowModel.js +71 -53
- package/dist/features/row-sorting/rowSortingFeature.d.ts +1 -3
- package/dist/features/row-sorting/rowSortingFeature.js +2 -2
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +61 -24
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +31 -22
- package/dist/features/row-sorting/rowSortingFeature.utils.js +51 -25
- package/dist/features/row-sorting/sortFns.d.ts +96 -0
- package/dist/features/row-sorting/sortFns.js +216 -0
- package/dist/features/stockFeatures.d.ts +7 -3
- package/dist/features/stockFeatures.js +7 -2
- package/dist/flex-render.d.ts +2 -4
- package/dist/flex-render.js +10 -3
- package/dist/helpers/columnHelper.d.ts +3 -5
- package/dist/helpers/columnHelper.js +1 -2
- package/dist/helpers/metaHelper.d.ts +25 -0
- package/dist/helpers/metaHelper.js +28 -0
- package/dist/helpers/tableFeatures.d.ts +35 -8
- package/dist/helpers/tableFeatures.js +33 -5
- package/dist/helpers/tableOptions.d.ts +1 -3
- package/dist/helpers/tableOptions.js +1 -2
- package/dist/index.d.ts +34 -27
- package/dist/index.js +10 -5
- package/dist/reactivity.d.ts +2 -1
- package/dist/reactivity.js +2 -1
- package/dist/static-functions.d.ts +12 -9
- package/dist/static-functions.js +12 -9
- package/dist/store-reactivity-bindings.d.ts +2 -4
- package/dist/store-reactivity-bindings.js +4 -5
- package/dist/types/Cell.d.ts +9 -5
- package/dist/types/Column.d.ts +13 -15
- package/dist/types/ColumnDef.d.ts +39 -21
- package/dist/types/Header.d.ts +3 -5
- package/dist/types/HeaderGroup.d.ts +3 -5
- package/dist/types/Row.d.ts +7 -7
- package/dist/types/RowModel.d.ts +11 -25
- package/dist/types/RowModelFns.d.ts +5 -7
- package/dist/types/Table.d.ts +29 -32
- package/dist/types/TableFeatures.d.ts +388 -24
- package/dist/types/TableOptions.d.ts +24 -14
- package/dist/types/TableState.d.ts +8 -8
- package/dist/types/type-utils.d.ts +10 -4
- package/dist/utils.d.ts +32 -26
- package/dist/utils.js +52 -32
- package/dist/worker/createTableWorker.d.ts +100 -0
- package/dist/worker/createTableWorker.js +185 -0
- package/dist/worker/createWorkerRowModel.d.ts +40 -0
- package/dist/worker/createWorkerRowModel.js +77 -0
- package/dist/worker/initTableWorker.d.ts +31 -0
- package/dist/worker/initTableWorker.js +99 -0
- package/dist/worker/rebuildRowModel.d.ts +11 -0
- package/dist/worker/rebuildRowModel.js +71 -0
- package/dist/worker/serializeRowModel.js +51 -0
- package/dist/worker/tableWorkerProtocol.d.ts +88 -0
- package/dist/worker/tableWorkerProtocol.js +26 -0
- package/package.json +12 -28
- package/skills/aggregation/SKILL.md +141 -0
- package/skills/api-not-found/SKILL.md +113 -0
- package/skills/cell-selection/SKILL.md +204 -0
- package/skills/cell-spanning/SKILL.md +162 -0
- package/skills/client-vs-server/SKILL.md +164 -0
- package/skills/column-faceting/SKILL.md +97 -0
- package/skills/column-filtering/SKILL.md +87 -0
- package/skills/column-ordering/SKILL.md +75 -0
- package/skills/column-pinning/SKILL.md +89 -0
- package/skills/column-resizing/SKILL.md +91 -0
- package/skills/column-sizing/SKILL.md +72 -0
- package/skills/column-visibility/SKILL.md +75 -0
- package/skills/core/SKILL.md +175 -0
- package/skills/custom-features/SKILL.md +235 -0
- package/skills/expanding/SKILL.md +80 -0
- package/skills/global-filtering/SKILL.md +84 -0
- package/skills/grouping/SKILL.md +51 -401
- package/skills/migrate-v8-to-v9/SKILL.md +275 -416
- package/skills/pagination/SKILL.md +37 -344
- package/skills/row-pinning/SKILL.md +47 -234
- package/skills/row-selection/SKILL.md +75 -302
- package/skills/sorting/SKILL.md +45 -303
- package/skills/table-features/SKILL.md +159 -0
- package/skills/typescript/SKILL.md +126 -0
- package/dist/core/cells/constructCell.cjs +0 -34
- package/dist/core/cells/constructCell.cjs.map +0 -1
- package/dist/core/cells/constructCell.d.cts +0 -17
- package/dist/core/cells/constructCell.js.map +0 -1
- package/dist/core/cells/coreCellsFeature.cjs +0 -21
- package/dist/core/cells/coreCellsFeature.cjs.map +0 -1
- package/dist/core/cells/coreCellsFeature.d.cts +0 -10
- package/dist/core/cells/coreCellsFeature.js.map +0 -1
- package/dist/core/cells/coreCellsFeature.types.d.cts +0 -57
- package/dist/core/cells/coreCellsFeature.utils.cjs +0 -57
- package/dist/core/cells/coreCellsFeature.utils.cjs.map +0 -1
- package/dist/core/cells/coreCellsFeature.utils.d.cts +0 -53
- package/dist/core/cells/coreCellsFeature.utils.js.map +0 -1
- package/dist/core/columns/constructColumn.cjs +0 -61
- package/dist/core/columns/constructColumn.cjs.map +0 -1
- package/dist/core/columns/constructColumn.d.cts +0 -16
- package/dist/core/columns/constructColumn.js.map +0 -1
- package/dist/core/columns/coreColumnsFeature.cjs +0 -70
- package/dist/core/columns/coreColumnsFeature.cjs.map +0 -1
- package/dist/core/columns/coreColumnsFeature.d.cts +0 -10
- package/dist/core/columns/coreColumnsFeature.js.map +0 -1
- package/dist/core/columns/coreColumnsFeature.types.d.cts +0 -94
- package/dist/core/columns/coreColumnsFeature.utils.cjs +0 -187
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +0 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.cts +0 -119
- package/dist/core/columns/coreColumnsFeature.utils.js.map +0 -1
- package/dist/core/coreFeatures.cjs +0 -25
- package/dist/core/coreFeatures.cjs.map +0 -1
- package/dist/core/coreFeatures.d.cts +0 -26
- package/dist/core/coreFeatures.js.map +0 -1
- package/dist/core/headers/buildHeaderGroups.cjs +0 -103
- package/dist/core/headers/buildHeaderGroups.cjs.map +0 -1
- package/dist/core/headers/buildHeaderGroups.d.cts +0 -16
- package/dist/core/headers/buildHeaderGroups.js.map +0 -1
- package/dist/core/headers/constructHeader.cjs +0 -41
- package/dist/core/headers/constructHeader.cjs.map +0 -1
- package/dist/core/headers/constructHeader.d.cts +0 -22
- package/dist/core/headers/constructHeader.js.map +0 -1
- package/dist/core/headers/coreHeadersFeature.cjs +0 -55
- package/dist/core/headers/coreHeadersFeature.cjs.map +0 -1
- package/dist/core/headers/coreHeadersFeature.d.cts +0 -10
- package/dist/core/headers/coreHeadersFeature.js.map +0 -1
- package/dist/core/headers/coreHeadersFeature.types.d.cts +0 -106
- package/dist/core/headers/coreHeadersFeature.utils.cjs +0 -142
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +0 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.cts +0 -85
- package/dist/core/headers/coreHeadersFeature.utils.js.map +0 -1
- package/dist/core/reactivity/coreReactivityFeature.types.d.cts +0 -48
- package/dist/core/reactivity/coreReactivityFeature.utils.cjs +0 -24
- package/dist/core/reactivity/coreReactivityFeature.utils.cjs.map +0 -1
- package/dist/core/reactivity/coreReactivityFeature.utils.d.cts +0 -24
- package/dist/core/reactivity/coreReactivityFeature.utils.js.map +0 -1
- package/dist/core/row-models/coreRowModelsFeature.cjs +0 -27
- package/dist/core/row-models/coreRowModelsFeature.cjs.map +0 -1
- package/dist/core/row-models/coreRowModelsFeature.d.cts +0 -10
- package/dist/core/row-models/coreRowModelsFeature.js.map +0 -1
- package/dist/core/row-models/coreRowModelsFeature.types.d.cts +0 -41
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +0 -215
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +0 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +0 -153
- package/dist/core/row-models/coreRowModelsFeature.utils.js.map +0 -1
- package/dist/core/row-models/createCoreRowModel.cjs +0 -52
- package/dist/core/row-models/createCoreRowModel.cjs.map +0 -1
- package/dist/core/row-models/createCoreRowModel.d.cts +0 -15
- package/dist/core/row-models/createCoreRowModel.js.map +0 -1
- package/dist/core/rows/constructRow.cjs +0 -44
- package/dist/core/rows/constructRow.cjs.map +0 -1
- package/dist/core/rows/constructRow.d.cts +0 -15
- package/dist/core/rows/constructRow.js.map +0 -1
- package/dist/core/rows/coreRowsFeature.cjs +0 -37
- package/dist/core/rows/coreRowsFeature.cjs.map +0 -1
- package/dist/core/rows/coreRowsFeature.d.cts +0 -10
- package/dist/core/rows/coreRowsFeature.js.map +0 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +0 -99
- package/dist/core/rows/coreRowsFeature.utils.cjs +0 -192
- package/dist/core/rows/coreRowsFeature.utils.cjs.map +0 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +0 -127
- package/dist/core/rows/coreRowsFeature.utils.js.map +0 -1
- package/dist/core/table/constructTable.cjs +0 -118
- package/dist/core/table/constructTable.cjs.map +0 -1
- package/dist/core/table/constructTable.d.cts +0 -22
- package/dist/core/table/constructTable.js.map +0 -1
- package/dist/core/table/coreTablesFeature.cjs +0 -17
- package/dist/core/table/coreTablesFeature.cjs.map +0 -1
- package/dist/core/table/coreTablesFeature.d.cts +0 -10
- package/dist/core/table/coreTablesFeature.js.map +0 -1
- package/dist/core/table/coreTablesFeature.types.d.cts +0 -186
- package/dist/core/table/coreTablesFeature.utils.cjs +0 -96
- package/dist/core/table/coreTablesFeature.utils.cjs.map +0 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +0 -57
- package/dist/core/table/coreTablesFeature.utils.js.map +0 -1
- package/dist/features/column-faceting/columnFacetingFeature.cjs +0 -61
- package/dist/features/column-faceting/columnFacetingFeature.cjs.map +0 -1
- package/dist/features/column-faceting/columnFacetingFeature.d.cts +0 -10
- package/dist/features/column-faceting/columnFacetingFeature.js.map +0 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +0 -85
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +0 -103
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +0 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +0 -84
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +0 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +0 -44
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +0 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +0 -14
- package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +0 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs +0 -50
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +0 -1
- package/dist/features/column-faceting/createFacetedRowModel.d.cts +0 -15
- package/dist/features/column-faceting/createFacetedRowModel.js.map +0 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs +0 -41
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +0 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +0 -14
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +0 -1
- package/dist/features/column-filtering/columnFilteringFeature.cjs +0 -50
- package/dist/features/column-filtering/columnFilteringFeature.cjs.map +0 -1
- package/dist/features/column-filtering/columnFilteringFeature.d.cts +0 -10
- package/dist/features/column-filtering/columnFilteringFeature.js.map +0 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +0 -160
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +0 -212
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +0 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +0 -143
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +0 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs +0 -110
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +0 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.cts +0 -16
- package/dist/features/column-filtering/createFilteredRowModel.js.map +0 -1
- package/dist/features/column-filtering/filterRowsUtils.cjs +0 -81
- package/dist/features/column-filtering/filterRowsUtils.cjs.map +0 -1
- package/dist/features/column-filtering/filterRowsUtils.js.map +0 -1
- package/dist/features/column-grouping/columnGroupingFeature.cjs +0 -67
- package/dist/features/column-grouping/columnGroupingFeature.cjs.map +0 -1
- package/dist/features/column-grouping/columnGroupingFeature.d.cts +0 -10
- package/dist/features/column-grouping/columnGroupingFeature.js.map +0 -1
- package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +0 -165
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +0 -250
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +0 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +0 -190
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +0 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs +0 -119
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +0 -1
- package/dist/features/column-grouping/createGroupedRowModel.d.cts +0 -16
- package/dist/features/column-grouping/createGroupedRowModel.js.map +0 -1
- package/dist/features/column-ordering/columnOrderingFeature.cjs +0 -58
- package/dist/features/column-ordering/columnOrderingFeature.cjs.map +0 -1
- package/dist/features/column-ordering/columnOrderingFeature.d.cts +0 -10
- package/dist/features/column-ordering/columnOrderingFeature.js.map +0 -1
- package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +0 -56
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +0 -172
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +0 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +0 -107
- package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +0 -1
- package/dist/features/column-pinning/columnPinningFeature.cjs +0 -221
- package/dist/features/column-pinning/columnPinningFeature.cjs.map +0 -1
- package/dist/features/column-pinning/columnPinningFeature.d.cts +0 -10
- package/dist/features/column-pinning/columnPinningFeature.js.map +0 -1
- package/dist/features/column-pinning/columnPinningFeature.types.d.cts +0 -178
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs +0 -585
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +0 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +0 -375
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +0 -1
- package/dist/features/column-resizing/columnResizingFeature.cjs +0 -41
- package/dist/features/column-resizing/columnResizingFeature.cjs.map +0 -1
- package/dist/features/column-resizing/columnResizingFeature.d.cts +0 -10
- package/dist/features/column-resizing/columnResizingFeature.js.map +0 -1
- package/dist/features/column-resizing/columnResizingFeature.types.d.cts +0 -81
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +0 -246
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +0 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +0 -109
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +0 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +0 -124
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +0 -1
- package/dist/features/column-sizing/columnSizingFeature.d.cts +0 -10
- package/dist/features/column-sizing/columnSizingFeature.js.map +0 -1
- package/dist/features/column-sizing/columnSizingFeature.types.d.cts +0 -96
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +0 -256
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +0 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +0 -182
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +0 -1
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +0 -94
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +0 -1
- package/dist/features/column-visibility/columnVisibilityFeature.d.cts +0 -10
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +0 -1
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +0 -97
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +0 -283
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +0 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +0 -189
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +0 -1
- package/dist/features/global-filtering/globalFilteringFeature.cjs +0 -41
- package/dist/features/global-filtering/globalFilteringFeature.cjs.map +0 -1
- package/dist/features/global-filtering/globalFilteringFeature.d.cts +0 -10
- package/dist/features/global-filtering/globalFilteringFeature.js.map +0 -1
- package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +0 -71
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +0 -88
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +0 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +0 -74
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +0 -1
- package/dist/features/row-expanding/createExpandedRowModel.cjs +0 -59
- package/dist/features/row-expanding/createExpandedRowModel.cjs.map +0 -1
- package/dist/features/row-expanding/createExpandedRowModel.d.cts +0 -21
- package/dist/features/row-expanding/createExpandedRowModel.js.map +0 -1
- package/dist/features/row-expanding/rowExpandingFeature.cjs +0 -47
- package/dist/features/row-expanding/rowExpandingFeature.cjs.map +0 -1
- package/dist/features/row-expanding/rowExpandingFeature.d.cts +0 -10
- package/dist/features/row-expanding/rowExpandingFeature.js.map +0 -1
- package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +0 -127
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +0 -281
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +0 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +0 -191
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +0 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs +0 -62
- package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +0 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.cts +0 -15
- package/dist/features/row-pagination/createPaginatedRowModel.js.map +0 -1
- package/dist/features/row-pagination/rowPaginationFeature.cjs +0 -45
- package/dist/features/row-pagination/rowPaginationFeature.cjs.map +0 -1
- package/dist/features/row-pagination/rowPaginationFeature.d.cts +0 -10
- package/dist/features/row-pagination/rowPaginationFeature.js.map +0 -1
- package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +0 -135
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +0 -312
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +0 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +0 -218
- package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +0 -1
- package/dist/features/row-pinning/rowPinningFeature.cjs +0 -67
- package/dist/features/row-pinning/rowPinningFeature.cjs.map +0 -1
- package/dist/features/row-pinning/rowPinningFeature.d.cts +0 -10
- package/dist/features/row-pinning/rowPinningFeature.js.map +0 -1
- package/dist/features/row-pinning/rowPinningFeature.types.d.cts +0 -83
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs +0 -229
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +0 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +0 -143
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +0 -1
- package/dist/features/row-selection/rowSelectionFeature.cjs +0 -75
- package/dist/features/row-selection/rowSelectionFeature.cjs.map +0 -1
- package/dist/features/row-selection/rowSelectionFeature.d.cts +0 -10
- package/dist/features/row-selection/rowSelectionFeature.js.map +0 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.cts +0 -136
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +0 -514
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +0 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +0 -318
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +0 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +0 -95
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +0 -1
- package/dist/features/row-sorting/createSortedRowModel.d.cts +0 -16
- package/dist/features/row-sorting/createSortedRowModel.js.map +0 -1
- package/dist/features/row-sorting/rowSortingFeature.cjs +0 -55
- package/dist/features/row-sorting/rowSortingFeature.cjs.map +0 -1
- package/dist/features/row-sorting/rowSortingFeature.d.cts +0 -10
- package/dist/features/row-sorting/rowSortingFeature.js.map +0 -1
- package/dist/features/row-sorting/rowSortingFeature.types.d.cts +0 -188
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +0 -305
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +0 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +0 -193
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +0 -1
- package/dist/features/stockFeatures.cjs +0 -41
- package/dist/features/stockFeatures.cjs.map +0 -1
- package/dist/features/stockFeatures.d.cts +0 -41
- package/dist/features/stockFeatures.js.map +0 -1
- package/dist/flex-render.cjs +0 -29
- package/dist/flex-render.cjs.map +0 -1
- package/dist/flex-render.d.cts +0 -34
- package/dist/flex-render.js.map +0 -1
- package/dist/fns/aggregationFns.cjs +0 -161
- package/dist/fns/aggregationFns.cjs.map +0 -1
- package/dist/fns/aggregationFns.d.cts +0 -85
- package/dist/fns/aggregationFns.d.ts +0 -85
- package/dist/fns/aggregationFns.js +0 -151
- package/dist/fns/aggregationFns.js.map +0 -1
- package/dist/fns/filterFns.cjs +0 -201
- package/dist/fns/filterFns.cjs.map +0 -1
- package/dist/fns/filterFns.d.cts +0 -167
- package/dist/fns/filterFns.d.ts +0 -167
- package/dist/fns/filterFns.js +0 -185
- package/dist/fns/filterFns.js.map +0 -1
- package/dist/fns/sortFns.cjs +0 -130
- package/dist/fns/sortFns.cjs.map +0 -1
- package/dist/fns/sortFns.d.cts +0 -65
- package/dist/fns/sortFns.d.ts +0 -65
- package/dist/fns/sortFns.js +0 -122
- package/dist/fns/sortFns.js.map +0 -1
- package/dist/helpers/columnHelper.cjs +0 -41
- package/dist/helpers/columnHelper.cjs.map +0 -1
- package/dist/helpers/columnHelper.d.cts +0 -71
- package/dist/helpers/columnHelper.js.map +0 -1
- package/dist/helpers/tableFeatures.cjs +0 -20
- package/dist/helpers/tableFeatures.cjs.map +0 -1
- package/dist/helpers/tableFeatures.d.cts +0 -18
- package/dist/helpers/tableFeatures.js.map +0 -1
- package/dist/helpers/tableOptions.cjs +0 -15
- package/dist/helpers/tableOptions.cjs.map +0 -1
- package/dist/helpers/tableOptions.d.cts +0 -57
- package/dist/helpers/tableOptions.js.map +0 -1
- package/dist/index.cjs +0 -133
- package/dist/index.d.cts +0 -78
- package/dist/reactivity.cjs +0 -4
- package/dist/reactivity.d.cts +0 -3
- package/dist/static-functions.cjs +0 -263
- package/dist/static-functions.d.cts +0 -21
- package/dist/store-reactivity-bindings.cjs +0 -44
- package/dist/store-reactivity-bindings.cjs.map +0 -1
- package/dist/store-reactivity-bindings.d.cts +0 -22
- package/dist/store-reactivity-bindings.js.map +0 -1
- package/dist/types/Cell.d.cts +0 -14
- package/dist/types/Column.d.cts +0 -36
- package/dist/types/ColumnDef.d.cts +0 -109
- package/dist/types/Header.d.cts +0 -16
- package/dist/types/HeaderGroup.d.cts +0 -10
- package/dist/types/Row.d.cts +0 -26
- package/dist/types/RowModel.d.cts +0 -36
- package/dist/types/RowModelFns.d.cts +0 -18
- package/dist/types/Table.d.cts +0 -70
- package/dist/types/TableFeatures.d.cts +0 -53
- package/dist/types/TableOptions.d.cts +0 -69
- package/dist/types/TableState.d.cts +0 -48
- package/dist/types/type-utils.d.cts +0 -23
- package/dist/utils.cjs +0 -243
- package/dist/utils.cjs.map +0 -1
- package/dist/utils.d.cts +0 -114
- package/dist/utils.js.map +0 -1
- package/skills/column-definitions/SKILL.md +0 -333
- package/skills/column-layout/SKILL.md +0 -328
- package/skills/column-layout/references/subsystems.md +0 -220
- package/skills/customizing-feature-behavior/SKILL.md +0 -416
- package/skills/filtering/SKILL.md +0 -357
- package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
- package/skills/row-expanding/SKILL.md +0 -348
- package/skills/setup/SKILL.md +0 -400
- package/skills/state-management/SKILL.md +0 -388
- package/src/core/cells/constructCell.ts +0 -55
- package/src/core/cells/coreCellsFeature.ts +0 -27
- package/src/core/cells/coreCellsFeature.types.ts +0 -68
- package/src/core/cells/coreCellsFeature.utils.ts +0 -68
- package/src/core/columns/constructColumn.ts +0 -119
- package/src/core/columns/coreColumnsFeature.ts +0 -73
- package/src/core/columns/coreColumnsFeature.types.ts +0 -108
- package/src/core/columns/coreColumnsFeature.utils.ts +0 -275
- package/src/core/coreFeatures.ts +0 -31
- package/src/core/headers/buildHeaderGroups.ts +0 -182
- package/src/core/headers/constructHeader.ts +0 -67
- package/src/core/headers/coreHeadersFeature.ts +0 -56
- package/src/core/headers/coreHeadersFeature.types.ts +0 -125
- package/src/core/headers/coreHeadersFeature.utils.ts +0 -200
- package/src/core/reactivity/coreReactivityFeature.types.ts +0 -56
- package/src/core/reactivity/coreReactivityFeature.utils.ts +0 -44
- package/src/core/row-models/coreRowModelsFeature.ts +0 -62
- package/src/core/row-models/coreRowModelsFeature.types.ts +0 -64
- package/src/core/row-models/coreRowModelsFeature.utils.ts +0 -272
- package/src/core/row-models/createCoreRowModel.ts +0 -93
- package/src/core/rows/constructRow.ts +0 -66
- package/src/core/rows/coreRowsFeature.ts +0 -62
- package/src/core/rows/coreRowsFeature.types.ts +0 -117
- package/src/core/rows/coreRowsFeature.utils.ts +0 -264
- package/src/core/table/constructTable.ts +0 -172
- package/src/core/table/coreTablesFeature.ts +0 -19
- package/src/core/table/coreTablesFeature.types.ts +0 -216
- package/src/core/table/coreTablesFeature.utils.ts +0 -131
- package/src/features/column-faceting/columnFacetingFeature.ts +0 -89
- package/src/features/column-faceting/columnFacetingFeature.types.ts +0 -109
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +0 -145
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +0 -66
- package/src/features/column-faceting/createFacetedRowModel.ts +0 -85
- package/src/features/column-faceting/createFacetedUniqueValues.ts +0 -66
- package/src/features/column-filtering/columnFilteringFeature.ts +0 -86
- package/src/features/column-filtering/columnFilteringFeature.types.ts +0 -232
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +0 -331
- package/src/features/column-filtering/createFilteredRowModel.ts +0 -183
- package/src/features/column-filtering/filterRowsUtils.ts +0 -157
- package/src/features/column-grouping/columnGroupingFeature.ts +0 -115
- package/src/features/column-grouping/columnGroupingFeature.types.ts +0 -226
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +0 -354
- package/src/features/column-grouping/createGroupedRowModel.ts +0 -220
- package/src/features/column-ordering/columnOrderingFeature.ts +0 -73
- package/src/features/column-ordering/columnOrderingFeature.types.ts +0 -60
- package/src/features/column-ordering/columnOrderingFeature.utils.ts +0 -241
- package/src/features/column-pinning/columnPinningFeature.ts +0 -316
- package/src/features/column-pinning/columnPinningFeature.types.ts +0 -192
- package/src/features/column-pinning/columnPinningFeature.utils.ts +0 -908
- package/src/features/column-resizing/columnResizingFeature.ts +0 -65
- package/src/features/column-resizing/columnResizingFeature.types.ts +0 -89
- package/src/features/column-resizing/columnResizingFeature.utils.ts +0 -364
- package/src/features/column-sizing/columnSizingFeature.ts +0 -145
- package/src/features/column-sizing/columnSizingFeature.types.ts +0 -102
- package/src/features/column-sizing/columnSizingFeature.utils.ts +0 -381
- package/src/features/column-visibility/columnVisibilityFeature.ts +0 -122
- package/src/features/column-visibility/columnVisibilityFeature.types.ts +0 -112
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +0 -384
- package/src/features/global-filtering/globalFilteringFeature.ts +0 -65
- package/src/features/global-filtering/globalFilteringFeature.types.ts +0 -91
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +0 -118
- package/src/features/row-expanding/createExpandedRowModel.ts +0 -82
- package/src/features/row-expanding/rowExpandingFeature.ts +0 -94
- package/src/features/row-expanding/rowExpandingFeature.types.ts +0 -147
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +0 -374
- package/src/features/row-pagination/createPaginatedRowModel.ts +0 -83
- package/src/features/row-pagination/rowPaginationFeature.ts +0 -95
- package/src/features/row-pagination/rowPaginationFeature.types.ts +0 -152
- package/src/features/row-pagination/rowPaginationFeature.utils.ts +0 -400
- package/src/features/row-pinning/rowPinningFeature.ts +0 -97
- package/src/features/row-pinning/rowPinningFeature.types.ts +0 -95
- package/src/features/row-pinning/rowPinningFeature.utils.ts +0 -323
- package/src/features/row-selection/rowSelectionFeature.ts +0 -140
- package/src/features/row-selection/rowSelectionFeature.types.ts +0 -151
- package/src/features/row-selection/rowSelectionFeature.utils.ts +0 -745
- package/src/features/row-sorting/createSortedRowModel.ts +0 -157
- package/src/features/row-sorting/rowSortingFeature.ts +0 -103
- package/src/features/row-sorting/rowSortingFeature.types.ts +0 -235
- package/src/features/row-sorting/rowSortingFeature.utils.ts +0 -489
- package/src/features/stockFeatures.ts +0 -53
- package/src/flex-render.ts +0 -70
- package/src/fns/aggregationFns.ts +0 -245
- package/src/fns/filterFns.ts +0 -382
- package/src/fns/sortFns.ts +0 -240
- package/src/helpers/columnHelper.ts +0 -122
- package/src/helpers/tableFeatures.ts +0 -24
- package/src/helpers/tableOptions.ts +0 -117
- package/src/index.ts +0 -138
- package/src/process-env.d.ts +0 -6
- package/src/reactivity.ts +0 -2
- package/src/static-functions.ts +0 -31
- package/src/store-reactivity-bindings.ts +0 -47
- package/src/types/Cell.ts +0 -21
- package/src/types/Column.ts +0 -51
- package/src/types/ColumnDef.ts +0 -228
- package/src/types/Header.ts +0 -23
- package/src/types/HeaderGroup.ts +0 -13
- package/src/types/Row.ts +0 -34
- package/src/types/RowModel.ts +0 -98
- package/src/types/RowModelFns.ts +0 -32
- package/src/types/Table.ts +0 -91
- package/src/types/TableFeatures.ts +0 -101
- package/src/types/TableOptions.ts +0 -101
- package/src/types/TableState.ts +0 -47
- package/src/types/type-utils.ts +0 -84
- package/src/utils.ts +0 -441
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
import { CellData, OnChangeFn, RowData, Updater } from "../../types/type-utils.js";
|
|
2
|
+
import { Cell } from "../../types/Cell.js";
|
|
3
|
+
import { TableFeatures } from "../../types/TableFeatures.js";
|
|
4
|
+
//#region src/features/cell-selection/cellSelectionFeature.types.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* A single rectangular cell selection, stored as its two defining corners.
|
|
7
|
+
*
|
|
8
|
+
* The `anchor` corner stays put while the `focus` corner moves during a
|
|
9
|
+
* shift-extend or a drag, so the pair carries strictly more information than a
|
|
10
|
+
* normalized min/max rectangle would. Corners are stored as flat row and column
|
|
11
|
+
* ids rather than nested objects or a packed `rowId_columnId` key, because
|
|
12
|
+
* `getRowId` is user-supplied and may return ids containing any separator.
|
|
13
|
+
*/
|
|
14
|
+
interface CellSelectionRange {
|
|
15
|
+
anchorColumnId: string;
|
|
16
|
+
anchorRowId: string;
|
|
17
|
+
focusColumnId: string;
|
|
18
|
+
focusRowId: string;
|
|
19
|
+
/**
|
|
20
|
+
* How this range changes the selection produced by the ranges before it.
|
|
21
|
+
* Defaults to `include`.
|
|
22
|
+
*/
|
|
23
|
+
operation?: CellSelectionRangeOperation;
|
|
24
|
+
}
|
|
25
|
+
type CellSelectionRangeOperation = 'include' | 'exclude';
|
|
26
|
+
/**
|
|
27
|
+
* Ordered range operations that produce the final selection. The last entry is
|
|
28
|
+
* the active operation that shift-extend and drag operate on.
|
|
29
|
+
*
|
|
30
|
+
* A bare array, matching `SortingState` and `ColumnFiltersState`. Drag session
|
|
31
|
+
* state deliberately lives outside this slice as non-reactive instance data, so
|
|
32
|
+
* nothing here is transient and the whole slice is safe to persist.
|
|
33
|
+
*/
|
|
34
|
+
type CellSelectionState = Array<CellSelectionRange>;
|
|
35
|
+
interface TableState_CellSelection {
|
|
36
|
+
cellSelection: CellSelectionState;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A range resolved into inclusive display-order indexes.
|
|
40
|
+
*
|
|
41
|
+
* Ranges whose corners no longer resolve are omitted rather than clamped, so a
|
|
42
|
+
* range with a filtered-out corner contributes nothing while remaining in state.
|
|
43
|
+
*/
|
|
44
|
+
interface CellSelectionBounds {
|
|
45
|
+
maxColumnIndex: number;
|
|
46
|
+
maxRowIndex: number;
|
|
47
|
+
minColumnIndex: number;
|
|
48
|
+
minRowIndex: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Which sides of a selected cell sit on the outer boundary of the selection.
|
|
52
|
+
*/
|
|
53
|
+
interface CellSelectionEdges {
|
|
54
|
+
bottom: boolean;
|
|
55
|
+
left: boolean;
|
|
56
|
+
right: boolean;
|
|
57
|
+
top: boolean;
|
|
58
|
+
}
|
|
59
|
+
type CellSelectionDirection = 'up' | 'down' | 'left' | 'right';
|
|
60
|
+
type CellSelectionRangeMode = 'replace' | 'include' | 'exclude';
|
|
61
|
+
interface SelectCellRangeOptions {
|
|
62
|
+
/**
|
|
63
|
+
* Whether to replace the selection, add the range, or subtract the range.
|
|
64
|
+
* Defaults to `replace`.
|
|
65
|
+
*/
|
|
66
|
+
mode?: CellSelectionRangeMode;
|
|
67
|
+
/**
|
|
68
|
+
* Whether the range should be added alongside existing ranges rather than
|
|
69
|
+
* replacing them. Defaults to `false`.
|
|
70
|
+
*
|
|
71
|
+
* @deprecated Use `mode: 'include'` instead.
|
|
72
|
+
*/
|
|
73
|
+
additive?: boolean;
|
|
74
|
+
}
|
|
75
|
+
interface TableOptions_CellSelection<in out TFeatures extends TableFeatures, in out TData extends RowData> {
|
|
76
|
+
/**
|
|
77
|
+
* Resets cell selection to `initialState.cellSelection` whenever `data`
|
|
78
|
+
* changes. Defaults to `true`.
|
|
79
|
+
*
|
|
80
|
+
* Ranges are stored as row and column ids, so new data would otherwise leave
|
|
81
|
+
* a selection pointing at rows that no longer exist, or silently re-select
|
|
82
|
+
* cells if the new data happens to reuse ids. Set to `false` to keep ranges
|
|
83
|
+
* across data changes, and note `autoResetAll` overrides this.
|
|
84
|
+
*/
|
|
85
|
+
autoResetCellSelection?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Enables inclusive cell range selection through shift-click and drag.
|
|
88
|
+
* Defaults to `true`.
|
|
89
|
+
*/
|
|
90
|
+
enableCellRangeSelection?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Allows cells to be selected.
|
|
93
|
+
*
|
|
94
|
+
* Provide a predicate to decide per cell. A column def may also opt out with
|
|
95
|
+
* its own `enableCellSelection: false`. Defaults to `true`.
|
|
96
|
+
*/
|
|
97
|
+
enableCellSelection?: boolean | ((cell: Cell<TFeatures, TData, any>) => boolean);
|
|
98
|
+
/**
|
|
99
|
+
* Enables extending a selection by dragging across cells. Defaults to `true`.
|
|
100
|
+
*/
|
|
101
|
+
enableCellSelectionDrag?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Allows modifier interactions to add or subtract ranges. Defaults to `true`.
|
|
104
|
+
*/
|
|
105
|
+
enableMultiCellRangeSelection?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Determines whether a selection-start event should extend the active range
|
|
108
|
+
* instead of replacing the selection.
|
|
109
|
+
*
|
|
110
|
+
* By default, events with `shiftKey` directly on the event or on
|
|
111
|
+
* `event.nativeEvent` are treated as range-selection events.
|
|
112
|
+
*/
|
|
113
|
+
isCellRangeSelectionEvent?: (event: unknown) => boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Determines whether a selection-start event should add or subtract a new
|
|
116
|
+
* rectangle. The operation depends on whether the starting cell is selected.
|
|
117
|
+
*
|
|
118
|
+
* By default, events with `ctrlKey` or `metaKey` directly on the event or on
|
|
119
|
+
* `event.nativeEvent` are treated as multi-range events.
|
|
120
|
+
*/
|
|
121
|
+
isMultiCellRangeSelectionEvent?: (event: unknown) => boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Called with an updater when cell selection state changes. Pair this with
|
|
124
|
+
* `state.cellSelection` when using external state; external atoms can own the
|
|
125
|
+
* slice without this callback.
|
|
126
|
+
*
|
|
127
|
+
* A drag emits one change per cell crossed. Subscribe to
|
|
128
|
+
* `table.atoms.cellSelection` for finer-grained reads when that matters.
|
|
129
|
+
*/
|
|
130
|
+
onCellSelectionChange?: OnChangeFn<CellSelectionState>;
|
|
131
|
+
}
|
|
132
|
+
interface ColumnDef_CellSelection {
|
|
133
|
+
/**
|
|
134
|
+
* Allows cells in this column to be selected. Defaults to `true`.
|
|
135
|
+
*/
|
|
136
|
+
enableCellSelection?: boolean;
|
|
137
|
+
}
|
|
138
|
+
interface Cell_CellSelection {
|
|
139
|
+
/**
|
|
140
|
+
* Checks whether this cell can currently be selected.
|
|
141
|
+
*/
|
|
142
|
+
getCanSelect: () => boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Checks whether this cell is the active cell, i.e. the anchor of the most
|
|
145
|
+
* recent range.
|
|
146
|
+
*/
|
|
147
|
+
getIsFocused: () => boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Checks whether this cell falls inside the final positive selection.
|
|
150
|
+
*/
|
|
151
|
+
getIsSelected: () => boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Returns which sides of this cell sit on the outer boundary of the
|
|
154
|
+
* selection, for rendering a spreadsheet-style outline without each cell
|
|
155
|
+
* inspecting its neighbours.
|
|
156
|
+
*
|
|
157
|
+
* All sides are `false` when the cell is not selected.
|
|
158
|
+
*/
|
|
159
|
+
getSelectionEdges: () => CellSelectionEdges;
|
|
160
|
+
/**
|
|
161
|
+
* Creates a handler that extends the active range to this cell while a drag
|
|
162
|
+
* is in progress. Bind it to `mouseenter`.
|
|
163
|
+
*
|
|
164
|
+
* The handler no-ops unless a drag is open, and skips redundant writes when
|
|
165
|
+
* the active range already focuses this cell.
|
|
166
|
+
*/
|
|
167
|
+
getSelectionExtendHandler: () => (event: unknown) => void;
|
|
168
|
+
/**
|
|
169
|
+
* Creates a handler that begins a selection at this cell. Bind it to
|
|
170
|
+
* `mousedown`.
|
|
171
|
+
*
|
|
172
|
+
* Pass the original mouse event, or a framework event whose `nativeEvent` is
|
|
173
|
+
* that event, so modifier keys can be detected. The handler attaches its own
|
|
174
|
+
* document-level `mouseup` listener so a drag released outside the table
|
|
175
|
+
* still ends correctly; pass `contextDocument` when the table renders into
|
|
176
|
+
* another document, such as an iframe or popout window.
|
|
177
|
+
*/
|
|
178
|
+
getSelectionStartHandler: (contextDocument?: Document) => (event: unknown) => void;
|
|
179
|
+
/**
|
|
180
|
+
* Returns `0` for the focused cell and `-1` otherwise, for roving tabindex.
|
|
181
|
+
*/
|
|
182
|
+
getTabIndex: () => number;
|
|
183
|
+
}
|
|
184
|
+
interface Table_CellSelection<in out TFeatures extends TableFeatures, in out TData extends RowData> {
|
|
185
|
+
/**
|
|
186
|
+
* Whether a drag selection is currently open.
|
|
187
|
+
*
|
|
188
|
+
* Non-reactive instance data rather than state: only the mouse handlers read
|
|
189
|
+
* it, nothing renders from it, and keeping it out of the slice means a
|
|
190
|
+
* selection persisted mid-drag cannot rehydrate into a stuck drag.
|
|
191
|
+
*
|
|
192
|
+
* @internal
|
|
193
|
+
*/
|
|
194
|
+
_isSelectingCells: boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Schedules a cell selection reset after `data` changes.
|
|
197
|
+
*
|
|
198
|
+
* Honors `autoResetAll` and `autoResetCellSelection`. Called by the core row
|
|
199
|
+
* model; you rarely need to invoke it yourself.
|
|
200
|
+
*/
|
|
201
|
+
autoResetCellSelection: () => void;
|
|
202
|
+
/**
|
|
203
|
+
* Extends the active range one step in a direction, keeping its anchor fixed.
|
|
204
|
+
*/
|
|
205
|
+
extendCellSelection: (direction: CellSelectionDirection) => void;
|
|
206
|
+
/**
|
|
207
|
+
* Returns the final positive selection as disjoint, inclusive display-order
|
|
208
|
+
* index rectangles after all include and exclude operations are applied.
|
|
209
|
+
*
|
|
210
|
+
* This is the memoized cache every per-cell read goes through. Ranges whose
|
|
211
|
+
* corners no longer resolve are omitted.
|
|
212
|
+
*/
|
|
213
|
+
getCellSelectionBounds: () => Array<CellSelectionBounds>;
|
|
214
|
+
/**
|
|
215
|
+
* Returns the merged-cell rectangles of the rendered rows in selection's
|
|
216
|
+
* display-order index space, or an empty array when `cellSpanningFeature`
|
|
217
|
+
* is not registered.
|
|
218
|
+
*
|
|
219
|
+
* Selection rectangles expand to fully enclose these, so a merged cell is
|
|
220
|
+
* always entirely selected or entirely unselected.
|
|
221
|
+
*/
|
|
222
|
+
getCellSelectionMergeBounds: () => Array<CellSelectionBounds>;
|
|
223
|
+
/**
|
|
224
|
+
* Returns the ids of all columns intersected by the selection.
|
|
225
|
+
*/
|
|
226
|
+
getCellSelectionColumnIds: () => Array<string>;
|
|
227
|
+
/**
|
|
228
|
+
* Returns a column id to display-index map for the current column order.
|
|
229
|
+
*
|
|
230
|
+
* Registered so the lookup stays memoized even when `columnOrderingFeature`
|
|
231
|
+
* is absent, since its `getColumnIndexes` static rebuilds on every call.
|
|
232
|
+
*
|
|
233
|
+
* @internal
|
|
234
|
+
*/
|
|
235
|
+
getCellSelectionColumnIndexes: () => Record<string, number>;
|
|
236
|
+
/**
|
|
237
|
+
* Returns the ids of all rows intersected by the selection.
|
|
238
|
+
*/
|
|
239
|
+
getCellSelectionRowIds: () => Array<string>;
|
|
240
|
+
/**
|
|
241
|
+
* Returns the active cell, i.e. the anchor of the most recent operation.
|
|
242
|
+
* An exclusion's active cell is focused even though it is not selected.
|
|
243
|
+
*/
|
|
244
|
+
getFocusedCell: () => Cell<TFeatures, TData, any> | undefined;
|
|
245
|
+
/**
|
|
246
|
+
* Returns the number of selected cells.
|
|
247
|
+
*
|
|
248
|
+
* Computed with rectangle arithmetic unless a per-cell
|
|
249
|
+
* `enableCellSelection` predicate requires enumeration.
|
|
250
|
+
*/
|
|
251
|
+
getSelectedCellCount: () => number;
|
|
252
|
+
/**
|
|
253
|
+
* Returns the unique ids of all selected cells, in row-major order.
|
|
254
|
+
*
|
|
255
|
+
* This expands the selection, so it costs one pass over the selected area.
|
|
256
|
+
* It is memoized and never runs unless called.
|
|
257
|
+
*/
|
|
258
|
+
getSelectedCellIds: () => Array<string>;
|
|
259
|
+
/**
|
|
260
|
+
* Returns each final positive selection region's values as a row-major grid.
|
|
261
|
+
*
|
|
262
|
+
* Indexed as `[regionIndex][rowIndex][columnIndex]`. Serializing this to
|
|
263
|
+
* clipboard text is left to userland, since the delimiter, the null
|
|
264
|
+
* representation, and any quoting rules are application decisions.
|
|
265
|
+
*/
|
|
266
|
+
getSelectedCellRangesData: () => Array<Array<Array<unknown>>>;
|
|
267
|
+
/**
|
|
268
|
+
* Moves the selection one step in a direction, collapsing it to a single
|
|
269
|
+
* cell. Columns that cannot be selected are skipped over.
|
|
270
|
+
*/
|
|
271
|
+
moveCellSelection: (direction: CellSelectionDirection) => void;
|
|
272
|
+
/**
|
|
273
|
+
* Resets `cellSelection` to `initialState.cellSelection`.
|
|
274
|
+
*
|
|
275
|
+
* Pass `true` to ignore initial state and reset to an empty selection.
|
|
276
|
+
*/
|
|
277
|
+
resetCellSelection: (defaultState?: boolean) => void;
|
|
278
|
+
/**
|
|
279
|
+
* Selects every selectable cell in the table as one range.
|
|
280
|
+
*/
|
|
281
|
+
selectAllCells: () => void;
|
|
282
|
+
/**
|
|
283
|
+
* Selects a rectangle using the requested replace/include/exclude mode.
|
|
284
|
+
*/
|
|
285
|
+
selectCellRange: (range: CellSelectionRange, opts?: SelectCellRangeOptions) => void;
|
|
286
|
+
/**
|
|
287
|
+
* Updates cell selection state with a next value or updater function.
|
|
288
|
+
*/
|
|
289
|
+
setCellSelection: (updater: Updater<CellSelectionState>) => void;
|
|
290
|
+
/**
|
|
291
|
+
* Collapses the selection to a single cell at the given coordinates.
|
|
292
|
+
*/
|
|
293
|
+
setFocusedCell: (rowId: string, columnId: string) => void;
|
|
294
|
+
}
|
|
295
|
+
//#endregion
|
|
296
|
+
export { CellSelectionBounds, CellSelectionDirection, CellSelectionEdges, CellSelectionRange, CellSelectionRangeMode, CellSelectionRangeOperation, CellSelectionState, Cell_CellSelection, ColumnDef_CellSelection, SelectCellRangeOptions, TableOptions_CellSelection, TableState_CellSelection, Table_CellSelection };
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { CellData, RowData, Updater } from "../../types/type-utils.js";
|
|
2
|
+
import { CellSelectionBounds, CellSelectionDirection, CellSelectionEdges, CellSelectionRange, CellSelectionState, SelectCellRangeOptions } from "./cellSelectionFeature.types.js";
|
|
3
|
+
import { Table } from "../../types/Table.js";
|
|
4
|
+
import { Cell } from "../../types/Cell.js";
|
|
5
|
+
import { TableFeatures } from "../../types/TableFeatures.js";
|
|
6
|
+
//#region src/features/cell-selection/cellSelectionFeature.utils.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Creates the default cell selection state.
|
|
9
|
+
*
|
|
10
|
+
* The feature default is an empty selection. Reset APIs use this value when
|
|
11
|
+
* `defaultState` is `true`.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const selection = getDefaultCellSelectionState()
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
declare function getDefaultCellSelectionState(): CellSelectionState;
|
|
19
|
+
/**
|
|
20
|
+
* Routes a cell selection updater through the table's selection change handler.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* table_setCellSelection(table, (old) => old.slice(0, -1))
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
declare function table_setCellSelection<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, updater: Updater<CellSelectionState>): void;
|
|
28
|
+
/**
|
|
29
|
+
* Resets `cellSelection` to the configured initial state or feature default.
|
|
30
|
+
*
|
|
31
|
+
* With no argument, the reset clones `table.initialState.cellSelection` when it
|
|
32
|
+
* exists. Passing `true` ignores initial state and resets to an empty selection.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* table_resetCellSelection(table, true)
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
declare function table_resetCellSelection<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, defaultState?: boolean): void;
|
|
40
|
+
/**
|
|
41
|
+
* Schedules a cell selection reset after `data` changes.
|
|
42
|
+
*
|
|
43
|
+
* Ranges are stored as row and column ids, so without this a data swap would
|
|
44
|
+
* leave a selection pointing at rows that no longer exist, or silently
|
|
45
|
+
* re-select cells whenever new data reuses ids. The reset runs when
|
|
46
|
+
* `autoResetAll` or `autoResetCellSelection` allows it, defaulting to on.
|
|
47
|
+
*
|
|
48
|
+
* Resetting to `initialState.cellSelection` rather than to empty means the
|
|
49
|
+
* first row-model computation is a no-op, matching `table_autoResetExpanded`.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* table_autoResetCellSelection(table)
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare function table_autoResetCellSelection<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): void;
|
|
57
|
+
/**
|
|
58
|
+
* Builds a column id to render-order index map.
|
|
59
|
+
*
|
|
60
|
+
* Registered by this feature so the lookup stays memoized even when
|
|
61
|
+
* `columnOrderingFeature` is absent, since that feature's `getColumnIndexes`
|
|
62
|
+
* static rebuilds all four maps on every call, which would make per-cell reads
|
|
63
|
+
* O(columns).
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* const index = table_getCellSelectionColumnIndexes(table)[columnId]
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
declare function table_getCellSelectionColumnIndexes<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Record<string, number>;
|
|
71
|
+
/**
|
|
72
|
+
* Resolves the merged-cell rectangles of the rendered rows into selection's
|
|
73
|
+
* own index space.
|
|
74
|
+
*
|
|
75
|
+
* The span index positions rows by their paginated render order while
|
|
76
|
+
* selection positions them by pre-paginated display order, so each merge is
|
|
77
|
+
* mapped through `row.getDisplayIndex()`. A merge whose rows do not map to a
|
|
78
|
+
* contiguous display range is skipped defensively; it then behaves like
|
|
79
|
+
* unmerged cells instead of corrupting the geometry.
|
|
80
|
+
*
|
|
81
|
+
* Returns an empty array when `cellSpanningFeature` is not registered, which
|
|
82
|
+
* keeps every selection code path identical to the span-unaware behavior.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* const merges = table_getCellSelectionMergeBounds(table)
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
declare function table_getCellSelectionMergeBounds<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<CellSelectionBounds>;
|
|
90
|
+
/**
|
|
91
|
+
* Resolves ordered range operations into disjoint, positive display-order
|
|
92
|
+
* index rectangles.
|
|
93
|
+
*
|
|
94
|
+
* This is the single cache every per-cell read goes through, so index lookups
|
|
95
|
+
* happen once per invalidation rather than once per cell. A range whose corners
|
|
96
|
+
* no longer resolve, for example because its anchor row was filtered out, is
|
|
97
|
+
* omitted rather than clamped, so it contributes nothing while remaining in
|
|
98
|
+
* state and returns intact when the filter clears.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```ts
|
|
102
|
+
* const bounds = table_getCellSelectionBounds(table)
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
declare function table_getCellSelectionBounds<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<CellSelectionBounds>;
|
|
106
|
+
/**
|
|
107
|
+
* Checks whether this cell can currently be selected.
|
|
108
|
+
*
|
|
109
|
+
* A column def opting out with `enableCellSelection: false` wins over the table
|
|
110
|
+
* option, matching how the other per-column enable flags resolve.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* const canSelect = cell_getCanSelect(cell)
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
declare function cell_getCanSelect<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Checks whether this cell falls inside the final positive selection.
|
|
120
|
+
*
|
|
121
|
+
* Deliberately not memoized. Registering this through `assignPrototypeAPIs`
|
|
122
|
+
* with `memoDeps` would allocate a memo closure and dependency array per cell,
|
|
123
|
+
* which costs more than the handful of integer comparisons it would save.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```ts
|
|
127
|
+
* const isSelected = cell_getIsSelected(cell)
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
declare function cell_getIsSelected<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Checks whether this cell is the active cell.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* const isFocused = cell_getIsFocused(cell)
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
declare function cell_getIsFocused<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Returns `0` for the focused cell and `-1` otherwise, for roving tabindex.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* const tabIndex = cell_getTabIndex(cell)
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
declare function cell_getTabIndex<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): number;
|
|
149
|
+
/**
|
|
150
|
+
* Returns which sides of this cell sit on the outer boundary of the selection.
|
|
151
|
+
*
|
|
152
|
+
* A side is an edge when the neighbouring cell in that direction is not itself
|
|
153
|
+
* covered by a range, which is what lets a consumer draw a single outline
|
|
154
|
+
* around an arbitrary union of rectangles.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```ts
|
|
158
|
+
* const { top, right, bottom, left } = cell_getSelectionEdges(cell)
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
declare function cell_getSelectionEdges<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): CellSelectionEdges;
|
|
162
|
+
/**
|
|
163
|
+
* Returns the active cell, i.e. the anchor of the most recent operation.
|
|
164
|
+
*
|
|
165
|
+
* Focus is derived rather than stored: in spreadsheet semantics, dragging from
|
|
166
|
+
* A1 to C5 leaves the active cell at A1, so the active range's anchor already
|
|
167
|
+
* is the active cell.
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```ts
|
|
171
|
+
* const cell = table_getFocusedCell(table)
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
declare function table_getFocusedCell<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Cell<TFeatures, TData, any> | undefined;
|
|
175
|
+
/**
|
|
176
|
+
* Collapses the selection to a single cell at the given coordinates.
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```ts
|
|
180
|
+
* table_setFocusedCell(table, '3', 'firstName')
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
declare function table_setFocusedCell<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, rowId: string, columnId: string): void;
|
|
184
|
+
/**
|
|
185
|
+
* Selects a rectangle using replace, include, or exclude semantics.
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```ts
|
|
189
|
+
* table_selectCellRange(table, range, { mode: 'exclude' })
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
declare function table_selectCellRange<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, range: CellSelectionRange, opts?: SelectCellRangeOptions): void;
|
|
193
|
+
/**
|
|
194
|
+
* Selects every selectable cell in the table as one range.
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```ts
|
|
198
|
+
* table_selectAllCells(table)
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
declare function table_selectAllCells<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): void;
|
|
202
|
+
/**
|
|
203
|
+
* Moves the selection one step in a direction, collapsing it to a single cell.
|
|
204
|
+
*
|
|
205
|
+
* With nothing selected, this selects the first selectable cell so keyboard
|
|
206
|
+
* navigation has somewhere to start.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```ts
|
|
210
|
+
* table_moveCellSelection(table, 'down')
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
declare function table_moveCellSelection<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, direction: CellSelectionDirection): void;
|
|
214
|
+
/**
|
|
215
|
+
* Extends the active range one step in a direction, keeping its anchor fixed.
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```ts
|
|
219
|
+
* table_extendCellSelection(table, 'right')
|
|
220
|
+
* ```
|
|
221
|
+
*/
|
|
222
|
+
declare function table_extendCellSelection<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, direction: CellSelectionDirection): void;
|
|
223
|
+
/**
|
|
224
|
+
* Returns the ids of all selected cells, in row-major order.
|
|
225
|
+
*
|
|
226
|
+
* Cells covered by overlapping ranges are returned once, at their first
|
|
227
|
+
* occurrence.
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* ```ts
|
|
231
|
+
* const ids = table_getSelectedCellIds(table)
|
|
232
|
+
* ```
|
|
233
|
+
*/
|
|
234
|
+
declare function table_getSelectedCellIds<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<string>;
|
|
235
|
+
/**
|
|
236
|
+
* Returns each final positive region's values as a row-major grid.
|
|
237
|
+
*
|
|
238
|
+
* This is the raw material for clipboard export. Serializing it to text is left
|
|
239
|
+
* to userland, since the delimiter, the null representation, and whether values
|
|
240
|
+
* containing delimiters get quoted are all application decisions.
|
|
241
|
+
*
|
|
242
|
+
* @example
|
|
243
|
+
* ```ts
|
|
244
|
+
* const [firstRange] = table_getSelectedCellRangesData(table)
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
247
|
+
declare function table_getSelectedCellRangesData<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<Array<Array<unknown>>>;
|
|
248
|
+
/**
|
|
249
|
+
* Returns the number of selected cells.
|
|
250
|
+
*
|
|
251
|
+
* Uses rectangle arithmetic over the normalized, disjoint positive regions.
|
|
252
|
+
* A per-cell `enableCellSelection` predicate requires enumeration.
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```ts
|
|
256
|
+
* const count = table_getSelectedCellCount(table)
|
|
257
|
+
* ```
|
|
258
|
+
*/
|
|
259
|
+
declare function table_getSelectedCellCount<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): number;
|
|
260
|
+
/**
|
|
261
|
+
* Returns the ids of all rows intersected by the selection.
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* ```ts
|
|
265
|
+
* const rowIds = table_getCellSelectionRowIds(table)
|
|
266
|
+
* ```
|
|
267
|
+
*/
|
|
268
|
+
declare function table_getCellSelectionRowIds<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<string>;
|
|
269
|
+
/**
|
|
270
|
+
* Returns the ids of all columns intersected by the selection.
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```ts
|
|
274
|
+
* const columnIds = table_getCellSelectionColumnIds(table)
|
|
275
|
+
* ```
|
|
276
|
+
*/
|
|
277
|
+
declare function table_getCellSelectionColumnIds<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<string>;
|
|
278
|
+
/**
|
|
279
|
+
* Creates a handler that begins a selection at this cell.
|
|
280
|
+
*
|
|
281
|
+
* Follows `header_getResizeHandler`: the enable check is resolved once outside
|
|
282
|
+
* the returned closure and guarded again inside it, the document is injectable
|
|
283
|
+
* for SSR and cross-document rendering, and the document-level `mouseup`
|
|
284
|
+
* listener is attached here so a drag released outside the table still ends.
|
|
285
|
+
*
|
|
286
|
+
* @example
|
|
287
|
+
* ```tsx
|
|
288
|
+
* <td onMouseDown={cell.getSelectionStartHandler()} />
|
|
289
|
+
* ```
|
|
290
|
+
*/
|
|
291
|
+
declare function cell_getSelectionStartHandler<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>, _contextDocument?: Document): (e: unknown) => void;
|
|
292
|
+
/**
|
|
293
|
+
* Creates a handler that extends the active range to this cell during a drag.
|
|
294
|
+
*
|
|
295
|
+
* No rAF coalescing is needed here, unlike the resize handler: `mouseenter`
|
|
296
|
+
* fires once per cell boundary crossed rather than continuously, and deferring
|
|
297
|
+
* it by a frame would only delay the highlight.
|
|
298
|
+
*
|
|
299
|
+
* @example
|
|
300
|
+
* ```tsx
|
|
301
|
+
* <td onMouseEnter={cell.getSelectionExtendHandler()} />
|
|
302
|
+
* ```
|
|
303
|
+
*/
|
|
304
|
+
declare function cell_getSelectionExtendHandler<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): (_e: unknown) => void;
|
|
305
|
+
//#endregion
|
|
306
|
+
export { cell_getCanSelect, cell_getIsFocused, cell_getIsSelected, cell_getSelectionEdges, cell_getSelectionExtendHandler, cell_getSelectionStartHandler, cell_getTabIndex, getDefaultCellSelectionState, table_autoResetCellSelection, table_extendCellSelection, table_getCellSelectionBounds, table_getCellSelectionColumnIds, table_getCellSelectionColumnIndexes, table_getCellSelectionMergeBounds, table_getCellSelectionRowIds, table_getFocusedCell, table_getSelectedCellCount, table_getSelectedCellIds, table_getSelectedCellRangesData, table_moveCellSelection, table_resetCellSelection, table_selectAllCells, table_selectCellRange, table_setCellSelection, table_setFocusedCell };
|