← All packages

API reference

@searsuite/sear-plugin-resize

Sheet row and column dimensions, resize interaction, rendering, and persistence.

45 exportsderived from source

classSheetResizePluginsource ↗
class SheetResizePlugin extends Plugin<SearCoreSheet, CellProperties, ResizeState>

Owns row and column resize state, interaction, and visual feedback.

constructorconstructor
SheetResizePlugin(coordEngine: CoordinateEngine, cursorEngine: CursorEngine, textShaper: TextShaper, displayTextRegistry: CellDisplayTextReader, pointerCapture: PointerCapture, commands?: SheetCommandBus, platform?: Platform, cursorRegistry?: CursorRegistry, dimensions?: SheetResizeDimensions | null, commandDataEngine?: DataEngine): SheetResizePlugin

Creates a SheetResizePlugin instance.

coordEngine: CoordinateEngine
cursorEngine: CursorEngine
textShaper: TextShaper
displayTextRegistry: CellDisplayTextReader
pointerCapture: PointerCapture
commands: SheetCommandBus
platform: Platform
cursorRegistry: CursorRegistry
dimensions: SheetResizeDimensions | null
commandDataEngine: DataEngine
propertydepth
depth: number

Draw and event ordering hint; lower values run earlier.

propertydocumentState
readonly documentState: { capture: (state: ResizeState): { rowSizes: RowShapeDimensionsCSRMatrix } | undefined; codec: { deserialize: (payload: unknown, path: string): { rowSizes: RowShapeDimensionsCSRMatrix }; key: string; serialize: (state: RowSizesDocumentState): SerializedSparseMatrix<number> }; key: string } | { capture: (state: ResizeState): { columnSizes: ColumnShapeDimensionsCSRMatrix } | undefined; codec: { deserialize: (payload: unknown, path: string): { columnSizes: ColumnShapeDimensionsCSRMatrix }; key: string; serialize: (state: ColumnSizesDocumentState): SerializedSparseMatrix<number> }; key: string } | { capture: (state: ResizeState): { rowHiddenOriginalSizes: CSRMatrix<unknown> } | undefined; codec: { deserialize: (payload: unknown, path: string): { rowHiddenOriginalSizes: CSRMatrix<unknown> }; key: string; serialize: (state: RowHiddenOriginalSizesDocumentState): SerializedSparseMatrix<unknown> | undefined }; key: string } | { capture: (state: ResizeState): { columnHiddenOriginalSizes: CSRMatrix<unknown> } | undefined; codec: { deserialize: (payload: unknown, path: string): { columnHiddenOriginalSizes: CSRMatrix<unknown> }; key: string; serialize: (state: ColumnHiddenOriginalSizesDocumentState): SerializedSparseMatrix<unknown> | undefined }; key: string }[]

SheetResizePlugin owns persisted dimension export modules.

propertyinterestedIn
interestedIn: string[]

Resize owns dimension OT and tracks sheet-structure shifts.

propertytransactionOT
readonly transactionOT: { collaborative: boolean; definition: TransactionOTDefinition<MatrixOTOperation<unknown>>; ownerId: string; relations: OTTransformRelation<MatrixOTOperation<unknown>, MatrixOTOperation<unknown>>[] }

Resize transactions share the registered MatrixOT algebra.

propertydocumentStatestatic
readonly documentState: { capture: (state: ResizeState): { rowSizes: RowShapeDimensionsCSRMatrix } | undefined; codec: { deserialize: (payload: unknown, path: string): { rowSizes: RowShapeDimensionsCSRMatrix }; key: string; serialize: (state: RowSizesDocumentState): SerializedSparseMatrix<number> }; key: string } | { capture: (state: ResizeState): { columnSizes: ColumnShapeDimensionsCSRMatrix } | undefined; codec: { deserialize: (payload: unknown, path: string): { columnSizes: ColumnShapeDimensionsCSRMatrix }; key: string; serialize: (state: ColumnSizesDocumentState): SerializedSparseMatrix<number> }; key: string } | { capture: (state: ResizeState): { rowHiddenOriginalSizes: CSRMatrix<unknown> } | undefined; codec: { deserialize: (payload: unknown, path: string): { rowHiddenOriginalSizes: CSRMatrix<unknown> }; key: string; serialize: (state: RowHiddenOriginalSizesDocumentState): SerializedSparseMatrix<unknown> | undefined }; key: string } | { capture: (state: ResizeState): { columnHiddenOriginalSizes: CSRMatrix<unknown> } | undefined; codec: { deserialize: (payload: unknown, path: string): { columnHiddenOriginalSizes: CSRMatrix<unknown> }; key: string; serialize: (state: ColumnHiddenOriginalSizesDocumentState): SerializedSparseMatrix<unknown> | undefined }; key: string }[]

