Column Selection
Module Extensions
Section titled “Module Extensions”HTMLRevoGridElementEventMap (Extended from global)
Section titled “HTMLRevoGridElementEventMap (Extended from global)”interface HTMLRevoGridElementEventMap { /** Fires before a pointer or keyboard column-selection intent is applied. */ beforecolumnselection: ColumnSelectionIntent}Plugin API
Section titled “Plugin API”ColumnSelectionPlugin
Section titled “ColumnSelectionPlugin”Adds spreadsheet-style whole-column selection to RevoGrid.
Header clicks select columns, Shift extends an anchored span, Ctrl/Cmd toggles disjoint columns, pointer drag selects a span, and Ctrl+Space selects the focused cell’s column. Sort/filter/resize affordances keep their native behavior and do not change the column selection.
Dependencies
Section titled “Dependencies”- Auto-installed
MultiRangeSelectionPlugin: Uses MultiRangeSelectionPlugin for disjoint range rendering and clipboard behavior. - Event integration
column-selection-handoff: Clears mutually exclusive interactive row-header selection before selecting columns. - Event integration
COLUMN_DRAG_START_EVENT,COLUMN_DRAG_MOVE_EVENT,COLUMN_DRAG_END_EVENT: Keeps whole-column selection isolated from and aligned after column-move gestures.
class ColumnSelectionPlugin { /** Returns selected column props in current visual order. */ getSelectedColumns(): ColumnProp[];
/** Clears private column state before row-header selection takes ownership. */ clearFromRowHeader();
/** Clears private column state before select-all takes ownership. */ clearFromSelectAll();
destroy(): void;}resolveColumnSelection
Section titled “resolveColumnSelection”export function resolveColumnSelection({ ordered, selected, anchor, target, shift, additive,}: ResolveColumnSelectionOptions): ResolvedColumnSelection;reconcileSelectedColumns
Section titled “reconcileSelectedColumns”export function reconcileSelectedColumns( ordered: ColumnSelectionAddress[], selected: Iterable<string>,);buildColumnSelectionRanges
Section titled “buildColumnSelectionRanges”export function buildColumnSelectionRanges( ordered: ColumnSelectionAddress[], selected: Iterable<string>, rowLengths: Partial<Record<DimensionRows, number>>,): MultiRangeSelectionRange[];findActiveRangeIndex
Section titled “findActiveRangeIndex”export function findActiveRangeIndex( ranges: MultiRangeSelectionRange[], ordered: ColumnSelectionAddress[], activeId: string | null,);ColumnSelectionAddress
Section titled “ColumnSelectionAddress”export type ColumnSelectionAddress = { id: string; prop: ColumnProp; index: number; type: DimensionCols;};ColumnSelectionMode
Section titled “ColumnSelectionMode”export type ColumnSelectionMode = 'replace' | 'extend' | 'toggle' | 'add';ResolveColumnSelectionOptions
Section titled “ResolveColumnSelectionOptions”export type ResolveColumnSelectionOptions = { ordered: ColumnSelectionAddress[]; selected: Iterable<string>; anchor: string | null; target: string; shift: boolean; additive: boolean;};ResolvedColumnSelection
Section titled “ResolvedColumnSelection”export type ResolvedColumnSelection = { selected: Set<string>; anchor: string; mode: ColumnSelectionMode;};ColumnSelectionSource
Section titled “ColumnSelectionSource”export type ColumnSelectionSource = 'header' | 'drag' | 'keyboard';ColumnSelectionIntent
Section titled “ColumnSelectionIntent”export type ColumnSelectionIntent = { source: ColumnSelectionSource; mode: ColumnSelectionMode; column: ColumnRegular; selectedColumns: ColumnProp[]; anchor: ColumnProp; originalEvent: MouseEvent | PointerEvent | KeyboardEvent;};ColumnSelectionHandoffProvider
Section titled “ColumnSelectionHandoffProvider”Runtime contract used to clear mutually exclusive row-header state.
interface ColumnSelectionHandoffProvider { clearFromColumnHeader(): void}