@antv/s2
Version:
effective spreadsheet render core lib
167 lines (166 loc) • 8.52 kB
TypeScript
import type { FederatedPointerEvent as CanvasEvent } from '@antv/g';
import type { CornerCell, MergedCell, RowCell, SeriesNumberCell } from '../../cell';
import type { ColCell } from '../../cell/col-cell';
import type { DataCell } from '../../cell/data-cell';
import type { InteractionName, S2Event } from '../../common/constant';
import type { CellMeta, CellScrollPosition, Data, FilterParam, HiddenColumnsInfo, LayoutResult, RowCellCollapsedParams, S2CellType, S2Style, SortParams, ViewMeta } from '../../common/interface';
import type { RawData } from '../../common/interface/s2DataConfig';
import type { Node } from '../../facet/layout/node';
import type { SpreadSheet } from '../../sheet-type';
import type { CopyableList } from './export';
import type { ResizeInfo } from './resize';
type CanvasEventHandler = (event: CanvasEvent) => void;
type KeyboardEventHandler = (event: KeyboardEvent) => void;
type MouseEventHandler = (event: MouseEvent) => void;
type PointerEventHandler = (event: PointerEvent) => void;
type EventHandler = (event: Event) => void;
type ResizeHandler = (data: {
info: ResizeInfo;
style?: S2Style;
seriesNumberWidth?: number;
}) => void;
type SortedHandler = (rangeData: RawData[]) => any;
export interface CellSelectedDetail {
/**
* 触发选中的交互名
*/
interactionName?: `${InteractionName}`;
/**
* 触发选中的单元格
*/
targetCell?: S2CellType | null;
/**
* 触发选中的事件对象
*/
event?: CanvasEvent | KeyboardEvent | Event | null;
}
export type CellSelectedHandler = (cells: S2CellType[], detail: CellSelectedDetail) => void;
export interface EmitterType {
/** ================ Global ================ */
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: (data: CopyableList | undefined) => void;
[]: KeyboardEventHandler;
[]: KeyboardEventHandler;
[]: MouseEventHandler;
[]: MouseEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: PointerEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: EventHandler;
[]: CanvasEventHandler;
[]: CellSelectedHandler;
[]: (position: CellScrollPosition) => void;
/** ================ Sort ================ */
[]: (info: SortParams) => void;
[]: SortedHandler | CanvasEventHandler;
/** ================ Filter ================ */
[]: (info: FilterParam) => void;
[]: (data: RawData[]) => any;
/** ================ Cell ================ */
[]: (data: {
meta: Node | ViewMeta;
field: string;
record: Data;
}) => void;
/** ================ Date Cell ================ */
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: (cells: (DataCell | CellMeta)[]) => void;
[]: (metas: CellMeta[]) => void;
[]: (cell: DataCell) => void;
[]: (cell: DataCell) => void;
[]: (cell: DataCell) => void;
[]: CellSelectedHandler;
/** ================ Row Cell ================ */
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: (position: CellScrollPosition) => void;
[]: (cells: RowCell[]) => void;
[]: (data: RowCellCollapsedParams) => void;
[]: (data: RowCellCollapsedParams) => void;
[]: (isCollapsed: boolean) => void;
[]: (isCollapsed: boolean) => void;
[]: (cell: RowCell) => void;
[]: CellSelectedHandler;
/** ================ Col Cell ================ */
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: (cells: ColCell[]) => void;
[]: (expandedNode: Node, hideDirection: 'prev' | 'next') => void;
[]: (data: {
event: CanvasEvent;
meta: Node;
hiddenColumns: Node[];
}) => void;
[]: (currentHiddenColumnsInfo: HiddenColumnsInfo, hiddenColumnsDetail: HiddenColumnsInfo[]) => void;
[]: (cell: ColCell) => void;
[]: CellSelectedHandler;
/** ================ Corner Cell ================ */
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: (cell: CornerCell) => void;
[]: CellSelectedHandler;
/** ================ Merged Cells ================ */
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: CanvasEventHandler;
[]: (cell: MergedCell) => void;
/** ================ SeriesNumber Cell ================ */
[]: (cell: SeriesNumberCell) => void;
/** ================ Layout ================ */
[]: (data: {
pageSize: number;
pageCount: number;
total: number;
current: number;
}) => void;
[]: (layoutResult: LayoutResult) => void;
[]: (options: {
add: [number, number][];
remove: [number, number][];
spreadsheet: SpreadSheet;
}) => void;
[]: <T extends S2CellType>(cell: T) => void;
[]: () => void;
[]: () => void;
[]: () => void;
/** ================ Layout Resize ================ */
[]: ResizeHandler;
[]: ResizeHandler;
[]: ResizeHandler;
[]: ResizeHandler;
[]: ResizeHandler;
[]: ResizeHandler;
[]: ResizeHandler;
}
export {};