Document-state export contributions for resize-owned dimensions.

propertypluginKeystatic
readonly pluginKey: PluginKey

Stable plugin key shared by all resize plugin instances.

propertysymbolstatic
readonly symbol: symbol

DI token for resolving SheetResizePlugin.

methodapply
apply(pluginState: ResizeState, transaction: Transaction): ResizeState | null

Applies dimension and hidden-size operations owned by the resize plugin.

ReturnsUpdated plugin state, or null when the transaction does not affect dimensions.

pluginState: ResizeState

Current resize plugin state.

transaction: Transaction

Transaction containing resize or sheet-structure operations.

methodbeginResizeDrag
beginResizeDrag(input: SheetBeginResizeDragInput): void

Applies a command-owned resize drag start to local interaction state.

input: SheetBeginResizeDragInput
methoddirtyRect
dirtyRect(searCore: SearCoreSheet, transaction: Transaction): PositionRect<unknown> | null

Marks the visible viewport dirty after row or column resize operations.

ReturnsViewport dirty rectangle when a resize occurred, otherwise null.

searCore: SearCoreSheet

Sheet core containing render and scroll services.

transaction: Transaction

Transaction to inspect for resize operations.

methodendResizeDrag
endResizeDrag(): void

Clears command-owned resize drag state.

methodgetPluginConfig
getPluginConfig(): unknown

Returns the plugin config.

methodgetResizeState
getResizeState(): ResizeDragState

Returns a detached view of the local drag session.

methodonDblClick
onDblClick(searCore: SearCoreSheet, _event: EventWithOffsetAndTarget<CellProperties>): boolean | void

Handles a double-click pointer event.

searCore: SearCoreSheet
_event: EventWithOffsetAndTarget<CellProperties>
methodonMouseDown
onMouseDown(searCore: SearCoreSheet, _event: EventWithOffsetAndTarget<CellProperties>): boolean | void

Handles the start of a pointer press sequence.

searCore: SearCoreSheet
_event: EventWithOffsetAndTarget<CellProperties>
methodonMouseMove
onMouseMove(searCore: SearCoreSheet, _event: EventWithOffsetAndTarget<CellProperties>): boolean | void

Handles pointer movement over the host surface.

searCore: SearCoreSheet
_event: EventWithOffsetAndTarget<CellProperties>
methodonMouseUp
onMouseUp(searCore: SearCoreSheet, event: EventWithOffsetAndTarget<CellProperties>): void

Handles the end of a pointer press sequence.

searCore: SearCoreSheet
event: EventWithOffsetAndTarget<CellProperties>
methodregisterCommands
registerCommands(commands: SheetCommandBus): void

Registers the commands.

commands: SheetCommandBus
methodregisterState
registerState(): { dataEngine: { dataView: { fieldKey: string; select: (resizeState: unknown): unknown; viewKey: string }[] }; key: PluginKey; state: ResizeState }[]

Registers the state.

methodrender
render(searCore: SearCoreSheet): Node<CellProperties>[] | null

Renders SheetResizePlugin scene output.

searCore: SearCoreSheet
methodsetResizeDimensions
setResizeDimensions(dimensions: SheetResizeDimensions): void

Installs the dimension matrices owned by this resize plugin instance.

dimensions: SheetResizeDimensions

Shared row, column, and hidden-size matrices for the sheet.

methodupdateResizeDrag
updateResizeDrag(input: SheetUpdateResizeDragInput): void

Applies a command-owned resize drag move to local interaction state.

input: SheetUpdateResizeDragInput
Inherited members 21

Inherited from Plugin.

interfaceSheetBeginResizeDragInputsource ↗
interface SheetBeginResizeDragInput

Public input for starting a resize drag session.

propertyaxis
readonly axis: SheetResizeAxis
propertyinitialSizes
readonly initialSizes: readonly SheetResizeDragInitialSize[]
propertyprimaryIndex
readonly primaryIndex: number
propertyworld
readonly world: { x: number; y: number }
interfaceSheetDimensionResizeInputsource ↗
interface SheetDimensionResizeInput

