@logicflow/core 1.0.0-alpha.0 → 1.0.0-alpha.12
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.
- package/README.md +1 -1
- package/dist/logic-flow.js +2 -11
- package/dist/style/index.css +15 -1
- package/package.json +4 -6
- package/types/LogicFlow.d.ts +341 -137
- package/types/constant/DefaultTheme.d.ts +260 -171
- package/types/constant/constant.d.ts +7 -1
- package/types/keyboard/index.d.ts +1 -5
- package/types/model/BaseModel.d.ts +8 -8
- package/types/model/EditConfigModel.d.ts +6 -16
- package/types/model/GraphModel.d.ts +280 -61
- package/types/model/SnaplineModel.d.ts +6 -2
- package/types/model/TransformModel.d.ts +8 -2
- package/types/model/edge/BaseEdgeModel.d.ts +91 -42
- package/types/model/edge/BezierEdgeModel.d.ts +9 -2
- package/types/model/edge/LineEdgeModel.d.ts +6 -1
- package/types/model/edge/PolylineEdgeModel.d.ts +7 -3
- package/types/model/node/BaseNodeModel.d.ts +81 -56
- package/types/model/node/CircleNodeModel.d.ts +7 -2
- package/types/model/node/DiamondNodeModel.d.ts +7 -4
- package/types/model/node/EllipseNodeModel.d.ts +6 -2
- package/types/model/node/HtmlNodeModel.d.ts +0 -2
- package/types/model/node/PolygonNodeModel.d.ts +6 -2
- package/types/model/node/RectNodeModel.d.ts +9 -2
- package/types/model/node/TextNodeModel.d.ts +8 -4
- package/types/options.d.ts +78 -12
- package/types/type/index.d.ts +29 -37
- package/types/util/edge.d.ts +3 -3
- package/types/util/graph.d.ts +1 -1
- package/types/util/node.d.ts +1 -1
- package/types/util/theme.d.ts +2 -173
- package/types/view/Anchor.d.ts +0 -2
- package/types/view/Graph.d.ts +1 -3
- package/types/view/basic-shape/Path.d.ts +1 -9
- package/types/view/basic-shape/Rect.d.ts +1 -5
- package/types/view/behavior/DnD.d.ts +0 -4
- package/types/view/edge/AdjustPoint.d.ts +1 -3
- package/types/view/edge/Arrow.d.ts +3 -3
- package/types/view/edge/BaseEdge.d.ts +2 -20
- package/types/view/edge/BezierEdge.d.ts +0 -12
- package/types/view/edge/LineEdge.d.ts +0 -13
- package/types/view/edge/PolylineEdge.d.ts +0 -12
- package/types/view/node/BaseNode.d.ts +1 -46
- package/types/view/node/CircleNode.d.ts +0 -40
- package/types/view/node/DiamondNode.d.ts +0 -40
- package/types/view/node/EllipseNode.d.ts +0 -29
- package/types/view/node/HtmlNode.d.ts +21 -0
- package/types/view/node/PolygonNode.d.ts +0 -40
- package/types/view/node/RectNode.d.ts +0 -40
- package/types/view/node/TextNode.d.ts +1 -0
- package/types/view/overlay/BackgroundOverlay.d.ts +18 -29
- package/types/view/overlay/CanvasOverlay.d.ts +0 -2
- package/types/view/overlay/OutlineOverlay.d.ts +1 -1
- package/types/view/text/BaseText.d.ts +0 -2
- package/dist/logic-flow.es.js +0 -74
|
@@ -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 {
|
|
7
|
-
import { AdditionData, Point, NodeConfig, EdgeConfig,
|
|
6
|
+
import { OverlapMode } from '../constant/constant';
|
|
7
|
+
import { AdditionData, Point, NodeConfig, EdgeConfig, PointTuple, 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
|
-
|
|
13
|
-
|
|
14
|
+
/**
|
|
15
|
+
* LogicFlow画布挂载元素
|
|
16
|
+
* 也就是初始化LogicFlow实例时传入的container
|
|
17
|
+
*/
|
|
14
18
|
rootEl: HTMLElement;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
22
|
-
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
additionStateData: AdditionData;
|
|
65
|
+
/**
|
|
66
|
+
* 当前图上所有边的model
|
|
67
|
+
*/
|
|
30
68
|
edges: BaseEdgeModel[];
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
69
|
+
/**
|
|
70
|
+
* 元素重合时堆叠模式
|
|
71
|
+
* 默认模式,节点和边被选中,会被显示在最上面。当取消选中后,元素会恢复之前的层级。
|
|
72
|
+
* 递增模式,节点和边被选中,会被显示在最上面。当取消选中后,元素会保持层级。
|
|
73
|
+
* @see todo link
|
|
74
|
+
*/
|
|
75
|
+
overlapMode: OverlapMode;
|
|
76
|
+
/**
|
|
77
|
+
* 背景配置
|
|
78
|
+
* @see todo link
|
|
79
|
+
*/
|
|
35
80
|
background: any;
|
|
36
|
-
|
|
37
|
-
|
|
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(
|
|
105
|
+
constructor(options: Definition);
|
|
42
106
|
get nodesMap(): {
|
|
43
107
|
[key: string]: {
|
|
44
108
|
index: number;
|
|
@@ -51,18 +115,31 @@ 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;
|
|
127
|
+
/**
|
|
128
|
+
* 当前画布所有被选中的元素
|
|
129
|
+
*/
|
|
59
130
|
get selectElements(): Map<any, any>;
|
|
60
131
|
/**
|
|
61
132
|
* 获取指定区域内的所有元素
|
|
62
133
|
*/
|
|
63
|
-
getAreaElement(leftTopPoint:
|
|
134
|
+
getAreaElement(leftTopPoint: PointTuple, rightBottomPoint: PointTuple): any[];
|
|
135
|
+
/**
|
|
136
|
+
* 获取指定类型元素对应的Model
|
|
137
|
+
*/
|
|
64
138
|
getModel(type: string): any;
|
|
65
|
-
|
|
139
|
+
/**
|
|
140
|
+
* 基于Id获取节点的model
|
|
141
|
+
*/
|
|
142
|
+
getNodeModelById(nodeId: BaseNodeModelId): BaseNodeModel;
|
|
66
143
|
/**
|
|
67
144
|
* 因为流程图所在的位置可以是页面任何地方
|
|
68
145
|
* 当内部事件需要获取触发事件时,其相对于画布左上角的位置
|
|
@@ -80,41 +157,103 @@ declare class GraphModel {
|
|
|
80
157
|
};
|
|
81
158
|
/**
|
|
82
159
|
* 判断一个元素是否在指定矩形区域内。
|
|
83
|
-
* @param element
|
|
160
|
+
* @param element 节点或者边
|
|
84
161
|
* @param lt 左上角点
|
|
85
162
|
* @param rb 右下角点
|
|
86
163
|
*/
|
|
87
|
-
isElementInArea(element: any, lt:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
164
|
+
isElementInArea(element: any, lt: PointTuple, rb: PointTuple, wholeEdge?: boolean): boolean;
|
|
165
|
+
/**
|
|
166
|
+
* 使用新的数据重新设置整个画布的元素
|
|
167
|
+
* 注意:将会清除画布上所有已有的节点和边
|
|
168
|
+
* @param { object } graphData 图数据
|
|
169
|
+
*/
|
|
170
|
+
graphDataToModel(graphData: GraphConfigData): void;
|
|
171
|
+
/**
|
|
172
|
+
* 获取画布数据
|
|
173
|
+
*/
|
|
174
|
+
modelToGraphData(): GraphConfigData;
|
|
175
|
+
modelToHistoryData(): false | {
|
|
176
|
+
nodes: any[];
|
|
177
|
+
edges: any[];
|
|
92
178
|
};
|
|
93
|
-
|
|
179
|
+
/**
|
|
180
|
+
* 获取边的model
|
|
181
|
+
*/
|
|
182
|
+
getEdgeModelById(edgeId: string): BaseEdgeModel | undefined;
|
|
183
|
+
/**
|
|
184
|
+
* 获取节点或者边的model
|
|
185
|
+
*/
|
|
94
186
|
getElement(id: string): IBaseModel | undefined;
|
|
187
|
+
/**
|
|
188
|
+
* 所有节点上所有边的model
|
|
189
|
+
*/
|
|
95
190
|
getNodeEdges(nodeId: any): BaseEdgeModel[];
|
|
96
191
|
/**
|
|
97
192
|
* 获取选中的元素数据
|
|
98
|
-
* @param isIgnoreCheck 是否包括sourceNode和targetNode
|
|
99
|
-
*
|
|
193
|
+
* @param isIgnoreCheck 是否包括sourceNode和targetNode没有被选中的边,默认包括。
|
|
194
|
+
* 复制的时候不能包括此类边, 因为复制的时候不允许悬空的边
|
|
195
|
+
*/
|
|
196
|
+
getSelectElements(isIgnoreCheck?: boolean): GraphConfigData;
|
|
197
|
+
/**
|
|
198
|
+
* 修改对应元素 model 中的属性
|
|
199
|
+
* 注意:此方法慎用,除非您对logicflow内部有足够的了解。
|
|
200
|
+
* 大多数情况下,请使用setProperties、updateText、changeNodeId等方法。
|
|
201
|
+
* 例如直接使用此方法修改节点的id,那么就是会导致连接到此节点的边的sourceNodeId出现找不到的情况。
|
|
202
|
+
* @param {string} id 元素id
|
|
203
|
+
* @param {object} attributes 需要更新的属性
|
|
100
204
|
*/
|
|
101
|
-
getSelectElements(isIgnoreCheck?: boolean): {
|
|
102
|
-
nodes: any[];
|
|
103
|
-
edges: any[];
|
|
104
|
-
};
|
|
105
205
|
updateAttributes(id: string, attributes: object): void;
|
|
106
206
|
/**
|
|
107
|
-
*
|
|
207
|
+
* 修改节点的id, 如果不传新的id,会内部自动创建一个。
|
|
208
|
+
* @param { string } oldId 将要被修改的id
|
|
209
|
+
* @param { string } newId 可选,修改后的id
|
|
210
|
+
* @returns 修改后的节点id, 如果传入的oldId不存在,返回空字符串
|
|
211
|
+
*/
|
|
212
|
+
changeNodeId<T extends string>(oldId: any, newId?: T | string): T | string;
|
|
213
|
+
/**
|
|
214
|
+
* 修改边的id, 如果不传新的id,会内部自动创建一个。
|
|
215
|
+
* @param { string } oldId 将要被修改的id
|
|
216
|
+
* @param { string } newId 可选,修改后的id
|
|
217
|
+
* @returns 修改后的节点id, 如果传入的oldId不存在,返回空字符串
|
|
218
|
+
*/
|
|
219
|
+
changeEdgeId<T extends string>(oldId: string, newId?: string): T | string;
|
|
220
|
+
/**
|
|
221
|
+
* 内部保留方法,请勿直接使用
|
|
108
222
|
*/
|
|
109
|
-
changeNodeId<T extends string>(oldId: any, newId?: T | string): false | T | string;
|
|
110
|
-
changeEdgeId<T extends string>(oldId: string, newId?: string): false | T | string;
|
|
111
223
|
setFakerNode(nodeModel: BaseNodeModel): void;
|
|
224
|
+
/**
|
|
225
|
+
* 内部保留方法,请勿直接使用
|
|
226
|
+
*/
|
|
112
227
|
removeFakerNode(): void;
|
|
228
|
+
/**
|
|
229
|
+
* 设置指定类型的Model,请勿直接使用
|
|
230
|
+
*/
|
|
113
231
|
setModel(type: string, ModelClass: any): Map<any, any>;
|
|
114
|
-
|
|
232
|
+
/**
|
|
233
|
+
* 将某个元素放置到顶部。
|
|
234
|
+
* 如果堆叠模式为默认模式,则将原置顶元素重新恢复原有层级。
|
|
235
|
+
* 如果堆叠模式为递增模式,则将需指定元素zIndex设置为当前最大zIndex + 1。
|
|
236
|
+
* @see todo link 堆叠模式
|
|
237
|
+
* @param id 元素Id
|
|
238
|
+
*/
|
|
115
239
|
toFront(id: any): void;
|
|
116
|
-
|
|
240
|
+
/**
|
|
241
|
+
* 设置元素的zIndex.
|
|
242
|
+
* 注意:默认堆叠模式下,不建议使用此方法。
|
|
243
|
+
* @see todo link 堆叠模式
|
|
244
|
+
* @param id 元素id
|
|
245
|
+
* @param zIndex zIndex的值,可以传数字,也支持传入'top' 和 'bottom'
|
|
246
|
+
*/
|
|
247
|
+
setElementZIndex(id: string, zIndex: number | 'top' | 'bottom'): void;
|
|
248
|
+
/**
|
|
249
|
+
* 删除节点
|
|
250
|
+
* @param {string} nodeId 节点Id
|
|
251
|
+
*/
|
|
117
252
|
deleteNode(id: any): void;
|
|
253
|
+
/**
|
|
254
|
+
* 添加节点
|
|
255
|
+
* @param nodeConfig 节点配置
|
|
256
|
+
*/
|
|
118
257
|
addNode(nodeConfig: NodeConfig): any;
|
|
119
258
|
/**
|
|
120
259
|
* 克隆节点
|
|
@@ -135,43 +274,123 @@ declare class GraphModel {
|
|
|
135
274
|
* @param x X轴目标位置
|
|
136
275
|
* @param y Y轴目标位置
|
|
137
276
|
*/
|
|
138
|
-
moveNode2Coordinate(nodeId: BaseNodeModelId, x: number, y: number): void;
|
|
139
|
-
|
|
140
|
-
|
|
277
|
+
moveNode2Coordinate(nodeId: BaseNodeModelId, x: number, y: number, isignoreRule?: boolean): void;
|
|
278
|
+
/**
|
|
279
|
+
* 显示节点、连线文本编辑框
|
|
280
|
+
* @param elementId 节点id
|
|
281
|
+
*/
|
|
282
|
+
editText(id: ElementModeId): void;
|
|
283
|
+
/**
|
|
284
|
+
* 给两个节点之间添加一条边
|
|
285
|
+
* @param {object} edgeConfig
|
|
286
|
+
*/
|
|
287
|
+
addEdge(edgeConfig: EdgeConfig): EdgeConfig;
|
|
288
|
+
/**
|
|
289
|
+
* 移动边,内部方法,请勿直接使用
|
|
290
|
+
*/
|
|
141
291
|
moveEdge(nodeId: BaseNodeModelId, deltaX: number, deltaY: number): void;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
292
|
+
/**
|
|
293
|
+
* 删除两节点之间的边
|
|
294
|
+
* @param sourceNodeId 边的起始节点
|
|
295
|
+
* @param targetNodeId 边的目的节点
|
|
296
|
+
*/
|
|
297
|
+
deleteEdgeBySourceAndTarget(sourceNodeId: any, targetNodeId: any): void;
|
|
298
|
+
/**
|
|
299
|
+
* 基于边Id删除边
|
|
300
|
+
*/
|
|
301
|
+
deleteEdgeById(id: any): void;
|
|
302
|
+
/**
|
|
303
|
+
* 删除以节点Id为起点的所有边
|
|
304
|
+
*/
|
|
305
|
+
deleteEdgeBySource(sourceNodeId: any): void;
|
|
306
|
+
/**
|
|
307
|
+
* 删除以节点Id为终点的所有边
|
|
308
|
+
*/
|
|
309
|
+
deleteEdgeByTarget(targetNodeId: any): void;
|
|
310
|
+
/**
|
|
311
|
+
* 设置元素的状态,在需要保证整个画布上所有的元素只有一个元素拥有此状态时可以调用此方法。
|
|
312
|
+
* 例如文本编辑、菜单显示等。
|
|
313
|
+
* additionStateData: 传递的额外值,如菜单显示的时候,需要传递期望菜单显示的位置。
|
|
314
|
+
*/
|
|
315
|
+
setElementStateById(id: ElementModeId, state: number, additionStateData?: AdditionData): void;
|
|
316
|
+
/**
|
|
317
|
+
* 更新节点或边的文案
|
|
318
|
+
* @param id 节点或者边id
|
|
319
|
+
* @param value 文案内容
|
|
320
|
+
*/
|
|
321
|
+
updateText(id: ElementModeId, value: string): void;
|
|
322
|
+
/**
|
|
323
|
+
* 选中节点
|
|
324
|
+
* @param id 节点Id
|
|
325
|
+
* @param multiple 是否为多选,如果为多选,则不去掉原有已选择节点的选中状态
|
|
326
|
+
*/
|
|
150
327
|
selectNodeById(id: string, multiple?: boolean): void;
|
|
328
|
+
/**
|
|
329
|
+
* 选中边
|
|
330
|
+
* @param id 边Id
|
|
331
|
+
* @param multiple 是否为多选,如果为多选,则不去掉原已选中边的状态
|
|
332
|
+
*/
|
|
151
333
|
selectEdgeById(id: string, multiple?: boolean): void;
|
|
334
|
+
/**
|
|
335
|
+
* 将图形选中
|
|
336
|
+
* @param id 选择元素ID
|
|
337
|
+
* @param multiple 是否允许多选,如果为true,不会将上一个选中的元素重置
|
|
338
|
+
*/
|
|
152
339
|
selectElementById(id: string, multiple?: boolean): void;
|
|
153
|
-
clearSelectElements(): void;
|
|
154
340
|
/**
|
|
155
|
-
*
|
|
341
|
+
* 将所有选中的元素设置为非选中
|
|
156
342
|
*/
|
|
157
|
-
|
|
158
|
-
nodes: NodeConfig[];
|
|
159
|
-
}, deltaX: number, deltaY: number): void;
|
|
343
|
+
clearSelectElements(): void;
|
|
160
344
|
/**
|
|
161
|
-
*
|
|
162
|
-
*
|
|
345
|
+
* 批量移动节点,节点移动的时候,会动态计算所有节点与未移动节点的边位置
|
|
346
|
+
* 移动的节点之间的边会保持相对位置
|
|
163
347
|
*/
|
|
164
|
-
moveNodes(nodeIds:
|
|
348
|
+
moveNodes(nodeIds: string[], deltaX: number, deltaY: number, isignoreRule?: boolean): void;
|
|
165
349
|
/**
|
|
166
350
|
* 添加节点移动限制规则,在节点移动的时候触发。
|
|
167
351
|
* 如果方法返回false, 则会阻止节点移动。
|
|
168
352
|
* @param fn function
|
|
353
|
+
* @example
|
|
354
|
+
*
|
|
355
|
+
* graphModel.addNodeMoveRules((nodeModel, x, y) => {
|
|
356
|
+
* if (nodeModel.properties.disabled) {
|
|
357
|
+
* return false
|
|
358
|
+
* }
|
|
359
|
+
* return true
|
|
360
|
+
* })
|
|
361
|
+
*
|
|
169
362
|
*/
|
|
170
363
|
addNodeMoveRules(fn: NodeMoveRule): void;
|
|
364
|
+
/**
|
|
365
|
+
* 设置默认的边类型
|
|
366
|
+
* 也就是设置在节点直接有用户手动绘制的连线类型。
|
|
367
|
+
* @param type Options.EdgeType
|
|
368
|
+
*/
|
|
171
369
|
setDefaultEdgeType(type: string): void;
|
|
370
|
+
/**
|
|
371
|
+
* 修改指定节点类型
|
|
372
|
+
* @param id 节点id
|
|
373
|
+
* @param type 节点类型
|
|
374
|
+
*/
|
|
172
375
|
changeNodeType(id: any, type: string): void;
|
|
376
|
+
/**
|
|
377
|
+
* 切换边的类型
|
|
378
|
+
* @param id 边Id
|
|
379
|
+
* @param type 边类型
|
|
380
|
+
*/
|
|
173
381
|
changeEdgeType(id: any, type: any): void;
|
|
174
|
-
|
|
382
|
+
/**
|
|
383
|
+
* 设置主题
|
|
384
|
+
* todo docs link
|
|
385
|
+
*/
|
|
386
|
+
setTheme(style: Theme): void;
|
|
387
|
+
/**
|
|
388
|
+
* 重新设置画布的宽高
|
|
389
|
+
*/
|
|
390
|
+
resize(width: number, height: number): void;
|
|
391
|
+
/**
|
|
392
|
+
* 清空画布
|
|
393
|
+
*/
|
|
175
394
|
clearData(): void;
|
|
176
395
|
}
|
|
177
396
|
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) =>
|
|
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
|
-
|
|
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,19 +1,15 @@
|
|
|
1
1
|
import { IBaseModel } from '../BaseModel';
|
|
2
2
|
import GraphModel from '../GraphModel';
|
|
3
|
-
import { Point, AdditionData,
|
|
4
|
-
import {
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
graphModel: GraphModel;
|
|
13
|
-
menu?: MenuConfig[];
|
|
14
|
-
sourceAnchorId: string;
|
|
15
|
-
targetAnchorId: string;
|
|
16
|
-
customTextPosition: boolean;
|
|
8
|
+
type: string;
|
|
9
|
+
sourceNodeId: string;
|
|
10
|
+
targetNodeId: string;
|
|
11
|
+
startPoint: any;
|
|
12
|
+
endPoint: any;
|
|
17
13
|
text: {
|
|
18
14
|
value: string;
|
|
19
15
|
x: number;
|
|
@@ -21,63 +17,116 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
21
17
|
draggable: boolean;
|
|
22
18
|
editable: boolean;
|
|
23
19
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
targetNodeId: string;
|
|
28
|
-
startPoint: any;
|
|
29
|
-
endPoint: any;
|
|
30
|
-
strokeWidth: number;
|
|
31
|
-
stroke: string;
|
|
32
|
-
strokeDashArray: string;
|
|
33
|
-
outlineColor: string;
|
|
34
|
-
hideOutline: boolean;
|
|
35
|
-
outlineStrokeDashArray: string;
|
|
36
|
-
strokeOpacity: number;
|
|
37
|
-
zIndex: number;
|
|
20
|
+
properties: Record<string, any>;
|
|
21
|
+
points: string;
|
|
22
|
+
pointsList: any[];
|
|
38
23
|
isSelected: boolean;
|
|
39
24
|
isHovered: boolean;
|
|
40
25
|
isHitable: boolean;
|
|
41
|
-
hoverStroke: string;
|
|
42
|
-
selectedStroke: string;
|
|
43
|
-
points: string;
|
|
44
|
-
pointsList: any[];
|
|
45
26
|
draggable: boolean;
|
|
46
|
-
|
|
27
|
+
graphModel: GraphModel;
|
|
28
|
+
zIndex: number;
|
|
29
|
+
readonly BaseType = ElementType.EDGE;
|
|
30
|
+
modelType: ModelType;
|
|
31
|
+
state: number;
|
|
32
|
+
additionStateData: AdditionData;
|
|
33
|
+
sourceAnchorId: string;
|
|
34
|
+
targetAnchorId: string;
|
|
35
|
+
menu?: MenuConfig[];
|
|
36
|
+
customTextPosition: boolean;
|
|
37
|
+
[propName: string]: any;
|
|
38
|
+
constructor(data: EdgeConfig, graphModel: GraphModel);
|
|
39
|
+
/**
|
|
40
|
+
* @overridable 支持重写
|
|
41
|
+
* 初始化边数据
|
|
42
|
+
* initNodeData和setAttributes的区别在于
|
|
43
|
+
* initNodeData只在节点初始化的时候调用,用于初始化节点的所有属性。
|
|
44
|
+
* setAttributes除了初始化调用外,还会在properties发生变化了调用。
|
|
45
|
+
*/
|
|
47
46
|
initEdgeData(data: any): void;
|
|
48
|
-
|
|
47
|
+
/**
|
|
48
|
+
* 设置model属性,每次properties发生变化会触发
|
|
49
|
+
* @overridable 支持重写
|
|
50
|
+
*/
|
|
49
51
|
setAttributes(): void;
|
|
52
|
+
/**
|
|
53
|
+
* @overridable 支持重写,自定义此类型节点默认生成方式
|
|
54
|
+
* @returns string
|
|
55
|
+
*/
|
|
56
|
+
createId(): any;
|
|
57
|
+
/**
|
|
58
|
+
* @overridable 支持重写
|
|
59
|
+
* 获取当前节点样式
|
|
60
|
+
* @returns 自定义边样式
|
|
61
|
+
*/
|
|
62
|
+
getEdgeStyle(): import("../../constant/DefaultTheme").CommonTheme;
|
|
63
|
+
/**
|
|
64
|
+
* @overridable 支持重写
|
|
65
|
+
* 获取当前节点文本样式
|
|
66
|
+
*/
|
|
67
|
+
getTextStyle(): import("../../constant/DefaultTheme").EdgeTextTheme;
|
|
68
|
+
/**
|
|
69
|
+
* @overridable 支持重写
|
|
70
|
+
* 获取outline样式,重写可以定义此类型边outline样式, 默认使用主题样式
|
|
71
|
+
* @returns 自定义outline样式
|
|
72
|
+
*/
|
|
73
|
+
getOutlineStyle(): OutlineTheme;
|
|
74
|
+
/**
|
|
75
|
+
* @overridable 支持重新,重新自定义文本位置
|
|
76
|
+
* @returns 文本位置
|
|
77
|
+
*/
|
|
78
|
+
getTextPosition(): Point;
|
|
50
79
|
get sourceNode(): import("..").BaseNodeModel;
|
|
51
80
|
get targetNode(): import("..").BaseNodeModel;
|
|
52
81
|
get textPosition(): Point;
|
|
53
82
|
/**
|
|
54
|
-
*
|
|
55
|
-
* @returns 文本位置
|
|
83
|
+
* 内部方法,计算两个节点相连是起点位置
|
|
56
84
|
*/
|
|
57
|
-
getTextPosition(): Point;
|
|
58
|
-
move(): void;
|
|
59
85
|
getBeginAnchor(sourceNode: any, targetNode: any): Point;
|
|
86
|
+
/**
|
|
87
|
+
* 内部方法,计算两个节点相连是终点位置
|
|
88
|
+
*/
|
|
60
89
|
getEndAnchor(targetNode: any): Point;
|
|
61
|
-
|
|
90
|
+
/**
|
|
91
|
+
* 获取当前边的properties
|
|
92
|
+
*/
|
|
93
|
+
getProperties(): Record<string, any>;
|
|
94
|
+
/**
|
|
95
|
+
* 获取被保存时返回的数据
|
|
96
|
+
*/
|
|
62
97
|
getData(): EdgeData;
|
|
63
98
|
setProperty(key: any, val: any): void;
|
|
64
99
|
setProperties(properties: any): void;
|
|
65
|
-
|
|
100
|
+
/**
|
|
101
|
+
* 内部方法,处理初始化文本格式
|
|
102
|
+
*/
|
|
66
103
|
formatText(data: any): void;
|
|
104
|
+
/**
|
|
105
|
+
* 重置文本位置
|
|
106
|
+
*/
|
|
67
107
|
resetTextPosition(): void;
|
|
108
|
+
/**
|
|
109
|
+
* 移动边上的文本
|
|
110
|
+
*/
|
|
68
111
|
moveText(deltaX: number, deltaY: number): void;
|
|
112
|
+
/**
|
|
113
|
+
* 设置文本位置和值
|
|
114
|
+
*/
|
|
69
115
|
setText(textConfig: any): void;
|
|
116
|
+
/**
|
|
117
|
+
* 更新文本的值
|
|
118
|
+
*/
|
|
70
119
|
updateText(value: string): void;
|
|
120
|
+
/**
|
|
121
|
+
* 内部方法,计算边的起点和终点
|
|
122
|
+
*/
|
|
71
123
|
setAnchors(): void;
|
|
72
124
|
setSelected(flag?: boolean): void;
|
|
73
125
|
setHovered(flag?: boolean): void;
|
|
74
126
|
setHitable(flag?: boolean): void;
|
|
75
|
-
setElementState(state:
|
|
76
|
-
updateStroke(color: any): void;
|
|
77
|
-
updateStrokeWidth(width: any): void;
|
|
127
|
+
setElementState(state: number, additionStateData?: AdditionData): void;
|
|
78
128
|
updateStartPoint(anchor: any): void;
|
|
79
129
|
updateEndPoint(anchor: any): void;
|
|
80
|
-
setStyleFromTheme(type: any, graphModel: any): void;
|
|
81
130
|
setZIndex(zindex?: number): void;
|
|
82
131
|
initPoints(): void;
|
|
83
132
|
updateAttributes(attributes: any): void;
|
|
@@ -4,9 +4,16 @@ import { ModelType } from '../../constant/constant';
|
|
|
4
4
|
export { BezierEdgeModel };
|
|
5
5
|
export default class BezierEdgeModel extends BaseEdgeModel {
|
|
6
6
|
modelType: ModelType;
|
|
7
|
-
offset: number;
|
|
8
7
|
path: string;
|
|
9
|
-
|
|
8
|
+
initEdgeData(data: any): void;
|
|
9
|
+
getEdgeStyle(): {
|
|
10
|
+
[x: string]: any;
|
|
11
|
+
adjustLine?: import("../../constant/DefaultTheme").CommonTheme;
|
|
12
|
+
adjustAnchor?: import("../../constant/DefaultTheme").CircleTheme;
|
|
13
|
+
fill?: string;
|
|
14
|
+
stroke?: string;
|
|
15
|
+
strokeWidth?: number;
|
|
16
|
+
};
|
|
10
17
|
getTextPosition(): Point;
|
|
11
18
|
getData(): {
|
|
12
19
|
pointsList: {
|
|
@@ -4,6 +4,11 @@ import { ModelType } from '../../constant/constant';
|
|
|
4
4
|
export { LineEdgeModel };
|
|
5
5
|
export default class LineEdgeModel extends BaseEdgeModel {
|
|
6
6
|
modelType: ModelType;
|
|
7
|
-
|
|
7
|
+
getEdgeStyle(): {
|
|
8
|
+
[x: string]: any;
|
|
9
|
+
fill?: string;
|
|
10
|
+
stroke?: string;
|
|
11
|
+
strokeWidth?: number;
|
|
12
|
+
};
|
|
8
13
|
getTextPosition(): Point;
|
|
9
14
|
}
|