import { BaseNodeModel, GraphModel, Model } from '..'; import LogicFlow from '../../LogicFlow'; import { ElementState, ElementType, ModelType, OverlapMode, TextMode } from '../../constant'; import Point = LogicFlow.Point; import EdgeData = LogicFlow.EdgeData; import EdgeConfig = LogicFlow.EdgeConfig; import TextConfig = LogicFlow.TextConfig; import PropertiesType = LogicFlow.PropertiesType; export interface IBaseEdgeModel
extends Model.BaseModel
{ /** * model 基础类型,固定为 edge */ readonly BaseType: ElementType.EDGE; properties: P; sourceNodeId: string; targetNodeId: string; startPoint?: Point; endPoint?: Point; points: string; pointsList: Point[]; isAnimation: boolean; isDragging?: boolean; isShowAdjustPoint: boolean; sourceAnchorId?: string; targetAnchorId?: string; arrowConfig?: LogicFlow.ArrowConfig; } export declare class BaseEdgeModel
implements IBaseEdgeModel
{
readonly BaseType = ElementType.EDGE;
static BaseType: ElementType;
id: string;
type: string;
sourceNodeId: string;
targetNodeId: string;
startPoint: Point;
endPoint: Point;
textMode: TextMode;
text: Required , graphModel: GraphModel);
/**
* 初始化边数据
* @overridable 支持重写
* initNodeData和setAttributes的区别在于
* initNodeData只在节点初始化的时候调用,用于初始化节点的所有属性。
* setAttributes除了初始化调用外,还会在properties发生变化后调用。
*/
initEdgeData(data: EdgeConfig): void;
/**
* 设置model属性
* @overridable 支持重写
* 每次properties发生变化会触发
*/
setAttributes(): void;
createId(): string | null;
/**
* 自定义边样式
*
* @overridable 支持重写
* @returns 自定义边样式
*/
getEdgeStyle(): LogicFlow.EdgeTheme;
/**
* 自定义边调整点样式
*
* @overridable 支持重写
* 在isShowAdjustPoint为true时会显示调整点。
*/
getAdjustPointStyle(): {
[x: string]: unknown;
fill?: string | undefined;
stroke?: string | undefined;
strokeWidth?: number | undefined;
radius?: number | undefined;
rx?: number | undefined;
ry?: number | undefined;
width?: number | undefined;
height?: number | undefined;
path?: string | undefined;
};
/**
* 自定义边文本样式
*
* @overridable 支持重写
*/
getTextStyle(): LogicFlow.EdgeTextTheme;
/**
* 自定义边动画样式
*
* @overridable 支持重写
* @example
* getEdgeAnimationStyle() {
* const style = super.getEdgeAnimationStyle()
* style.stroke = 'blue'
* style.animationDuration = '30s'
* style.animationDirection = 'reverse'
* return style
* }
*/
getEdgeAnimationStyle(): LogicFlow.EdgeAnimation;
/**
* 自定义边箭头样式
*
* @overridable 支持重写
* @example
* getArrowStyle() {
* const style = super.getArrowStyle()
* style.stroke = 'green'
* return style
* }
*/
getArrowStyle(): LogicFlow.ArrowTheme;
/**
* 自定义边被选中时展示其范围的矩形框样式
*
* @overridable 支持重写
* @example
* // 隐藏outline
* getOutlineStyle() {
* const style = super.getOutlineStyle()
* style.stroke = "none"
* style.hover.stroke = "none"
* return style
* }
*/
getOutlineStyle(): LogicFlow.OutlineTheme;
/**
* 重新自定义文本位置
*
* @overridable 支持重写
*/
getTextPosition(): Point;
/**
* 边的前一个节点
*/
get sourceNode(): BaseNodeModel