@logicflow/core 1.0.0-alpha.5 → 1.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/logic-flow.js +3 -3
  2. package/dist/style/index.css +1 -1
  3. package/package.json +1 -1
  4. package/types/LogicFlow.d.ts +341 -137
  5. package/types/constant/DefaultTheme.d.ts +271 -171
  6. package/types/constant/constant.d.ts +7 -1
  7. package/types/keyboard/index.d.ts +1 -5
  8. package/types/model/BaseModel.d.ts +59 -0
  9. package/types/model/EditConfigModel.d.ts +6 -16
  10. package/types/model/GraphModel.d.ts +264 -58
  11. package/types/model/SnaplineModel.d.ts +6 -2
  12. package/types/model/TransformModel.d.ts +8 -2
  13. package/types/model/edge/BaseEdgeModel.d.ts +36 -12
  14. package/types/model/edge/BezierEdgeModel.d.ts +9 -0
  15. package/types/model/edge/LineEdgeModel.d.ts +6 -0
  16. package/types/model/edge/PolylineEdgeModel.d.ts +7 -0
  17. package/types/model/node/BaseNodeModel.d.ts +90 -29
  18. package/types/model/node/CircleNodeModel.d.ts +12 -4
  19. package/types/model/node/DiamondNodeModel.d.ts +7 -4
  20. package/types/model/node/EllipseNodeModel.d.ts +6 -2
  21. package/types/model/node/HtmlNodeModel.d.ts +0 -2
  22. package/types/model/node/PolygonNodeModel.d.ts +11 -2
  23. package/types/model/node/RectNodeModel.d.ts +9 -2
  24. package/types/model/node/TextNodeModel.d.ts +8 -4
  25. package/types/options.d.ts +84 -10
  26. package/types/type/index.d.ts +50 -37
  27. package/types/util/edge.d.ts +3 -3
  28. package/types/util/graph.d.ts +1 -1
  29. package/types/util/node.d.ts +1 -1
  30. package/types/util/theme.d.ts +2 -173
  31. package/types/view/Anchor.d.ts +0 -2
  32. package/types/view/Graph.d.ts +1 -3
  33. package/types/view/basic-shape/Path.d.ts +1 -9
  34. package/types/view/basic-shape/Rect.d.ts +1 -5
  35. package/types/view/behavior/DnD.d.ts +0 -4
  36. package/types/view/edge/AdjustPoint.d.ts +1 -3
  37. package/types/view/edge/Arrow.d.ts +3 -3
  38. package/types/view/edge/BaseEdge.d.ts +2 -20
  39. package/types/view/edge/BezierEdge.d.ts +0 -12
  40. package/types/view/edge/LineEdge.d.ts +0 -13
  41. package/types/view/edge/PolylineEdge.d.ts +0 -12
  42. package/types/view/node/BaseNode.d.ts +1 -36
  43. package/types/view/node/CircleNode.d.ts +0 -37
  44. package/types/view/node/DiamondNode.d.ts +0 -37
  45. package/types/view/node/EllipseNode.d.ts +0 -26
  46. package/types/view/node/HtmlNode.d.ts +20 -0
  47. package/types/view/node/PolygonNode.d.ts +1 -19
  48. package/types/view/node/RectNode.d.ts +0 -37
  49. package/types/view/node/TextNode.d.ts +1 -0
  50. package/types/view/overlay/BackgroundOverlay.d.ts +18 -29
  51. package/types/view/overlay/CanvasOverlay.d.ts +0 -2
  52. package/types/view/overlay/OutlineOverlay.d.ts +1 -1
@@ -3,42 +3,106 @@ import BaseEdgeModel from './edge/BaseEdgeModel';
3
3
  import EditConfigModel from './EditConfigModel';
4
4
  import TransfromModel from './TransformModel';
5
5
  import { IBaseModel } from './BaseModel';
6
- import { ElementState, ModelType, ElementType } from '../constant/constant';
7
- import { AdditionData, Point, NodeConfig, EdgeConfig, Style, NodeMoveRule } from '../type';
6
+ import { OverlapMode } from '../constant/constant';
7
+ import { AdditionData, Point, NodeConfig, EdgeConfig, NodeMoveRule, GraphConfigData } from '../type';
8
8
  import EventEmitter from '../event/eventEmitter';
