@logicflow/core 1.0.0-alpha.3 → 1.0.0-alpha.7
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 +11 -2
- package/dist/style/index.css +1 -1
- package/package.json +2 -4
- package/types/LogicFlow.d.ts +341 -137
- package/types/constant/DefaultTheme.d.ts +271 -171
- package/types/constant/constant.d.ts +7 -1
- package/types/keyboard/index.d.ts +1 -5
- package/types/model/BaseModel.d.ts +7 -7
- package/types/model/EditConfigModel.d.ts +6 -16
- package/types/model/GraphModel.d.ts +262 -53
- package/types/model/SnaplineModel.d.ts +6 -2
- package/types/model/TransformModel.d.ts +8 -2
- package/types/model/edge/BaseEdgeModel.d.ts +36 -11
- package/types/model/edge/BezierEdgeModel.d.ts +9 -0
- package/types/model/edge/LineEdgeModel.d.ts +6 -0
- package/types/model/edge/PolylineEdgeModel.d.ts +7 -0
- package/types/model/node/BaseNodeModel.d.ts +40 -19
- 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 +84 -10
- 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 +0 -36
- package/types/view/node/CircleNode.d.ts +0 -37
- package/types/view/node/DiamondNode.d.ts +0 -37
- package/types/view/node/EllipseNode.d.ts +0 -26
- package/types/view/node/HtmlNode.d.ts +20 -0
- package/types/view/node/PolygonNode.d.ts +1 -19
- package/types/view/node/RectNode.d.ts +0 -37
- 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/dist/logic-flow.es.js +0 -72
|
@@ -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, 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,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
|
-
|
|
136
|
+
/**
|
|
137
|
+
* 基于Id获取节点的model
|
|
138
|
+
*/
|
|
139
|
+
getNodeModelById(nodeId: BaseNodeModelId): BaseNodeModel;
|
|
66
140
|
/**
|
|
67
141
|
* 因为流程图所在的位置可以是页面任何地方
|
|
68
142
|
* 当内部事件需要获取触发事件时,其相对于画布左上角的位置
|
|
@@ -80,41 +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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
+
*/
|
|
94
179
|
getElement(id: string): IBaseModel | undefined;
|
|
180
|
+
/**
|
|
181
|
+
* 所有节点上所有边的model
|
|
182
|
+
*/
|
|
95
183
|
getNodeEdges(nodeId: any): BaseEdgeModel[];
|
|
96
184
|
/**
|
|
97
185
|
* 获取选中的元素数据
|
|
98
|
-
* @param isIgnoreCheck 是否包括sourceNode和targetNode
|
|
99
|
-
*
|
|
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 需要更新的属性
|
|
100
197
|
*/
|
|
101
|
-
getSelectElements(isIgnoreCheck?: boolean): {
|
|
102
|
-
nodes: any[];
|
|
103
|
-
edges: any[];
|
|
104
|
-
};
|
|
105
198
|
updateAttributes(id: string, attributes: object): void;
|
|
106
199
|
/**
|
|
107
|
-
*
|
|
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
|
+
* 内部保留方法,请勿直接使用
|
|
108
215
|
*/
|
|
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
216
|
setFakerNode(nodeModel: BaseNodeModel): void;
|
|
217
|
+
/**
|
|
218
|
+
* 内部保留方法,请勿直接使用
|
|
219
|
+
*/
|
|
112
220
|
removeFakerNode(): void;
|
|
221
|
+
/**
|
|
222
|
+
* 设置指定类型的Model,请勿直接使用
|
|
223
|
+
*/
|
|
113
224
|
setModel(type: string, ModelClass: any): Map<any, any>;
|
|
114
|
-
|
|
225
|
+
/**
|
|
226
|
+
* 将某个元素放置到顶部。
|
|
227
|
+
* 如果堆叠模式为默认模式,则将原置顶元素重新恢复原有层级。
|
|
228
|
+
* 如果堆叠模式为递增模式,则将需指定元素zIndex设置为当前最大zIndex + 1。
|
|
229
|
+
* @see todo link 堆叠模式
|
|
230
|
+
* @param id 元素Id
|
|
231
|
+
*/
|
|
115
232
|
toFront(id: any): void;
|
|
116
|
-
|
|
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
|
+
*/
|
|
117
245
|
deleteNode(id: any): void;
|
|
246
|
+
/**
|
|
247
|
+
* 添加节点
|
|
248
|
+
* @param nodeConfig 节点配置
|
|
249
|
+
*/
|
|
118
250
|
addNode(nodeConfig: NodeConfig): any;
|
|
119
251
|
/**
|
|
120
252
|
* 克隆节点
|
|
@@ -136,20 +268,71 @@ declare class GraphModel {
|
|
|
136
268
|
* @param y Y轴目标位置
|
|
137
269
|
*/
|
|
138
270
|
moveNode2Coordinate(nodeId: BaseNodeModelId, x: number, y: number): void;
|
|
139
|
-
|
|
140
|
-
|
|
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
|
+
*/
|
|
141
284
|
moveEdge(nodeId: BaseNodeModelId, deltaX: number, deltaY: number): void;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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
|
+
*/
|
|
150
320
|
selectNodeById(id: string, multiple?: boolean): void;
|
|
321
|
+
/**
|
|
322
|
+
* 选中边
|
|
323
|
+
* @param id 边Id
|
|
324
|
+
* @param multiple 是否为多选,如果为多选,则不去掉原已选中边的状态
|
|
325
|
+
*/
|
|
151
326
|
selectEdgeById(id: string, multiple?: boolean): void;
|
|
327
|
+
/**
|
|
328
|
+
* 将图形选中
|
|
329
|
+
* @param id 选择元素ID
|
|
330
|
+
* @param multiple 是否允许多选,如果为true,不会将上一个选中的元素重置
|
|
331
|
+
*/
|
|
152
332
|
selectElementById(id: string, multiple?: boolean): void;
|
|
333
|
+
/**
|
|
334
|
+
* 将所有选中的元素设置为非选中
|
|
335
|
+
*/
|
|
153
336
|
clearSelectElements(): void;
|
|
154
337
|
/**
|
|
155
338
|
* 批量移动元素
|
|
@@ -158,8 +341,8 @@ declare class GraphModel {
|
|
|
158
341
|
nodes: NodeConfig[];
|
|
159
342
|
}, deltaX: number, deltaY: number): void;
|
|
160
343
|
/**
|
|
161
|
-
*
|
|
162
|
-
*
|
|
344
|
+
* 批量移动节点,节点移动的时候,会动态计算所有节点与未移动节点的边位置
|
|
345
|
+
* 移动的节点直接的边会保持相对位置
|
|
163
346
|
*/
|
|
164
347
|
moveNodes(nodeIds: any, deltaX: any, deltaY: any, isignoreRule?: boolean): void;
|
|
165
348
|
/**
|
|
@@ -168,10 +351,36 @@ declare class GraphModel {
|
|
|
168
351
|
* @param fn function
|
|
169
352
|
*/
|
|
170
353
|
addNodeMoveRules(fn: NodeMoveRule): void;
|
|
354
|
+
/**
|
|
355
|
+
* 设置默认的边类型
|
|
356
|
+
* 也就是设置在节点直接有用户手动绘制的连线类型。
|
|
357
|
+
* @param type Options.EdgeType
|
|
358
|
+
*/
|
|
171
359
|
setDefaultEdgeType(type: string): void;
|
|
360
|
+
/**
|
|
361
|
+
* 修改指定节点类型
|
|
362
|
+
* @param id 节点id
|
|
363
|
+
* @param type 节点类型
|
|
364
|
+
*/
|
|
172
365
|
changeNodeType(id: any, type: string): void;
|
|
366
|
+
/**
|
|
367
|
+
* 切换边的类型
|
|
368
|
+
* @param id 边Id
|
|
369
|
+
* @param type 期望切换的类型
|
|
370
|
+
*/
|
|
173
371
|
changeEdgeType(id: any, type: any): void;
|
|
174
|
-
|
|
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
|
+
*/
|
|
175
384
|
clearData(): void;
|
|
176
385
|
}
|
|
177
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) =>
|
|
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,7 +1,8 @@
|
|
|
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
|
readonly BaseType = ElementType.EDGE;
|
|
@@ -22,24 +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
38
|
isHitable: boolean;
|
|
41
|
-
hoverStroke: string;
|
|
42
|
-
selectedStroke: string;
|
|
43
39
|
points: string;
|
|
44
40
|
pointsList: any[];
|
|
45
41
|
draggable: boolean;
|
|
@@ -47,6 +43,30 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
47
43
|
initEdgeData(data: any): void;
|
|
48
44
|
createId(): any;
|
|
49
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
|
+
};
|
|
50
70
|
get sourceNode(): import("..").BaseNodeModel;
|
|
51
71
|
get targetNode(): import("..").BaseNodeModel;
|
|
52
72
|
get textPosition(): Point;
|
|
@@ -58,11 +78,16 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
58
78
|
move(): void;
|
|
59
79
|
getBeginAnchor(sourceNode: any, targetNode: any): Point;
|
|
60
80
|
getEndAnchor(targetNode: any): Point;
|
|
61
|
-
getProperties():
|
|
81
|
+
getProperties(): Record<string, any>;
|
|
62
82
|
getData(): EdgeData;
|
|
63
83
|
setProperty(key: any, val: any): void;
|
|
64
84
|
setProperties(properties: any): void;
|
|
65
|
-
|
|
85
|
+
/**
|
|
86
|
+
* @overridable 支持重写
|
|
87
|
+
* 获取outline样式,重写可以定义此类型节点outline样式, 默认使用主题样式
|
|
88
|
+
* @returns 自定义outline样式
|
|
89
|
+
*/
|
|
90
|
+
getOutlineStyle(): OutlineTheme;
|
|
66
91
|
formatText(data: any): void;
|
|
67
92
|
resetTextPosition(): void;
|
|
68
93
|
moveText(deltaX: number, deltaY: number): void;
|
|
@@ -72,7 +97,7 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
72
97
|
setSelected(flag?: boolean): void;
|
|
73
98
|
setHovered(flag?: boolean): void;
|
|
74
99
|
setHitable(flag?: boolean): void;
|
|
75
|
-
setElementState(state:
|
|
100
|
+
setElementState(state: number, additionStateData?: AdditionData): void;
|
|
76
101
|
updateStroke(color: any): void;
|
|
77
102
|
updateStrokeWidth(width: any): void;
|
|
78
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;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { OutlineTheme } from '../../constant/DefaultTheme';
|
|
2
|
+
import { ModelType, ElementType } from '../../constant/constant';
|
|
3
|
+
import { AdditionData, NodeData, NodeConfig, NodeMoveRule, Bounds, AnchorConfig, PointAnchor, AnchorsOffsetItem, ShapeStyleAttribute } from '../../type';
|
|
3
4
|
import GraphModel from '../GraphModel';
|
|
4
5
|
import { IBaseModel } from '../BaseModel';
|
|
5
6
|
export declare type ConnectRule = {
|
|
@@ -39,17 +40,6 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
39
40
|
private _height;
|
|
40
41
|
get height(): number;
|
|
41
42
|
set height(value: number);
|
|
42
|
-
fill: string;
|
|
43
|
-
fillOpacity: number;
|
|
44
|
-
strokeWidth: number;
|
|
45
|
-
stroke: string;
|
|
46
|
-
strokeOpacity: number;
|
|
47
|
-
opacity: number;
|
|
48
|
-
outlineColor: string;
|
|
49
|
-
hideOutline: boolean;
|
|
50
|
-
hoverOutlineColor: string;
|
|
51
|
-
outlineStrokeDashArray: string;
|
|
52
|
-
hoverOutlineStrokeDashArray: string;
|
|
53
43
|
isSelected: boolean;
|
|
54
44
|
isHovered: boolean;
|
|
55
45
|
isHitable: boolean;
|
|
@@ -64,7 +54,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
64
54
|
editable: boolean;
|
|
65
55
|
};
|
|
66
56
|
draggable: boolean;
|
|
67
|
-
constructor(data: NodeConfig, graphModel: GraphModel
|
|
57
|
+
constructor(data: NodeConfig, graphModel: GraphModel);
|
|
68
58
|
/**
|
|
69
59
|
* 初始化节点数据,不建议重写
|
|
70
60
|
* 可以重写setAttributes来实现修改初始化功能
|
|
@@ -102,7 +92,40 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
102
92
|
getData(): NodeData;
|
|
103
93
|
getProperties(): Record<string, any>;
|
|
104
94
|
/**
|
|
105
|
-
*
|
|
95
|
+
* @overridable 支持重写
|
|
96
|
+
* 获取当前节点样式
|
|
97
|
+
* @returns 自定义节点样式
|
|
98
|
+
*/
|
|
99
|
+
getNodeStyle(): ShapeStyleAttribute;
|
|
100
|
+
getTextStyle(): {
|
|
101
|
+
[x: string]: any;
|
|
102
|
+
overflowMode?: string;
|
|
103
|
+
background?: import("../../constant/DefaultTheme").RectTheme;
|
|
104
|
+
color?: string;
|
|
105
|
+
fontSize?: number;
|
|
106
|
+
fill?: string;
|
|
107
|
+
stroke?: string;
|
|
108
|
+
strokeWidth?: number;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* 获取节点锚点样式
|
|
112
|
+
* @returns 自定义样式
|
|
113
|
+
*/
|
|
114
|
+
getAnchorStyle(): Record<string, any>;
|
|
115
|
+
getAnchorLineStyle(): {
|
|
116
|
+
[x: string]: any;
|
|
117
|
+
fill?: string;
|
|
118
|
+
stroke?: string;
|
|
119
|
+
strokeWidth?: number;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* @overridable 支持重写
|
|
123
|
+
* 获取outline样式,重写可以定义此类型节点outline样式, 默认使用主题样式
|
|
124
|
+
* @returns 自定义outline样式
|
|
125
|
+
*/
|
|
126
|
+
getOutlineStyle(): OutlineTheme;
|
|
127
|
+
/**
|
|
128
|
+
* 在边的时候,是否允许这个节点为source节点,边到target节点。
|
|
106
129
|
*/
|
|
107
130
|
isAllowConnectedAsSource(target: BaseNodeModel, soureAnchor: AnchorConfig, targetAnchor: AnchorConfig): ConnectRuleResult | Boolean;
|
|
108
131
|
/**
|
|
@@ -110,7 +133,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
110
133
|
*/
|
|
111
134
|
getConnectedSourceRules(): ConnectRule[];
|
|
112
135
|
/**
|
|
113
|
-
*
|
|
136
|
+
* 在边的时候,是否允许这个节点未target节点
|
|
114
137
|
*/
|
|
115
138
|
isAllowConnectedAsTarget(source: BaseNodeModel, soureAnchor: AnchorConfig, targetAnchor: AnchorConfig): ConnectRuleResult | Boolean;
|
|
116
139
|
/**
|
|
@@ -140,12 +163,10 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
140
163
|
setSelected(flag?: boolean): void;
|
|
141
164
|
setHovered(flag?: boolean): void;
|
|
142
165
|
setHitable(flag?: boolean): void;
|
|
143
|
-
setElementState(state:
|
|
166
|
+
setElementState(state: number, additionStateData?: AdditionData): void;
|
|
144
167
|
updateStroke(color: any): void;
|
|
145
|
-
updateData(nodeAttribute: NodeAttribute): void;
|
|
146
168
|
setProperty(key: any, val: any): void;
|
|
147
169
|
setProperties(properties: any): void;
|
|
148
|
-
setStyleFromTheme(type: any, graphModel: any): void;
|
|
149
170
|
setZIndex(zindex?: number): void;
|
|
150
171
|
updateAttributes(attributes: any): void;
|
|
151
172
|
}
|