Clipboard
Module Extensions
Section titled “Module Extensions”ClipboardConfig (Extended from @revolist/revogrid)
Section titled “ClipboardConfig (Extended from @revolist/revogrid)”interface ClipboardConfig { /** Additional rich clipboard formats used by ClipboardPlugin. */ formats?: readonly ClipboardFormatHandler[]; /** Maximum decoded cells. Defaults to 1,000,000. */ maxCells?: number; /** Maximum bytes inspected in one text representation. Defaults to 16 MiB. */ maxBytes?: number}HTMLRevoGridElementEventMap (Extended from global)
Section titled “HTMLRevoGridElementEventMap (Extended from global)”interface HTMLRevoGridElementEventMap { clipboardformaterror: ClipboardFormatDiagnostic}Plugin API
Section titled “Plugin API”ClipboardPlugin
Section titled “ClipboardPlugin”Browser-rich, Excel-compatible clipboard orchestration for RevoGrid Pro.
Dependencies
Section titled “Dependencies”- Optional
DataGridFormattingPlugin: Uses DataGridFormattingPlugin when available to import and apply rich formatting.
class ClipboardPlugin { registerFormat(handler: ClipboardFormatHandler): () => void;
registerMetadataContributor(contributor: ClipboardMetadataContributor): () => void;}matrixToClipboardDocument
Section titled “matrixToClipboardDocument”Converts a value matrix into one dense clipboard-document range.
export function matrixToClipboardDocument( matrix: readonly (readonly DataFormat[])[], source = 'revogrid',): ClipboardDocument;clipboardDocumentToMatrix
Section titled “clipboardDocumentToMatrix”Materializes positioned clipboard ranges as one dense value matrix.
export function clipboardDocumentToMatrix(document: ClipboardDocument): DataFormat[][];countClipboardCells
Section titled “countClipboardCells”Counts the rectangular cell capacity declared by a clipboard document.
export function countClipboardCells(document: ClipboardDocument);isClipboardDocument
Section titled “isClipboardDocument”Validates the supported clipboard document wire shape.
export function isClipboardDocument(value: unknown): value is ClipboardDocument;createExcelHtmlClipboardFormat
Section titled “createExcelHtmlClipboardFormat”export function createExcelHtmlClipboardFormat( formatting?: ClipboardExcelFormattingAdapter,): ClipboardFormatHandler;createGenericHtmlClipboardFormat
Section titled “createGenericHtmlClipboardFormat”export function createGenericHtmlClipboardFormat( formatting?: ClipboardExcelFormattingAdapter,): ClipboardFormatHandler;extractCfHtml
Section titled “extractCfHtml”export function extractCfHtml(value: string): string;parseHtmlClipboard
Section titled “parseHtmlClipboard”export function parseHtmlClipboard( raw: string, options: { source: string; maxBytes: number; maxCells: number; formatting?: ClipboardExcelFormattingAdapter; },): ClipboardDocument | null;serializeExcelHtml
Section titled “serializeExcelHtml”export function serializeExcelHtml( document: ClipboardDocument, formatting?: ClipboardExcelFormattingAdapter,): string;ClipboardExcelFormattingAdapter
Section titled “ClipboardExcelFormattingAdapter”interface ClipboardExcelFormattingAdapter { importFormat(declarations: readonly string[]): ClipboardCell['format']; importValue(displayText: string, format?: ClipboardCell['format']): unknown; exportFormat(format: NonNullable<ClipboardCell['format']>): string | undefined; exportValue( value: unknown, format: NonNullable<ClipboardCell['format']>, ): { readonly value: unknown; readonly displayText: string }}excelHtmlClipboardFormat
Section titled “excelHtmlClipboardFormat”Value-only default. ClipboardPlugin supplies the formatting runtime adapter.
excelHtmlClipboardFormat: ClipboardFormatHandler<any>;genericHtmlClipboardFormat
Section titled “genericHtmlClipboardFormat”Value-only default. ClipboardPlugin supplies the formatting runtime adapter.
genericHtmlClipboardFormat: ClipboardFormatHandler<any>;parseDelimitedText
Section titled “parseDelimitedText”export function parseDelimitedText(value: string, delimiter: string): string[][];serializeDelimitedText
Section titled “serializeDelimitedText”export function serializeDelimitedText( matrix: readonly (readonly unknown[])[], delimiter: string,): string;plainTextClipboardFormat
Section titled “plainTextClipboardFormat”plainTextClipboardFormat: { id: string; mimeTypes: string[]; priority: number; read: ({ transfer, maxBytes, maxCells }: ClipboardFormatReadContext) => ClipboardDocument<any>; write: ({ document }: ClipboardFormatWriteContext<any>) => { type: string; data: string; }[];};ClipboardFormatRegistry
Section titled “ClipboardFormatRegistry”class ClipboardFormatRegistry { register(handler: ClipboardFormatHandler): () => void;
read(transfer: ClipboardDataReader, limits: { maxCells: number; maxBytes: number });
write(document: ClipboardDocument, transfer: ClipboardDataWriter): void;}resolveClipboardPluginConfig
Section titled “resolveClipboardPluginConfig”Resolves clipboard limits and custom formats from the grid configuration.
export function resolveClipboardPluginConfig( useClipboard: boolean | ClipboardConfig | undefined,): ResolvedClipboardPluginConfig;REVOGRID_CLIPBOARD_MIME
Section titled “REVOGRID_CLIPBOARD_MIME”REVOGRID_CLIPBOARD_MIME: string;REVOGRID_CLIPBOARD_VERSION
Section titled “REVOGRID_CLIPBOARD_VERSION”REVOGRID_CLIPBOARD_VERSION: 2;ClipboardCell
Section titled “ClipboardCell”interface ClipboardCell { readonly value: T; readonly displayText?: string; readonly formula?: string; /** `null` explicitly copies an ordinary RevoGrid cell with no effective format. */ readonly format?: DataGridCellFormat | null; readonly metadata?: Readonly<Record<string, unknown>>}ClipboardRange
Section titled “ClipboardRange”interface ClipboardRange { readonly row: number; readonly col: number; readonly width: number; readonly height: number; readonly cells: readonly ClipboardCell<T>[]; readonly merges?: readonly MergeData[]; readonly columnWidths?: readonly (number | undefined)[]; readonly rowHeights?: readonly (number | undefined)[]; readonly rowType?: DimensionRows; readonly colType?: DimensionCols; readonly metadata?: Readonly<Record<string, unknown>>}ClipboardDocument
Section titled “ClipboardDocument”interface ClipboardDocument { readonly version: typeof REVOGRID_CLIPBOARD_VERSION; readonly source: string; readonly ranges: readonly ClipboardRange<T>[]; readonly metadata?: Readonly<Record<string, unknown>>}ClipboardDataReader
Section titled “ClipboardDataReader”interface ClipboardDataReader { readonly types: readonly string[]; getData(type: string): string}ClipboardDataWriter
Section titled “ClipboardDataWriter”interface ClipboardDataWriter { setData(type: string, value: string): void}ClipboardFormatReadContext
Section titled “ClipboardFormatReadContext”interface ClipboardFormatReadContext { readonly transfer: ClipboardDataReader; readonly maxCells: number; readonly maxBytes: number}ClipboardFormatWriteContext
Section titled “ClipboardFormatWriteContext”interface ClipboardFormatWriteContext { readonly document: ClipboardDocument<T>}ClipboardRepresentation
Section titled “ClipboardRepresentation”interface ClipboardRepresentation { readonly type: string; readonly data: string}ClipboardFormatHandler
Section titled “ClipboardFormatHandler”interface ClipboardFormatHandler { readonly id: string; readonly mimeTypes: readonly string[]; readonly priority?: number; canRead?(context: ClipboardFormatReadContext): boolean; read(context: ClipboardFormatReadContext): ClipboardDocument<T> | null; write?(context: ClipboardFormatWriteContext<T>): readonly ClipboardRepresentation[]}ClipboardMetadataCaptureContext
Section titled “ClipboardMetadataCaptureContext”interface ClipboardMetadataCaptureContext { readonly document: ClipboardDocument<T>; readonly providers: PluginProviders}ClipboardMetadataApplyContext
Section titled “ClipboardMetadataApplyContext”interface ClipboardMetadataApplyContext { readonly document: ClipboardDocument<T>; readonly providers: PluginProviders}ClipboardMetadataContributor
Section titled “ClipboardMetadataContributor”interface ClipboardMetadataContributor { readonly id: string; capture?(context: ClipboardMetadataCaptureContext<T>): unknown; apply?(metadata: unknown, context: ClipboardMetadataApplyContext<T>): void}ClipboardFormatDiagnostic
Section titled “ClipboardFormatDiagnostic”interface ClipboardFormatDiagnostic { readonly phase: 'read' | 'write' | 'metadata'; readonly handlerId: string; readonly error: unknown}ClipboardPluginConfig
Section titled “ClipboardPluginConfig”interface ClipboardPluginConfig { readonly formats?: readonly ClipboardFormatHandler[]; readonly maxCells?: number; readonly maxBytes?: number}ResolvedClipboardPluginConfig
Section titled “ResolvedClipboardPluginConfig”interface ResolvedClipboardPluginConfig { readonly formats: readonly ClipboardFormatHandler[]; readonly maxCells: number; readonly maxBytes: number}captureClipboardSelection
Section titled “captureClipboardSelection”Captures current grid selections as a rich clipboard document.
export function captureClipboardSelection( context: ClipboardCaptureContext, matrix?: DataFormat[][],): ClipboardDocument | null;getActiveClipboardSelection
Section titled “getActiveClipboardSelection”Reads the active provider-backed selection as normalized clipboard coordinates.
export function getActiveClipboardSelection( providers: PluginProviders,): ClipboardSelection[] | null;getClipboardPasteStart
Section titled “getClipboardPasteStart”Returns the focused viewport cell used as the paste origin.
export function getClipboardPasteStart( providers: PluginProviders,): ClipboardPasteStart | null;getClipboardSelectionOffsets
Section titled “getClipboardSelectionOffsets”Converts viewport selections into offsets from their shared whole-grid origin.
export function getClipboardSelectionOffsets( selections: readonly ClipboardSelection[], providers: PluginProviders,);createClipboardCoordinateResolver
Section titled “createClipboardCoordinateResolver”Creates a cached coordinate resolver for one copy or paste operation.
export function createClipboardCoordinateResolver( providers: PluginProviders, start: ClipboardPasteStart,): ClipboardCoordinateResolver;forEachClipboardDocumentCell
Section titled “forEachClipboardDocumentCell”Visits every valid cell stored in a clipboard document without an intermediate array.
export function forEachClipboardDocumentCell( document: ClipboardDocument, visit: (entry: ClipboardDocumentCell) => boolean | void,): boolean;getSingleClipboardDocumentCell
Section titled “getSingleClipboardDocumentCell”Returns the only stored document cell, or null when the count is not one.
export function getSingleClipboardDocumentCell(document: ClipboardDocument);getClipboardRangeCellOffset
Section titled “getClipboardRangeCellOffset”Resolves one row-major range cell into its document-relative offset.
export function getClipboardRangeCellOffset( range: ClipboardRange, index: number,): ClipboardCellOffset | null;getClipboardDocumentBounds
Section titled “getClipboardDocumentBounds”Computes clipboard-document bounds in one pass.
export function getClipboardDocumentBounds(document: ClipboardDocument);getClipboardCellCount
Section titled “getClipboardCellCount”Counts the rectangular capacity declared by all clipboard ranges.
export function getClipboardCellCount(document: ClipboardDocument);getClipboardMatrixData
Section titled “getClipboardMatrixData”Flattens a matrix into a dense row-major clipboard range.
export function getClipboardMatrixData( matrix: readonly (readonly DataFormat[])[],);createClipboardMatrix
Section titled “createClipboardMatrix”Builds a dense value matrix from positioned clipboard ranges.
export function createClipboardMatrix(document: ClipboardDocument): DataFormat[][];getClipboardFormulaDestination
Section titled “getClipboardFormulaDestination”Resolves the absolute destination used to restore an Excel formula.
export function getClipboardFormulaDestination( resolver: ClipboardCoordinateResolver, range: ClipboardRange, cellIndex: number,);forEachClipboardRangeFillCell
Section titled “forEachClipboardRangeFillCell”Visits every projected destination for a one-cell range-fill paste.
export function forEachClipboardRangeFillCell( selection: ClipboardSelection, start: ClipboardPasteStart, cell: ClipboardCell, visit: (entry: ClipboardDocumentCell) => boolean | void,): boolean;clipboardOutcomeIncludesTarget
Section titled “clipboardOutcomeIncludesTarget”Checks whether a managed paste outcome includes one resolved target.
export function clipboardOutcomeIncludesTarget( detail: { type?: DimensionRows; data?: Record<number, Record<string, unknown>>; } | undefined, target: ClipboardResolvedPasteTarget,);createClipboardTargetMerge
Section titled “createClipboardTargetMerge”Repositions clipboard merge metadata at a resolved viewport target.
export function createClipboardTargetMerge( merge: MergeData, target: ClipboardPasteStart,): MergeData;captureClipboardMerge
Section titled “captureClipboardMerge”Converts an in-selection merge into clipboard-relative coordinates.
export function captureClipboardMerge( merge: MergeData, area: RangeArea, rowType: DimensionRows, colType: DimensionCols,): MergeData | null;getClipboardMergeOffsets
Section titled “getClipboardMergeOffsets”Returns the inclusive paste bounds of a clipboard merge.
export function getClipboardMergeOffsets( range: ClipboardRange, merge: MergeData,);forEachClipboardMergeCell
Section titled “forEachClipboardMergeCell”Visits every document-relative cell covered by a clipboard merge.
export function forEachClipboardMergeCell( range: ClipboardRange, merge: MergeData, visit: (offset: ClipboardCellOffset) => boolean | void,): boolean;clipboardMergesOverlap
Section titled “clipboardMergesOverlap”Checks whether two same-viewport merge rectangles overlap.
export function clipboardMergesOverlap(left: MergeData, right: MergeData);ClipboardPasteStart
Section titled “ClipboardPasteStart”export type ClipboardPasteStart = ViewportCellAddress;ClipboardResolvedPasteTarget
Section titled “ClipboardResolvedPasteTarget”export type ClipboardResolvedPasteTarget = ResolvedViewportCell;ClipboardMetadataTargetFilter
Section titled “ClipboardMetadataTargetFilter”export type ClipboardMetadataTargetFilter = (target: ClipboardResolvedPasteTarget) => boolean;ClipboardSelection
Section titled “ClipboardSelection”interface ClipboardSelection { readonly rowType: DimensionRows; readonly colType: DimensionCols; readonly range: RangeArea}ClipboardCellOffset
Section titled “ClipboardCellOffset”interface ClipboardCellOffset { readonly rowOffset: number; readonly colOffset: number}ClipboardDocumentCell (Extended from coordinates.ts)
Section titled “ClipboardDocumentCell (Extended from coordinates.ts)”interface ClipboardDocumentCell { readonly cell: ClipboardCell}ClipboardCoordinateResolver
Section titled “ClipboardCoordinateResolver”Resolves clipboard offsets through one cached provider-coordinate snapshot.
interface ClipboardCoordinateResolver { /** Converts a document offset into a whole-grid row and column. */ getAbsoluteCell(offset: ClipboardCellOffset): { readonly row: number; readonly column: number }; /** Reads cached source and item mappings for one viewport pair. */ getViewportSources(rowType: DimensionRows, colType: DimensionCols): ClipboardViewportSources | null; /** Resolves a document offset to its model-backed grid cell. */ resolveTarget(offset: ClipboardCellOffset): ClipboardResolvedPasteTarget | null; /** Resolves a document offset to its viewport-local address. */ resolveTargetAddress(offset: ClipboardCellOffset): ClipboardPasteStart | null; /** Converts a resolved cell from visible indexes to physical source indexes. */ getPhysicalCellAddress(target: ClipboardResolvedPasteTarget): { readonly row: number; readonly column: number; readonly rowType: DimensionRows; readonly colType: DimensionCols; }; /** Converts a resolved column from its visible index to its physical source index. */ getPhysicalColumnAddress(target: ClipboardResolvedPasteTarget): { readonly column: number; readonly colType: DimensionCols; }; /** Returns the cached physical row source for readonly evaluation. */ getTargetRowSource(target: ClipboardResolvedPasteTarget): DataType[]}resolveClipboardFormattingRuntime
Section titled “resolveClipboardFormattingRuntime”Finds the installed data-grid formatting runtime, when available.
export function resolveClipboardFormattingRuntime( providers: PluginProviders,): DataGridFormattingRuntime | undefined;applyClipboardFormatting
Section titled “applyClipboardFormatting”Applies rich clipboard formats to every accepted destination cell.
export function applyClipboardFormatting( context: ClipboardFormattingContext, document: ClipboardDocument, start: ClipboardPasteStart, targetFilter?: ClipboardMetadataTargetFilter,): void;isClipboardPasteValueCompatible
Section titled “isClipboardPasteValueCompatible”Checks that pasted values match every effective destination editor domain.
export function isClipboardPasteValueCompatible( context: ClipboardFormattingContext, document: ClipboardDocument, start: ClipboardPasteStart,): boolean;resolveClipboardPasteFormulas
Section titled “resolveClipboardPasteFormulas”Rebases stored Excel R1C1 formulas against the current paste destination.
export function resolveClipboardPasteFormulas( providers: PluginProviders, document: ClipboardDocument, start: ClipboardPasteStart,): ClipboardDocument;isWritableClipboardTarget
Section titled “isWritableClipboardTarget”Checks provider readonly policy for one resolved clipboard destination.
export function isWritableClipboardTarget( resolver: ClipboardCoordinateResolver, target: ClipboardResolvedPasteTarget,): boolean;clipboardDocumentToSparsePayload
Section titled “clipboardDocumentToSparsePayload”Converts multi-range rich data into the legacy sparse clipboard payload.
export function clipboardDocumentToSparsePayload( document: ClipboardDocument,): MultiRangeClipboardPayload | null;captureClipboardMerges
Section titled “captureClipboardMerges”Captures merges fully contained by one copied viewport range.
export function captureClipboardMerges( revogrid: HTMLRevoGridElement, area: RangeArea, rowType: DimensionRows, colType: DimensionCols,);applyClipboardStructure
Section titled “applyClipboardStructure”Applies valid, writable clipboard merges at the paste destination.
export function applyClipboardStructure( context: ClipboardStructureContext, document: ClipboardDocument, start: ClipboardPasteStart, targetFilter?: ClipboardMetadataTargetFilter,): void;normalizeExcelClipboardFormula
Section titled “normalizeExcelClipboardFormula”Convert browser-visible Excel R1C1 references into FormulaPlugin-compatible A1 references.
export function normalizeExcelClipboardFormula( value: string, rowIndex: number, columnIndex: number,): string;toExcelClipboardFormula
Section titled “toExcelClipboardFormula”Convert FormulaPlugin-compatible A1 references into Excel HTML R1C1 references.
export function toExcelClipboardFormula( value: string, rowIndex: number, columnIndex: number,): string;cloneClipboardDocument
Section titled “cloneClipboardDocument”export function cloneClipboardDocument(document: ClipboardDocument): ClipboardDocument;revogridJsonClipboardFormat
Section titled “revogridJsonClipboardFormat”revogridJsonClipboardFormat: { id: string; mimeTypes: string[]; priority: number; read: ({ transfer, maxBytes, maxCells }: ClipboardFormatReadContext) => ClipboardDocument<any> | null; write: ({ document }: ClipboardFormatWriteContext<any>) => { type: string; data: string; }[];};