9
+ import { Theme } from '../constant/DefaultTheme';
10
+ import { Definition } from '../options';
9
11
  declare type BaseNodeModelId = string;
10
12
  declare type ElementModeId = string;
11
13
  declare class GraphModel {
12
- readonly BaseType = ElementType.GRAPH;
13
- modelType: ModelType;
14
+ /**
15
+ * LogicFlow画布挂载元素
16
+ * 也就是初始化LogicFlow实例时传入的container
17
+ */
14
18
  rootEl: HTMLElement;
15
- theme: any;
16
- eventCenter: EventEmitter;
17
- modelMap: Map<any, any>;
19
+ /**
20
+ * LogicFlow画布宽度
21
+ */
18
22
  width: number;
23
+ /**
24
+ * LogicFlow画布高度
25
+ */
19
26
  height: number;
27
+ /**
28
+ * 主题配置
29
+ * @see todo docs link
30
+ */
31
+ theme: Theme;
32
+ /**
33
+ * 事件中心
34
+ * @see todo docs link
35
+ */
36
+ eventCenter: EventEmitter;
37
+ /**
38
+ * 维护所有节点和边类型对应的model
39
+ */
40
+ modelMap: Map<any, any>;
41
+ /**
42
+ * 位于当前画布顶部的元素。
43
+ * 此元素只在堆叠模式为默认模式下存在。
44
+ * 用于在默认模式下将之前的顶部元素恢复初始高度。
45
+ */
20
46
  topElement: BaseNodeModel | BaseEdgeModel;
21
- selectElement: BaseNodeModel | BaseEdgeModel;
22
- idGenerator: (type?: string) => number | string;
47
+ /**
48
+ * 自定义全局id生成器
49
+ * @see todo docs link
50
+ */
51
+ idGenerator: (type?: string) => string;
52
+ /**
53
+ * 节点移动规则判断
54
+ * 在节点移动的时候,会出发此数组中的所有规则判断
55
+ */
23
56
  nodeMoveRules: NodeMoveRule[];
57
+ /**
58
+ * 在图上操作创建边时,默认使用的边类型.
59
+ */
24
60
  edgeType: string;
61
+ /**
62
+ * 当前图上所有节点的model
63
+ */
25
64
  nodes: BaseNodeModel[];
26
- activeElement: IBaseModel;
27
- activeElementState: ElementState;
28
- state: ElementState;
29
- additionStateData: AdditionData;
65
+ /**
66
+ * 当前图上所有边的model
67
+ */
30
68
  edges: BaseEdgeModel[];
31
- isSlient: boolean;
32
- overlapMode: number;
33
- plugins: any[];
34
- tools: any[];
69
+ /**
70
+ * 元素重合时堆叠模式
71
+ * 默认模式,节点和边被选中,会被显示在最上面。当取消选中后,元素会恢复之前的层级。
72
+ * 递增模式,节点和边被选中,会被显示在最上面。当取消选中后,元素会保持层级。
73
+ * @see todo link
74
+ */
75
+ overlapMode: OverlapMode;
76
+ /**
77
+ * 背景配置
78
+ * @see todo link
79
+ */
35
80
  background: any;
36
- transformMatrix: TransfromModel;
37
- editConfig: EditConfigModel;
81
+ /**
82
+ * 控制画布的缩放、平移
83
+ * @see todo link
84
+ */
85
+ transformModel: TransfromModel;
86
+ /**
87
+ * 控制流程图编辑相关配置
88
+ * @see todo link
89
+ */
90
+ editConfigModel: EditConfigModel;
91
+ /**
92
+ * 网格大小
93
+ * @see todo link
94
+ */
38
95
  gridSize: number;
96
+ /**
97
+ * 局部渲染
98
+ * @see todo logicflow性能
99
+ */
39
100
  partial: boolean;
101
+ /**
102
+ * 外部拖动节点进入画布的过程中,用fakerNode来和画布上正是的节点区分开
103
+ */
40
104
  fakerNode: BaseNodeModel;
41
- constructor(config: any);
105
+ constructor(options: Definition);
42
106
  get nodesMap(): {
43
107
  [key: string]: {
44
108
  index: number;
@@ -51,9 +115,13 @@ declare class GraphModel {
51
115
  model: BaseEdgeModel;
52
116
  };
53
117
  };
118
+ /**
119
+ * 基于zIndex对元素进行排序。
120
+ * todo: 性能优化
121
+ */
54
122
  get sortElements(): any[];
55
123
  /**
56
- * 当前编辑的元素,低频操作,先循环找吧。
124
+ * 当前编辑的元素,低频操作,先循环找。
57
125
  */
58
126
  get textEditElement(): BaseNodeModel | BaseEdgeModel;
59
127
  get selectElements(): Map<any, any>;
@@ -61,8 +129,14 @@ declare class GraphModel {
61
129
  * 获取指定区域内的所有元素
62
130
  */
63
131
  getAreaElement(leftTopPoint: any, rightBottomPoint: any): any[];
132
+ /**
133
+ * 获取指定类型元素对应的Model
134
+ */
64
135
  getModel(type: string): any;
65
- getNodeModel(nodeId: BaseNodeModelId): BaseNodeModel;
136
+ /**
137
+ * 基于Id获取节点的model
138
+ */
139
+ getNodeModelById(nodeId: BaseNodeModelId): BaseNodeModel;
66
140
  /**
67
141
  * 因为流程图所在的位置可以是页面任何地方
68
142
  * 当内部事件需要获取触发事件时,其相对于画布左上角的位置
@@ -80,45 +154,99 @@ declare class GraphModel {
80
154
  };
81
155
  /**
82
156
  * 判断一个元素是否在指定矩形区域内。
83
- * @param element 节点或者连线
157
+ * @param element 节点或者边
84
158
  * @param lt 左上角点
85
159
  * @param rb 右下角点
86
160
  */
87
161
  isElementInArea(element: any, lt: any, rb: any, wholeEdge?: boolean): boolean;
88
- graphDataToModel(graphData: any): void;
89
- modelToGraphData(): {
90
- nodes: import("../type").NodeData[];
91
- edges: import("../type").EdgeData[];
92
- };
93
- modelToHistoryData(): false | {
94
- nodes: any[];
95
- edges: any[];
96
- };
97
- getEdgeModel(edgeId: string): BaseEdgeModel;
162
+ /**
163
+ * 使用新的数据重新设置整个画布的元素
164
+ * 注意:将会清除画布上所有已有的节点和边
165
+ * @param { object } graphData 图数据
166
+ */
167
+ graphDataToModel(graphData: GraphConfigData): void;
168
+ /**
169
+ * 获取画布数据
170
+ */
171
+ modelToGraphData(): GraphConfigData;
172
+ /**
173
+ * 获取边的model
174
+ */
175
+ getEdgeModelById(edgeId: string): BaseEdgeModel | undefined;
176
+ /**
177
+ * 获取节点或者边的model
178
+ */
98
179
  getElement(id: string): IBaseModel | undefined;
180
+ /**
181
+ * 所有节点上所有边的model
182
+ */
99
183
  getNodeEdges(nodeId: any): BaseEdgeModel[];
100
184
  /**
101
185
  * 获取选中的元素数据
102
- * @param isIgnoreCheck 是否包括sourceNode和targetNode没有被选中的连线,默认包括。
103
- * 复制的时候不能包括此类连线, 因为复制的时候不允许悬空的连线
186
+ * @param isIgnoreCheck 是否包括sourceNode和targetNode没有被选中的边,默认包括。
187
+ * 复制的时候不能包括此类边, 因为复制的时候不允许悬空的边
188
+ */
189
+ getSelectElements(isIgnoreCheck?: boolean): GraphConfigData;
190
+ /**
191
+ * 修改对应元素 model 中的属性
192
+ * 注意:此方法慎用,除非您对logicflow内部有足够的了解。
193
+ * 大多数情况下,请使用setProperties、updateText、changeNodeId等方法。
194
+ * 例如直接使用此方法修改节点的id,那么就是会导致连接到此节点的边的sourceNodeId出现找不到的情况。
195
+ * @param {string} id 元素id
196
+ * @param {object} attributes 需要更新的属性
104
197
  */
105
- getSelectElements(isIgnoreCheck?: boolean): {
106
- nodes: any[];
107
- edges: any[];
108
- };
109
198
  updateAttributes(id: string, attributes: object): void;
110
199
  /**
111
- * 修改指定节点id
200
+ * 修改节点的id, 如果不传新的id,会内部自动创建一个。
201
+ * @param { string } oldId 将要被修改的id
202
+ * @param { string } newId 可选,修改后的id
203
+ * @returns 修改后的节点id, 如果传入的oldId不存在,返回空字符串
204
+ */
205
+ changeNodeId<T extends string>(oldId: any, newId?: T | string): T | string;
206
+ /**
207
+ * 修改边的id, 如果不传新的id,会内部自动创建一个。
208
+ * @param { string } oldId 将要被修改的id
209
+ * @param { string } newId 可选,修改后的id
210
+ * @returns 修改后的节点id, 如果传入的oldId不存在,返回空字符串
211
+ */
212
+ changeEdgeId<T extends string>(oldId: string, newId?: string): T | string;
213
+ /**
214
+ * 内部保留方法,请勿直接使用
112
215
  */
113
- changeNodeId<T extends string>(oldId: any, newId?: T | string): false | T | string;
114
- changeEdgeId<T extends string>(oldId: string, newId?: string): false | T | string;
115
216
  setFakerNode(nodeModel: BaseNodeModel): void;
217
+ /**
218
+ * 内部保留方法,请勿直接使用
219
+ */
116
220
  removeFakerNode(): void;
221
+ /**
222
+ * 设置指定类型的Model,请勿直接使用
223
+ */
117
224
  setModel(type: string, ModelClass: any): Map<any, any>;
118
- updateEdgeByIndex(index: any, data: any): void;
225
+ /**
226
+ * 将某个元素放置到顶部。
227
+ * 如果堆叠模式为默认模式,则将原置顶元素重新恢复原有层级。
228
+ * 如果堆叠模式为递增模式,则将需指定元素zIndex设置为当前最大zIndex + 1。
229
+ * @see todo link 堆叠模式
230
+ * @param id 元素Id
231
+ */
119
232
  toFront(id: any): void;
120
- setElementZIndex(id: any, zIndex: any): void;
233
+ /**
234
+ * 设置元素的zIndex.
235
+ * 注意:默认堆叠模式下,不建议使用此方法。
236
+ * @see todo link 堆叠模式
237
+ * @param id 元素id
238
+ * @param zIndex zIndex的值,可以传数字,也支持传入'top' 和 'bottom'
239
+ */
240
+ setElementZIndex(id: string, zIndex: number | 'top' | 'bottom'): void;
241
+ /**
242
+ * 删除节点
243
+ * @param {string} nodeId 节点Id
244
+ */
121
245
  deleteNode(id: any): void;
246
+ /**
247
+ * 添加节点
248
+ * @param nodeConfig 节点配置
249
+ */
122
250
  addNode(nodeConfig: NodeConfig): any;
123
251
  /**
124
252
  * 克隆节点
@@ -140,20 +268,71 @@ declare class GraphModel {
140
268
  * @param y Y轴目标位置
141
269
  */
142
270
  moveNode2Coordinate(nodeId: BaseNodeModelId, x: number, y: number): void;
143
- setTextEditable(id: ElementModeId): void;
144
- createEdge(edgeConfig: EdgeConfig): EdgeConfig;
271
+ /**
272
+ * 显示节点文本编辑框
273
+ * @param nodeId 节点id
274
+ */
275
+ editText(id: ElementModeId): void;
276
+ /**
277
+ * 给两个节点之间添加一条边
278
+ * @param {object} edgeConfig
279
+ */
280
+ addEdge(edgeConfig: EdgeConfig): EdgeConfig;
281
+ /**
282
+ * 移动边,内部方法,请勿直接使用
283
+ */
145
284
  moveEdge(nodeId: BaseNodeModelId, deltaX: number, deltaY: number): void;
146
- removeEdge(sourceNodeId: any, targetNodeId: any): void;
147
- removeEdgeById(id: any): void;
148
- removeEdgeBySource(sourceNodeId: any): void;
149
- removeEdgeByTarget(targetNodeId: any): void;
150
- setElementState(state: ElementState, additionStateData?: AdditionData): void;
151
- setElementStateById(id: ElementModeId, state: ElementState, additionStateData?: AdditionData): void;
152
- setElementTextById(id: ElementModeId, value: string): void;
153
- resetElementState(): void;
285
+ /**
286
+ * 删除两节点直接的边
287
+ * @param sourceNodeId 边的起始节点
288
+ * @param targetNodeId 边的目的节点
289
+ */
290
+ deleteEdgeBySourceAndTarget(sourceNodeId: any, targetNodeId: any): void;
291
+ /**
292
+ * 基于边Id删除边
293
+ */
294
+ deleteEdgeById(id: any): void;
295
+ /**
296
+ * 删除以节点Id为起点的所有边
297
+ */
298
+ deleteEdgeBySource(sourceNodeId: any): void;
299
+ /**
300
+ * 删除以节点Id为终点的所有边
301
+ */
302
+ deleteEdgeByTarget(targetNodeId: any): void;
303
+ /**
304
+ * 设置元素的状态,在需要保证整个画布上所有的元素只有一个元素拥有此状态时可以调用此方法。
305
+ * 例如文本编辑、菜单显示等。
306
+ * additionStateData: 传递的额外值,如菜单显示的时候,需要传递期望菜单显示的位置。
307
+ */
308
+ setElementStateById(id: ElementModeId, state: number, additionStateData?: AdditionData): void;
309
+ /**
310
+ * 更新节点或边的文案
311
+ * @param id 节点或者边id
312
+ * @param value 文案内容
313
+ */
314
+ updateText(id: ElementModeId, value: string): void;
315
+ /**
316
+ * 选中节点
317
+ * @param id 节点Id
318
+ * @param multiple 是否为多选,如果为多选,则不去掉原有已选择节点的选中状态
319
+ */
154
320
  selectNodeById(id: string, multiple?: boolean): void;
321
+ /**
322
+ * 选中边
323
+ * @param id 边Id
324
+ * @param multiple 是否为多选,如果为多选,则不去掉原已选中边的状态
325
+ */
155
326
  selectEdgeById(id: string, multiple?: boolean): void;
327
+ /**
328
+ * 将图形选中
329
+ * @param id 选择元素ID
330
+ * @param multiple 是否允许多选,如果为true,不会将上一个选中的元素重置
331
+ */
156
332
  selectElementById(id: string, multiple?: boolean): void;
333
+ /**
334
+ * 将所有选中的元素设置为非选中
335
+ */
157
336
  clearSelectElements(): void;
158
337
  /**
159
338
  * 批量移动元素
@@ -162,8 +341,8 @@ declare class GraphModel {
162
341
  nodes: NodeConfig[];
163
342
  }, deltaX: number, deltaY: number): void;
164
343
  /**
165
- * 批量移动节点,节点移动的时候,会动态计算所有节点与未移动节点的连线位置
166
- * 移动的节点直接的连线会保持相对位置
344
+ * 批量移动节点,节点移动的时候,会动态计算所有节点与未移动节点的边位置
345
+ * 移动的节点直接的边会保持相对位置
167
346
  */
168
347
  moveNodes(nodeIds: any, deltaX: any, deltaY: any, isignoreRule?: boolean): void;
169
348
  /**
@@ -172,9 +351,36 @@ declare class GraphModel {
172
351
  * @param fn function
173
352
  */
174
353
  addNodeMoveRules(fn: NodeMoveRule): void;
175
- changeEdgeType(type: string): void;
354
+ /**
355
+ * 设置默认的边类型
356
+ * 也就是设置在节点直接有用户手动绘制的连线类型。
357
+ * @param type Options.EdgeType
358
+ */
359
+ setDefaultEdgeType(type: string): void;
360
+ /**
361
+ * 修改指定节点类型
362
+ * @param id 节点id
363
+ * @param type 节点类型
364
+ */
176
365
  changeNodeType(id: any, type: string): void;
177
- setTheme(style: Style): void;
366
+ /**
367
+ * 切换边的类型
368
+ * @param id 边Id
369
+ * @param type 期望切换的类型
370
+ */
371
+ changeEdgeType(id: any, type: any): void;
372
+ /**
373
+ * 设置主题
374
+ * todo docs link
375
+ */
376
+ setTheme(style: Theme): void;
377
+ /**
378
+ * 重新设置画布的宽高
379
+ */
380
+ resize(width: number, height: number): void;
381
+ /**
382
+ * 清空画布
383
+ */
178
384
  clearData(): void;
179
385
  }
180
386
  export { GraphModel };
@@ -15,9 +15,13 @@ export default class SnaplineModel {
15
15
  isShowHorizontal: boolean;
16
16
  isShowVertical: boolean;
17
17
  position: SnaplinePosition;
18
- get stroke(): string;
19
- get strokeWidth(): number;
20
18
  constructor(graphModel: any);
19
+ getStyle(): {
20
+ [x: string]: any;
21
+ fill?: string;
22
+ stroke?: string;
23
+ strokeWidth?: number;
24
+ };
21
25
  private getCenterSnapLine;
22
26
  private getHorizontalSnapline;
23
27
  private getVerticalSnapline;
@@ -10,7 +10,7 @@ export interface TransfromInterface {
10
10
  ZOOM_SIZE: number;
11
11
  MINI_SCALE_SIZE: number;
12
12
  MAX_SCALE_SIZE: number;
13
- zoom: (isZoomout: ZoomParam) => boolean;
13
+ zoom: (isZoomout: ZoomParam) => string;
14
14
  HtmlPointToCanvasPoint: (point: PointTuple) => PointTuple;
15
15
  CanvasPointToHtmlPoint: (point: PointTuple) => PointTuple;
16
16
  moveCanvasPointByHtml: (point: PointTuple, x: number, y: number) => PointTuple;
@@ -62,7 +62,13 @@ export default class TransfromModel implements TransfromInterface {
62
62
  getTransformStyle(): {
63
63
  transform: string;
64
64
  };
65
- zoom(zoomSize?: ZoomParam, point?: PointTuple): boolean;
65
+ /**
66
+ * 放大缩小图形
67
+ * @param zoomSize 放大缩小的值,支持传入0-n之间的数字。小于1表示缩小,大于1表示放大。也支持传入true和false按照内置的刻度放大缩小
68
+ * @param point 缩放的原点
69
+ * @returns {string} -放大缩小的比例
70
+ */
71
+ zoom(zoomSize?: ZoomParam, point?: PointTuple): string;
66
72
  private emitGraphTransform;
67
73
  resetZoom(): void;
68
74
  translate(x: number, y: number): void;
@@ -1,7 +1,8 @@
1
1
  import { IBaseModel } from '../BaseModel';
2
2
  import GraphModel from '../GraphModel';
3
- import { Point, AdditionData, EdgeAttribute, EdgeData, MenuConfig, EdgeConfig } from '../../type/index';
4
- import { ElementState, ModelType, ElementType } from '../../constant/constant';
3
+ import { Point, AdditionData, EdgeData, MenuConfig, EdgeConfig } from '../../type/index';
4
+ import { ModelType, ElementType } from '../../constant/constant';
5
+ import { OutlineTheme } from '../../constant/DefaultTheme';
5
6
  declare class BaseEdgeModel implements IBaseModel {
6
7
  id: string;
7
8
  readonly BaseType = ElementType.EDGE;
@@ -22,25 +23,19 @@ declare class BaseEdgeModel implements IBaseModel {
22
23
  editable: boolean;
23
24
  };
24
25
  type: string;
25
- properties: {};
26
+ properties: Record<string, any>;
26
27
  sourceNodeId: string;
27
28
  targetNodeId: string;
28
29
  startPoint: any;
29
30
  endPoint: any;
30
31
  strokeWidth: number;
31
32
  stroke: string;
32
- strokeDashArray: string;
33
- outlineColor: string;
34
33
  hideOutline: boolean;
35
- outlineStrokeDashArray: string;
36
34
  strokeOpacity: number;
37
35
  zIndex: number;
38
36
  isSelected: boolean;
39
37
  isHovered: boolean;
40
- isDragging: boolean;
41
38
  isHitable: boolean;
42
- hoverStroke: string;
43
- selectedStroke: string;
44
39
  points: string;
45
40
  pointsList: any[];
46
41
  draggable: boolean;
@@ -48,6 +43,30 @@ declare class BaseEdgeModel implements IBaseModel {
48
43
  initEdgeData(data: any): void;
49
44
  createId(): any;
50
45
  setAttributes(): void;
46
+ getEdgeStyle(): {
47
+ [x: string]: any;
48
+ fill?: string;
49
+ stroke?: string;
50
+ strokeWidth?: number;
51
+ };
52
+ getTextStyle(): {
53
+ [x: string]: any;
54
+ overflowMode?: string;
55
+ textWidth?: number;
56
+ background?: {
57
+ wrapPadding?: string;
58
+ } & {
59
+ width?: number;
60
+ height?: number;
61
+ radius?: number;
62
+ } & import("../../constant/DefaultTheme").CommonTheme;
63
+ hover?: import("../../constant/DefaultTheme").EdgeTextTheme;
64
+ color?: string;
65
+ fontSize?: number;
66
+ fill?: string;
67
+ stroke?: string;
68
+ strokeWidth?: number;
69
+ };
51
70
  get sourceNode(): import("..").BaseNodeModel;
52
71
  get targetNode(): import("..").BaseNodeModel;
53
72
  get textPosition(): Point;
@@ -59,11 +78,16 @@ declare class BaseEdgeModel implements IBaseModel {
59
78
  move(): void;
60
79
  getBeginAnchor(sourceNode: any, targetNode: any): Point;
61
80
  getEndAnchor(targetNode: any): Point;
62
- getProperties(): {};
81
+ getProperties(): Record<string, any>;
63
82
  getData(): EdgeData;
64
83
  setProperty(key: any, val: any): void;
65
84
  setProperties(properties: any): void;
66
- updateData(edgeAttribute: EdgeAttribute): void;
85
+ /**
86
+ * @overridable 支持重写
87
+ * 获取outline样式,重写可以定义此类型节点outline样式, 默认使用主题样式
88
+ * @returns 自定义outline样式
89
+ */
90
+ getOutlineStyle(): OutlineTheme;
67
91
  formatText(data: any): void;
68
92
  resetTextPosition(): void;
69
93
  moveText(deltaX: number, deltaY: number): void;
@@ -73,7 +97,7 @@ declare class BaseEdgeModel implements IBaseModel {
73
97
  setSelected(flag?: boolean): void;
74
98
  setHovered(flag?: boolean): void;
75
99
  setHitable(flag?: boolean): void;
76
- setElementState(state: ElementState, additionStateData?: AdditionData): void;
100
+ setElementState(state: number, additionStateData?: AdditionData): void;
77
101
  updateStroke(color: any): void;
78
102
  updateStrokeWidth(width: any): void;
79
103
  updateStartPoint(anchor: any): void;
@@ -7,6 +7,15 @@ export default class BezierEdgeModel extends BaseEdgeModel {
7
7
  offset: number;
8
8
  path: string;
9
9
  constructor(data: any, graphModel: any);
10
+ getEdgeStyle(): {
11
+ [x: string]: any;
12
+ offset?: number;
13
+ adjustLine?: import("../../constant/DefaultTheme").CommonTheme;
14
+ adjustAnchor?: import("../../constant/DefaultTheme").CircleTheme;
15
+ fill?: string;
16
+ stroke?: string;
17
+ strokeWidth?: number;
18
+ };
10
19
  getTextPosition(): Point;
11
20
  getData(): {
12
21
  pointsList: {
@@ -5,5 +5,11 @@ export { LineEdgeModel };
5
5
  export default class LineEdgeModel extends BaseEdgeModel {
6
6
  modelType: ModelType;
7
7
  constructor(data: any, graphModel: any);
8
+ getEdgeStyle(): {
9
+ [x: string]: any;
10
+ fill?: string;
11
+ stroke?: string;
12
+ strokeWidth?: number;
13
+ };
8
14
  getTextPosition(): Point;
9
15
  }
@@ -9,6 +9,13 @@ export default class PolylineEdgeModel extends BaseEdgeModel {
9
9
  draginngPointList: any;
10
10
  dbClickPosition: Point;
11
11
  constructor(data: any, graphModel: GraphModel);
12
+ getEdgeStyle(): {
13
+ [x: string]: any;
14
+ offset?: number;
15
+ fill?: string;
16
+ stroke?: string;
17
+ strokeWidth?: number;
18
+ };
12
19
  getTextPosition(): {
13
20
  x: number;
14
21
  y: number;