- Go backend (server/)
- Frontend (web/, server/static/)
- Database and deployment files
- Scripts and docs
Co-Authored-By: 狸花猫/Claude-Qwen3.6-Plus 🐾
93 lines
2.3 KiB
TypeScript
93 lines
2.3 KiB
TypeScript
import { ShapeStyle } from '@antv/g6-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 {};
|