One explicit dimension change used by batch resize commands.

propertyindex
readonly index: number
propertypreviousSize
readonly previousSize?: number
propertysize
readonly size: number
interfaceSheetHideColumnsInputsource ↗
interface SheetHideColumnsInput

Public input for hiding columns starting at index.

propertycount
readonly count?: number
propertyindex
readonly index: number
interfaceSheetHideRowsInputsource ↗
interface SheetHideRowsInput

Public input for hiding rows starting at index.

propertycount
readonly count?: number
propertyindex
readonly index: number
interfaceSheetResizeColumnsBatchInputsource ↗
interface SheetResizeColumnsBatchInput

Public input for resizing arbitrary columns to explicit sizes.

propertysizes
readonly sizes: readonly SheetDimensionResizeInput[]
interfaceSheetResizeColumnsRangeInputsource ↗
interface SheetResizeColumnsRangeInput

Public input for resizing columns starting at index to a shared size.

propertycount
readonly count?: number
propertyindex
readonly index: number
propertysize
readonly size: number
interfaceSheetResizeDimensionCommandDataSourcesource ↗
interface SheetResizeDimensionCommandDataSource

Resize-owned data required to create invertible row and column dimension operations.

propertytarget
readonly target: PluginKey

Plugin key that owns row and column dimension state.

methodgetColumnCount
getColumnCount(): number

Current column dimension count.

methodgetDefaultColumnSize
getDefaultColumnSize(): number

Default column width used when no sparse override is stored.

methodgetDefaultRowSize
getDefaultRowSize(): number

Default row height used when no sparse override is stored.

methodgetRowCount
getRowCount(): number

Current row dimension count.

methodreadColumnHiddenOriginalSize
readColumnHiddenOriginalSize(index: number): number | null

Reads the cached original size for a hidden column, if one exists.

index: number
methodreadColumnSize
readColumnSize(index: number): number

Reads the current column width at index.

index: number
methodreadRowHiddenOriginalSize
readRowHiddenOriginalSize(index: number): number | null

Reads the cached original size for a hidden row, if one exists.

index: number
methodreadRowSize
readRowSize(index: number): number

Reads the current row height at index.

index: number
interfaceSheetResizeDimensionssource ↗
interface SheetResizeDimensions

Resize-owned dimension matrices accepted by SheetResizePlugin during setup.

propertycolumnHiddenOriginalSizes
columnHiddenOriginalSizes: CSRMatrix<number>

Original column sizes captured while columns are hidden.

propertycolumnSizes
columnSizes: DimensionsCSRMatrix

Column dimension matrix used for column width state.

propertyrowHiddenOriginalSizes
rowHiddenOriginalSizes: CSRMatrix<number>

Original row sizes captured while rows are hidden.

propertyrowSizes
rowSizes: DimensionsCSRMatrix

Row dimension matrix used for row height state.

interfaceSheetResizeDragCommandControllersource ↗
interface SheetResizeDragCommandController

Resize drag-session state controller owned by SheetResizePlugin.

methodbeginResizeDrag
beginResizeDrag(input: SheetBeginResizeDragInput): void
input: SheetBeginResizeDragInput
methodendResizeDrag
endResizeDrag(): void
methodupdateResizeDrag
updateResizeDrag(input: SheetUpdateResizeDragInput): void
input: SheetUpdateResizeDragInput
interfaceSheetResizeDragInitialSizesource ↗
interface SheetResizeDragInitialSize

One captured size at the start of a resize drag.

propertyindex
readonly index: number
propertysize
readonly size: number
interfaceSheetResizeRowsBatchInputsource ↗
interface SheetResizeRowsBatchInput

Public input for resizing arbitrary rows to explicit sizes.

propertysizes
readonly sizes: readonly SheetDimensionResizeInput[]
interfaceSheetResizeRowsRangeInputsource ↗
interface SheetResizeRowsRangeInput

Public input for resizing rows starting at index to a shared size.

propertycount
readonly count?: number
propertyindex
readonly index: number
propertysize
readonly size: number
interfaceSheetUnhideColumnsInputsource ↗
interface SheetUnhideColumnsInput

Public input for unhiding columns starting at index.

propertycount
readonly count?: number
propertyindex
readonly index: number
interfaceSheetUnhideRowsInputsource ↗
interface SheetUnhideRowsInput

