Skip to content

Clipboard

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
}

Browser-rich, Excel-compatible clipboard orchestration for RevoGrid Pro.

  • Optional DataGridFormattingPlugin: Uses DataGridFormattingPlugin when available to import and apply rich formatting.
class ClipboardPlugin {
registerFormat(handler: ClipboardFormatHandler): () => void;
registerMetadataContributor(contributor: ClipboardMetadataContributor): () => void;
}

export function matrixToClipboardDocument(
matrix: readonly (readonly DataFormat[])[],
source = 'revogrid',
): ClipboardDocument;

export function clipboardDocumentToMatrix(document: ClipboardDocument): DataFormat[][];

export function countClipboardCells(document: ClipboardDocument);

export function isClipboardDocument(value: unknown): value is ClipboardDocument;

export function createExcelHtmlClipboardFormat(
formatting?: ClipboardExcelFormattingAdapter,
): ClipboardFormatHandler;

export function createGenericHtmlClipboardFormat(
formatting?: ClipboardExcelFormattingAdapter,
): ClipboardFormatHandler;

export function extractCfHtml(value: string): string;

export function parseHtmlClipboard(
raw: string,
options: {
source: string;
maxBytes: number;
maxCells: number;
formatting?: ClipboardExcelFormattingAdapter;
},
): ClipboardDocument | null;

export function serializeExcelHtml(
document: ClipboardDocument,
formatting?: ClipboardExcelFormattingAdapter,
): string;

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 }
}

Value-only default. ClipboardPlugin supplies the formatting runtime adapter.

excelHtmlClipboardFormat: ClipboardFormatHandler<any>;

Value-only default. ClipboardPlugin supplies the formatting runtime adapter.

genericHtmlClipboardFormat: ClipboardFormatHandler<any>;

export function parseDelimitedText(value: string, delimiter: string): string[][];

export function serializeDelimitedText(
matrix: readonly (readonly unknown[])[],
delimiter: string,
): string;

plainTextClipboardFormat: {
id: string;
mimeTypes: string[];
priority: number;
read: ({ transfer, maxBytes, maxCells }: ClipboardFormatReadContext) => ClipboardDocument<any>;
write: ({ document }: ClipboardFormatWriteContext<any>) => { type: string; data: string; }[];
};

class ClipboardFormatRegistry {
register(handler: ClipboardFormatHandler): () => void;
read(transfer: ClipboardDataReader, limits: { maxCells: number; maxBytes: number });
write(document: ClipboardDocument, transfer: ClipboardDataWriter): void;
}

export function resolveClipboardPluginConfig(
useClipboard: boolean | ClipboardConfig | undefined,
): ResolvedClipboardPluginConfig;

REVOGRID_CLIPBOARD_MIME: string;

REVOGRID_CLIPBOARD_VERSION: 2;

interface ClipboardCell {
readonly value: T;
readonly displayText?: string;
readonly formula?: string;
readonly format?: DataGridCellFormat;
readonly metadata?: Readonly<Record<string, unknown>>
}

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>>
}

interface ClipboardDocument {
readonly version: typeof REVOGRID_CLIPBOARD_VERSION;
readonly source: string;
readonly ranges: readonly ClipboardRange<T>[];
readonly metadata?: Readonly<Record<string, unknown>>
}

interface ClipboardDataReader {
readonly types: readonly string[];
getData(type: string): string
}

interface ClipboardDataWriter {
setData(type: string, value: string): void
}

interface ClipboardFormatReadContext {
readonly transfer: ClipboardDataReader;
readonly maxCells: number;
readonly maxBytes: number
}

interface ClipboardFormatWriteContext {
readonly document: ClipboardDocument<T>
}

interface ClipboardRepresentation {
readonly type: string;
readonly data: string
}

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[]
}

interface ClipboardMetadataCaptureContext {
readonly document: ClipboardDocument<T>;
readonly providers: PluginProviders
}

interface ClipboardMetadataApplyContext {
readonly document: ClipboardDocument<T>;
readonly providers: PluginProviders
}

interface ClipboardMetadataContributor {
readonly id: string;
capture?(context: ClipboardMetadataCaptureContext<T>): unknown;
apply?(metadata: unknown, context: ClipboardMetadataApplyContext<T>): void
}

interface ClipboardFormatDiagnostic {
readonly phase: 'read' | 'write' | 'metadata';
readonly handlerId: string;
readonly error: unknown
}

interface ClipboardPluginConfig {
readonly formats?: readonly ClipboardFormatHandler[];
readonly maxCells?: number;
readonly maxBytes?: number
}

interface ResolvedClipboardPluginConfig {
readonly formats: readonly ClipboardFormatHandler[];
readonly maxCells: number;
readonly maxBytes: number
}

Convert browser-visible Excel R1C1 references into FormulaPlugin-compatible A1 references.

export function normalizeExcelClipboardFormula(
value: string,
rowIndex: number,
columnIndex: number,
): string;

Convert FormulaPlugin-compatible A1 references into Excel HTML R1C1 references.

export function toExcelClipboardFormula(
value: string,
rowIndex: number,
columnIndex: number,
): string;

export function cloneClipboardDocument(document: ClipboardDocument): ClipboardDocument;

revogridJsonClipboardFormat: {
id: string;
mimeTypes: string[];
priority: number;
read: ({ transfer, maxBytes, maxCells }: ClipboardFormatReadContext) => ClipboardDocument<any> | null;
write: ({ document }: ClipboardFormatWriteContext<any>) => { type: string; data: string; }[];
};