@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.
- package/dist/logic-flow.js +3 -3
- package/dist/style/index.css +1 -1
- package/package.json +1 -1
- 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 +59 -0
- package/types/model/EditConfigModel.d.ts +6 -16
- package/types/model/GraphModel.d.ts +264 -58
- package/types/model/SnaplineModel.d.ts +6 -2
- package/types/model/TransformModel.d.ts +8 -2
- package/types/model/edge/BaseEdgeModel.d.ts +36 -12
- 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 +90 -29
- package/types/model/node/CircleNodeModel.d.ts +12 -4
- 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 +11 -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 +50 -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 -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
|
@@ -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,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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
225
|
+
/**
|
|
226
|
+
* 将某个元素放置到顶部。
|
|
227
|
+
* 如果堆叠模式为默认模式,则将原置顶元素重新恢复原有层级。
|
|
228
|
+
* 如果堆叠模式为递增模式,则将需指定元素zIndex设置为当前最大zIndex + 1。
|
|
229
|
+
* @see todo link 堆叠模式
|
|
230
|
+
* @param id 元素Id
|
|
231
|
+
*/
|
|
119
232
|
toFront(id: any): void;
|
|
120
|
-
|
|
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
|
-
|
|
144
|
-
|
|
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
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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) =>
|
|
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,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
|
-
|
|
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:
|
|
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;
|