UNPKG

@aurouscia/au-table-editor

Version:

vue表格编辑器组件

119 lines (118 loc) 3.82 kB
export interface TableData { id: number; name: string; cells: string[][]; merges?: MergeInfo[]; colors?: CellColorInfo[]; sticky?: StickyInfo; } export interface MergeInfo { row: number; col: number; down: number; right: number; } export interface CellColorInfo { pos: PositionCompact; bg?: string; text?: string; } export declare const cellBgColorDefault = "#eeeeee"; export declare const cellTextColorDefault = "#000000"; export interface StickyInfo { topIdx?: number; topFromColIdx?: number; leftIdx?: number; leftFromRowIdx?: number; } export interface Position { row: number; col: number; } export type PositionCompact = [row: number, col: number]; export type Selection = Position[]; export type Direction = "vertical" | "horizontal"; export type SingleDirection = "left" | "right" | "top" | "bottom"; export interface TableRange { type: Direction; min: number; max: number; } export interface TableGap { dir: Direction; idx: number; } export interface MergedCellInfo extends Position { fromMerge: MergeInfo; } export interface CellShown { content: string; position: Position; rowspan?: number; colspan?: number; bgColor?: string; textColor?: string; } export declare class Table implements TableData { id: number; name: string; cells: string[][]; cellsShown: CellShown[][]; merges: MergeInfo[]; merged: MergedCellInfo[]; colors: CellColorInfo[]; sticky: StickyInfo; rowCount: number; colCount: number; constructor(data: TableData); output(): CellShown[][]; getData(): TableData; replaceData(data: TableData): void; refreshCellShown(): void; refreshSize(): void; totalRefresh(): void; rmColorRedundant(): void; isMergeDangerous(s: Selection): boolean; addMerge(s: Selection): Selection; removeMerge(p: Position): void; isMergedCell(r: number, c: number): MergedCellInfo | undefined; isMergeInfoHead(r: number, c: number): MergeInfo | undefined; isValidMergeInfo(m: MergeInfo): boolean; rectanglifySelection(s: Selection, related: MergeInfo[]): Selection; selectionToMergeInfo(s: Selection): MergeInfo; private isSameSelection; private posCmp; private rangeIncludeWholeMerge; private rangeIncludeCell; refreshMergedPositions(): void; enumerateCells(func: (r: number, c: number) => boolean): void; enumerateMergeInfo(s: MergeInfo, func: (r: number, c: number) => boolean): void; enumerateRange(r: TableRange, func: (r: number, c: number) => boolean): void; enumerateRow(rowIdx: number, func: (r: number, c: number) => boolean): void; enumerateCol(colIdx: number, func: (r: number, c: number) => boolean): void; getSelectionRange(s: Selection, type: Direction): TableRange; isRectSelection(s: Selection): boolean; isInsideSingleMergeSelection(s: Selection): boolean; expandSelection(s: Selection, direction: Direction, mode: "loose" | "strict"): Selection; selectSpecificIdx(direction: Direction, zero_based_idx: number): Selection; cellPosMapToShownPos(p: Position, recurSafety?: number): Position; shownPosMapToCellPos(p: Position): Position; nextCellShown(p: Position): Position | undefined; insert(s: Selection | undefined, direction: SingleDirection): Selection; private locateGap; private newStringArr; exchange(gap: TableGap): boolean; delete(s: Selection, direction: Direction): Selection; rotateTableClockwise(times?: 0 | 1 | 2 | 3, s?: Selection | undefined): Selection; } export declare const tableDefaultValue: { id: number; name: string; cells: string[][]; merges: { row: number; col: number; right: number; down: number; }[]; };