@antv/s2
Version:
effective spreadsheet render core lib
74 lines (73 loc) • 3.85 kB
TypeScript
import { type FederatedPointerEvent as CanvasEvent, type DisplayObject, type PointLike } from '@antv/g';
import { S2Event, ScrollDirection } from '../../common/constant';
import { InteractionBrushSelectionStage } from '../../common/constant/interaction';
import type { BrushAutoScrollConfig, BrushPoint, BrushRange, CellSelectedDetail, OnUpdateCells, S2CellType, ViewMeta } from '../../common/interface';
import type { BBox } from '../../engine/interface';
import type { Node } from '../../facet/layout/node';
import type { BaseEventImplement } from '../base-event';
import { BaseEvent } from '../base-interaction';
export declare class BaseBrushSelection extends BaseEvent implements BaseEventImplement {
displayedCells: S2CellType[];
prepareSelectMaskShape: DisplayObject;
startBrushPoint: BrushPoint;
endBrushPoint: BrushPoint;
brushRangeCells: S2CellType[];
brushSelectionStage: InteractionBrushSelectionStage;
brushSelectionMinimumMoveDistance: number;
scrollAnimationComplete: boolean;
mouseMoveDistanceFromCanvas: number;
bindEvents(): void;
protected getPrepareSelectMaskTheme(): import("../../common/interface").DeepRequired<import("../../common/interface").InteractionStateTheme>;
protected initPrepareSelectMaskShape(): void;
protected setBrushSelectionStage(stage: InteractionBrushSelectionStage): void;
protected isPointInCanvas(point: PointLike): boolean;
private setMoveDistanceFromCanvas;
formatBrushPointForScroll: (delta: PointLike, isRowHeader?: boolean) => {
x: {
value: number;
needScroll: boolean;
};
y: {
value: number;
needScroll: boolean;
};
};
private autoScrollIntervalId;
rectanglesIntersect: (rect1: BBox, rect2: BBox) => boolean;
protected autoScrollConfig: BrushAutoScrollConfig;
validateYIndex: (yIndex: number) => number | null;
validateXIndex: (xIndex: number) => number | null;
adjustNextColIndexWithFrozen: (colIndex: number, dir: ScrollDirection) => number;
adjustNextRowIndexWithFrozen: (rowIndex: number, dir: ScrollDirection) => number;
getWillScrollRowIndexDiff: (dir: ScrollDirection) => number;
getDefaultWillScrollToRowIndex: (dir: ScrollDirection) => number | null;
protected getWillScrollToRowIndex: (dir: ScrollDirection) => number | null;
private getNextScrollDelta;
private onScrollAnimationComplete;
private autoScroll;
protected handleScroll: import("lodash").DebouncedFuncLeading<(x: number, y: number, isRowHeader?: any) => void>;
protected clearAutoScroll: () => void;
protected resetDrag(): void;
isValidBrushSelection(): boolean;
protected setDisplayedCells(): void;
protected updatePrepareSelectMask(): void;
hidePrepareSelectMaskShape(): void;
protected resetScrollDelta(): void;
protected getBrushPoint(event: CanvasEvent): BrushPoint;
getBrushRange(): BrushRange;
protected getBrushRangeCells(): S2CellType[];
protected onUpdateCells: OnUpdateCells;
private showPrepareSelectedCells;
protected mouseDown(event: CanvasEvent): void;
protected addBrushIntercepts(): void;
protected bindMouseUp(enableScroll?: boolean): void;
protected renderPrepareSelected: (point: PointLike) => void;
autoBrushScroll(point: PointLike, isRowHeader?: boolean): boolean;
emitBrushSelectionEvent(event: S2Event, scrollBrushRangeCells: S2CellType[], detail: CellSelectedDetail): void;
getVisibleBrushRangeCells(nodeId: string): S2CellType | undefined;
protected isInBrushRange(node: ViewMeta | Node): boolean;
protected bindMouseDown(): void;
protected bindMouseMove(): void;
protected updateSelectedCells(event: MouseEvent): void;
protected getPrepareSelectMaskPosition(brushRange: BrushRange): PointLike;
}