Public input for unhiding rows starting at index.

propertycount
readonly count?: number
propertyindex
readonly index: number
interfaceSheetUpdateResizeDragInputsource ↗
interface SheetUpdateResizeDragInput

Public input for moving an active resize drag session.

propertyworld
readonly world: { x: number; y: number }
typeSheetResizeAxissource ↗
type SheetResizeAxis = "row" | "col"

Supported resize interaction axis.

typeSheetResizeColumnsInputsource ↗
type SheetResizeColumnsInput = SheetResizeColumnsRangeInput | SheetResizeColumnsBatchInput

Public input for resizing columns.

typeSheetResizeRowsInputsource ↗
type SheetResizeRowsInput = SheetResizeRowsRangeInput | SheetResizeRowsBatchInput

Public input for resizing rows.

variableBeginSheetResizeDragCommandsource ↗
BeginSheetResizeDragCommand: SheetCommandDefinition<SheetBeginResizeDragInput, SheetCommandResult>

Command that starts resize drag-session state through the command bus.

variableEndSheetResizeDragCommandsource ↗
EndSheetResizeDragCommand: SheetCommandDefinition<void, SheetCommandResult>

Command that clears resize drag-session state through the command bus.

variableHideSheetColumnsCommandsource ↗
HideSheetColumnsCommand: SheetCommandDefinition<SheetHideColumnsInput, SheetCommandResult>

Hides one or more columns by resizing them to zero.

variableHideSheetRowsCommandsource ↗
HideSheetRowsCommand: SheetCommandDefinition<SheetHideRowsInput, SheetCommandResult>

Hides one or more rows by resizing them to zero.

variableResizeSheetColumnsCommandsource ↗
ResizeSheetColumnsCommand: SheetCommandDefinition<SheetResizeColumnsInput, SheetCommandResult>

Resizes one or more column widths.

variableResizeSheetRowsCommandsource ↗
ResizeSheetRowsCommand: SheetCommandDefinition<SheetResizeRowsInput, SheetCommandResult>

Resizes one or more row heights.

variableSheetColumnHiddenOriginalSizesFieldKeysource ↗
SheetColumnHiddenOriginalSizesFieldKey: "sheet.resize.columnHiddenOriginalSizes"

DataEngine field for original dimensions of hidden columns owned by SheetResizePlugin.

variableSheetColumnSizesFieldKeysource ↗
SheetColumnSizesFieldKey: "sheet.resize.columnSizes"

DataEngine field for column dimensions owned by SheetResizePlugin.

variableSheetRowHiddenOriginalSizesFieldKeysource ↗
SheetRowHiddenOriginalSizesFieldKey: "sheet.resize.rowHiddenOriginalSizes"

DataEngine field for original dimensions of hidden rows owned by SheetResizePlugin.

variableSheetRowSizesFieldKeysource ↗
SheetRowSizesFieldKey: "sheet.resize.rowSizes"

DataEngine field for row dimensions owned by SheetResizePlugin.

variableUnhideSheetColumnsCommandsource ↗
UnhideSheetColumnsCommand: SheetCommandDefinition<SheetUnhideColumnsInput, SheetCommandResult>

Restores one or more hidden columns from resize-owned hidden-size state.

variableUnhideSheetRowsCommandsource ↗
UnhideSheetRowsCommand: SheetCommandDefinition<SheetUnhideRowsInput, SheetCommandResult>

Restores one or more hidden rows from resize-owned hidden-size state.

variableUpdateSheetResizeDragCommandsource ↗
UpdateSheetResizeDragCommand: SheetCommandDefinition<SheetUpdateResizeDragInput, SheetCommandResult>

Command that updates resize drag-session state through the command bus.

functioncreateHideColumnOperationssource ↗
createHideColumnOperations(input: SheetHideColumnsInput, dataSource: Pick<SheetResizeDimensionCommandDataSource, "getColumnCount" | "readColumnSize">): Operation[]

Creates column hide operations from public command input.

input: SheetHideColumnsInput
dataSource: Pick<SheetResizeDimensionCommandDataSource, "getColumnCount" | "readColumnSize">
functioncreateHideRowOperationssource ↗
createHideRowOperations(input: SheetHideRowsInput, dataSource: Pick<SheetResizeDimensionCommandDataSource, "getRowCount" | "readRowSize">): Operation[]

