UNPKG

@antv/s2

Version:

effective spreadsheet render core lib

77 lines (76 loc) 2.74 kB
import type { S2Event } from '../../common/constant/events/basic'; import type { ResizeAreaEffect, ResizeDirectionType, ResizeType } from '../../common/constant/resize'; import type { Node } from '../../facet/layout/node'; import type { ViewMeta } from './basic'; import type { S2CellType } from './interaction'; import type { S2Style } from './style'; import type { ResizeArea } from './theme'; export type ResizeGuideLinePath = [operation: 'M' | 'L', x: number, y: number]; export type ResizeEvent = S2Event.LAYOUT_RESIZE | S2Event.LAYOUT_RESIZE_SERIES_WIDTH | S2Event.LAYOUT_RESIZE_ROW_WIDTH | S2Event.LAYOUT_RESIZE_COL_WIDTH | S2Event.LAYOUT_RESIZE_ROW_HEIGHT | S2Event.LAYOUT_RESIZE_COL_HEIGHT | S2Event.LAYOUT_RESIZE_TREE_WIDTH; export interface ResizeGuideLinePosition { start: { x: number; y: number; }; end: { x: number; y: number; }; } export interface ResizePosition { offsetX?: number; offsetY?: number; clientX?: number; clientY?: number; } export interface ResizeDetail { eventType: ResizeEvent; style?: S2Style; seriesNumberWidth?: number; } export interface ResizeParams { info: ResizeInfo; style: S2Style | undefined; } export interface ResizeInfo { theme: ResizeArea; type: `${ResizeDirectionType}`; offsetX: number; offsetY: number; width: number; height: number; size: number; /** 改动影响区域 */ effect: ResizeAreaEffect; isResizeArea?: boolean; isResizeMask?: boolean; /** 当前拖拽热区对应的单元格/节点信息 */ meta: Node | ViewMeta; cell: S2CellType; /** 拖拽后的宽度 */ resizedWidth?: number; /** 拖拽后的高度 */ resizedHeight?: number; } export interface ResizeInteractionOptions { /** 行头垂直方向 resize -> 针对行头叶子节点 */ rowCellVertical?: boolean; /** 角头水平方向 resize -> 针对角头 CornerNodeType 为 Series 和 Row */ cornerCellHorizontal?: boolean; /** 列头水平方向 resize -> 针对列头叶子节点 */ colCellHorizontal?: boolean; /** 列头垂直方向 resize -> 针对列头各层级节点 */ colCellVertical?: boolean; /** 行高调整时,影响当前行还是全部行 */ rowResizeType?: `${ResizeType}`; /** 列高调整时,影响当前列还是全部列 */ colResizeType?: `${ResizeType}`; /** 是否允许调整, 返回 false 时拖拽的宽高无效 */ disable?: (resizeInfo: ResizeInfo) => boolean; /** 是否显示热区 */ visible?: (cell: S2CellType) => boolean; /** 单元格可拖拽最小宽度 */ minCellWidth?: number; /** 单元格可拖拽最小高度 */ minCellHeight?: number; }