UNPKG

@textbus/xnote

Version:

A high-performance rich text editor that supports multiplayer online collaboration.

55 lines (54 loc) 1.98 kB
import { Component, ComponentStateLiteral, ContentType, Slot, Subject, Textbus } from '@textbus/core'; import { TableSelection } from './components/selection-mask'; import { Rectangle, RenderRow } from './tools/merge'; export interface Cell { id: string; slot: Slot; } export interface Row { height: number; cells: Cell[]; } export type TableComponentMergeCellConfig = Record<string, string>; export interface TableComponentState { columnsConfig: number[]; rows: Row[]; mergeConfig: TableComponentMergeCellConfig; } export declare class TableComponent extends Component<TableComponentState> { static componentName: string; static type: ContentType; static fromJSON(textbus: Textbus, json: ComponentStateLiteral<TableComponentState>): TableComponent; private selection; private commander; constructor(state?: TableComponentState); focus: Subject<boolean>; tableSelection: import("@viewfly/core").Signal<TableSelection | null>; ignoreSelectionChanges: boolean; private normalizedData; getSlots(): Slot[]; mergeCellBySelection(): void; splitCellsBySelection(): void; splitCellBySlot(slot: Slot): void; getMaxRectangle(startSlot: Slot, endSlot: Slot): Rectangle | null; getSelectedNormalizedSlots(): { row: Row; cells: import("./tools/merge").RenderCell[]; }[] | null; getSelectedRect(): Rectangle | null; getSelectedNormalizedSlotsByRectangle(rectangle: Rectangle): { row: Row; cells: import("./tools/merge").RenderCell[]; }[]; getCellBySlot(slot: Slot): Cell | null; getNormalizedData(): RenderRow[]; selectRow(startIndex: number, endIndex?: number): void; selectColumn(startIndex: number, endIndex?: number): void; private getMergedRectangles; private getCoordinateById; setup(): void; deleteColumns(): void; deleteRows(): void; insertColumn(index: number): void; insertRow(index: number): void; }