Creates row hide operations from public command input.

input: SheetHideRowsInput
dataSource: Pick<SheetResizeDimensionCommandDataSource, "getRowCount" | "readRowSize">
functioncreateResizeColumnOperationssource ↗
createResizeColumnOperations(input: SheetResizeColumnsInput, dataSource: Pick<SheetResizeDimensionCommandDataSource, "getColumnCount" | "readColumnSize">): Operation[]

Creates column resize operations from public command input.

input: SheetResizeColumnsInput
dataSource: Pick<SheetResizeDimensionCommandDataSource, "getColumnCount" | "readColumnSize">
functioncreateResizeRowOperationssource ↗
createResizeRowOperations(input: SheetResizeRowsInput, dataSource: Pick<SheetResizeDimensionCommandDataSource, "getRowCount" | "readRowSize">): Operation[]

Creates row resize operations from public command input.

input: SheetResizeRowsInput
dataSource: Pick<SheetResizeDimensionCommandDataSource, "getRowCount" | "readRowSize">
functioncreateUnhideColumnOperationssource ↗
createUnhideColumnOperations(input: SheetUnhideColumnsInput, dataSource: Pick<SheetResizeDimensionCommandDataSource, "getColumnCount" | "getDefaultColumnSize" | "readColumnHiddenOriginalSize" | "readColumnSize">): Operation[]

Creates column unhide operations from public command input.

input: SheetUnhideColumnsInput
dataSource: Pick<SheetResizeDimensionCommandDataSource, "getColumnCount" | "getDefaultColumnSize" | "readColumnHiddenOriginalSize" | "readColumnSize">
functioncreateUnhideRowOperationssource ↗
createUnhideRowOperations(input: SheetUnhideRowsInput, dataSource: Pick<SheetResizeDimensionCommandDataSource, "getRowCount" | "getDefaultRowSize" | "readRowHiddenOriginalSize" | "readRowSize">): Operation[]

Creates row unhide operations from public command input.

input: SheetUnhideRowsInput
dataSource: Pick<SheetResizeDimensionCommandDataSource, "getRowCount" | "getDefaultRowSize" | "readRowHiddenOriginalSize" | "readRowSize">
functionreadSheetColumnHiddenOriginalSizessource ↗
readSheetColumnHiddenOriginalSizes(dataEngine: DataEngine): CSRMatrix<number> | null

Reads original column sizes captured while columns are hidden.

dataEngine: DataEngine
functionreadSheetColumnSizessource ↗
readSheetColumnSizes(dataEngine: DataEngine): DimensionsCSRMatrix | null

Reads column dimensions published by SheetResizePlugin.

dataEngine: DataEngine
functionreadSheetRowHiddenOriginalSizessource ↗
readSheetRowHiddenOriginalSizes(dataEngine: DataEngine): CSRMatrix<number> | null

Reads original row sizes captured while rows are hidden.

dataEngine: DataEngine
functionreadSheetRowSizessource ↗
readSheetRowSizes(dataEngine: DataEngine): DimensionsCSRMatrix | null

Reads row dimensions published by SheetResizePlugin.

dataEngine: DataEngine
functionregisterSheetResizeCommandssource ↗
registerSheetResizeCommands(commands: SheetCommandBus, dataSource: SheetResizeDimensionCommandDataSource, controller: SheetResizeDragCommandController): void

Registers the complete command surface owned by SheetResizePlugin.

commands: SheetCommandBus

Command bus owned by the current sheet editor.

dataSource: SheetResizeDimensionCommandDataSource

Resize state reader used by semantic dimension commands.

controller: SheetResizeDragCommandController
functionregisterSheetResizeDimensionCommandssource ↗
registerSheetResizeDimensionCommands(commands: SheetCommandBus, dataSource: SheetResizeDimensionCommandDataSource): void

Registers row and column dimension commands on one sheet command bus.

commands: SheetCommandBus
dataSource: SheetResizeDimensionCommandDataSource
functionregisterSheetResizeDragCommandssource ↗
registerSheetResizeDragCommands(commands: SheetCommandBus, controller: SheetResizeDragCommandController): void

Registers resize drag-session command factories on one editor command bus.

commands: SheetCommandBus

Command bus owned by the current sheet editor.

controller: SheetResizeDragCommandController

Resize plugin controller that owns local drag-session state.