@visactor/vtable
Version:
canvas table width high performance
92 lines (91 loc) • 3.31 kB
TypeScript
import type { FederatedPointerEvent, Gesture, IEventTarget } from './../vrender';
import type { CellInfo, CellRange } from '../ts-types';
import type { BaseTableAPI } from '../ts-types/base-table';
import { type SceneEvent } from './util';
import { InertiaScroll } from './scroll';
export declare class EventManager {
table: BaseTableAPI;
isTouchdown: boolean;
isTouchMove: boolean;
touchMovePoints: {
x: number;
y: number;
timestamp: number;
}[];
touchSetTimeout: any;
touchEnd: boolean;
isLongTouch: boolean;
gesture: Gesture;
handleTextStickBindId: number[];
LastPointerXY: {
x: number;
y: number;
};
LastBodyPointerXY: {
x: number;
y: number;
};
isDown: boolean;
isDraging: boolean;
scrollYSpeed: number;
scrollXSpeed: number;
downIcon: IEventTarget;
globalEventListeners: {
name: string;
env: 'document' | 'body' | 'window' | 'vglobal';
callback: (e?: any) => void;
}[];
inertiaScroll: InertiaScroll;
bindSparklineHoverEvent: boolean;
_enableTableScroll: boolean;
cutWaitPaste: boolean;
private clipboardCheckTimer;
private cutOperationTime;
lastClipboardContent: string;
cutCellRange: CellInfo[][] | null;
cutRanges: CellRange[] | null;
copySourceRange: {
startCol: number;
startRow: number;
} | null;
constructor(table: BaseTableAPI);
bindOuterEvent(): void;
updateEventBinder(): void;
bindSelfEvent(): void;
dealTableHover(eventArgsSet?: SceneEvent): void;
dealIconHover(eventArgsSet: SceneEvent): void;
dealMenuHover(eventArgsSet: SceneEvent): void;
dealTableSelect(eventArgsSet?: SceneEvent, isSelectMoving?: boolean): boolean;
dealFillSelect(eventArgsSet?: SceneEvent, isSelectMoving?: boolean): boolean;
deelTableSelectAll(): void;
dealMenuSelect(eventArgsSet: SceneEvent): void;
checkColumnResize(eventArgsSet: SceneEvent, update?: boolean): boolean;
checkRowResize(eventArgsSet: SceneEvent, update?: boolean): boolean;
cellIsHeaderCheck(eventArgsSet: SceneEvent, update?: boolean): boolean;
checkCellFillhandle(eventArgsSet: SceneEvent, update?: boolean): boolean;
dealColumnResize(xInTable: number, yInTable: number): void;
dealRowResize(xInTable: number, yInTable: number): void;
checkColumnMover(eventArgsSet: SceneEvent): boolean;
dealColumnMover(x: number, y: number, event: MouseEvent | PointerEvent | TouchEvent): void;
startColumnResize(eventArgsSet: SceneEvent): void;
dealIconClick(e: FederatedPointerEvent, eventArgsSet: SceneEvent): boolean;
release(): void;
enableScroll(): void;
disableScroll(): void;
handleCopy(e: KeyboardEvent, isCut?: boolean): Promise<void>;
private fallbackCopyToClipboard;
handleCut(e: KeyboardEvent): Promise<void>;
handlePaste(e: KeyboardEvent): void;
private executePaste;
private fallbackPasteFromClipboard;
private processPastedText;
private clearCutArea;
private checkClipboardChanged;
private saveClipboardContent;
private pasteHtmlToTable;
private _pasteValue;
private pasteTextToTable;
private parsePastedData;
private processCellValue;
private handlePasteValues;
}