UNPKG

@antv/f6-plugin

Version:
93 lines (92 loc) 2.4 kB
import { ShapeStyle } from '@antv/f6-core'; import Base, { IPluginBaseConfig } from '../base'; interface SnapLineConfig extends IPluginBaseConfig { line?: ShapeStyle; itemAlignType?: boolean | 'horizontal' | 'vertical' | 'center'; } export default class SnapLine extends Base { constructor(props?: SnapLineConfig); getDefaultCfgs(): { line: { stroke: string; lineWidth: number; }; /** * item align type * @type {String|True|False} */ itemAlignType: string; /** * tolerance to item force align * @type {String|True|False} */ tolerance: number; horizontalLines: {}; verticalLines: {}; alignLines: any[]; }; init(): void; getEvents(): { 'node:dragstart': string; 'node:drag': string; 'node:dragend': string; }; onDragStart(): void; onDrag(e: any): void; onDragEnd(): void; /** * 每次开始拖动之前,计算出所有节点在水平和垂直方向上,左中右三条中线,并缓存起来 * * @param {object} item Node节点 * @memberof AlignLine */ initBoxLine(): void; /** * 显示AlignLine * * @param {object} point 起始点 * @param {object} bbox BBox * @returns * @memberof AlignLine */ show(point: any, bbox: any): any; /** * 拖动拖出中添加辅助线 * * @param {object} point 起始点 * @param {object} bbox 代理形状的bbox * @param {object} originPoint 原始点,同point * @memberof AlignLine */ private itemAlign; /** * 根据配置项添加辅助线 * * @param {object} cfg * @memberof AlignLine */ private addAlignLine; /** * 获取点到线的距离 * * @param {array} line [x1, y1, x2, y2] 线的四个点 * @param {object} point 点的x和y坐标点 {x, y} * @returns * @memberof AlignLine */ private getLineDisObject; getContainer(): HTMLDivElement; /** * 拖动过程中,清楚上次绘制的线 * * @memberof AlignLine */ clearAlignLine(): void; /** * 拖动结束时候,情况缓存的节点的辅助线,同时删除绘制的线 * * @memberof AlignLine */ destory(): void; } export {};