@logicflow/core 1.0.0-alpha.9 → 1.0.3
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 +10 -16
- package/dist/logic-flow.js +2 -2
- package/package.json +1 -1
- package/types/LogicFlow.d.ts +1 -1
- package/types/constant/DefaultTheme.d.ts +1 -12
- package/types/model/BaseModel.d.ts +1 -1
- package/types/model/GraphModel.d.ts +26 -16
- package/types/model/edge/BaseEdgeModel.d.ts +77 -27
- package/types/model/edge/BezierEdgeModel.d.ts +1 -3
- package/types/model/edge/LineEdgeModel.d.ts +0 -1
- package/types/model/edge/PolylineEdgeModel.d.ts +1 -4
- package/types/model/node/BaseNodeModel.d.ts +55 -41
- package/types/model/node/DiamondNodeModel.d.ts +5 -1
- package/types/model/node/EllipseNodeModel.d.ts +5 -2
- package/types/model/node/HtmlNodeModel.d.ts +5 -2
- package/types/model/node/PolygonNodeModel.d.ts +5 -1
- package/types/model/node/RectNodeModel.d.ts +5 -2
- package/types/model/node/TextNodeModel.d.ts +3 -2
- package/types/options.d.ts +1 -1
- package/types/view/node/BaseNode.d.ts +1 -1
- package/types/view/node/HtmlNode.d.ts +1 -0
- package/types/view/node/TextNode.d.ts +0 -1
- package/types/view/text/BaseText.d.ts +0 -2
package/package.json
CHANGED
package/types/LogicFlow.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { CallbackType } from './event/eventEmitter';
|
|
|
8
8
|
import Keyboard from './keyboard';
|
|
9
9
|
import { EdgeConfig, EdgeFilter, NodeConfig, Extension, ComponentRender, FocusOnArgs, EdgeData, GraphConfigData, RegisterElementFn, RegisterConfig, ZoomParam, PointTuple } from './type';
|
|
10
10
|
import SnaplineModel from './model/SnaplineModel';
|
|
11
|
-
import { EditConfigInterface } from './model/
|
|
11
|
+
import { EditConfigInterface } from './model/EditConfigModel';
|
|
12
12
|
import { Theme } from './constant/DefaultTheme';
|
|
13
13
|
declare type GraphConfigModel = {
|
|
14
14
|
nodes: _Model.BaseNodeModel[];
|
|
@@ -147,19 +147,8 @@ export declare type EdgeTextTheme = {
|
|
|
147
147
|
hover?: EdgeTextTheme;
|
|
148
148
|
} & TextTheme;
|
|
149
149
|
export declare type EdgeTheme = CommonTheme;
|
|
150
|
-
export declare type EdgePolylineTheme =
|
|
151
|
-
/**
|
|
152
|
-
* 为了避免折线贴着节点导致折线和节点边重合
|
|
153
|
-
* 设置折线与节点产生垂线的距离。
|
|
154
|
-
* 详情见http://logic-flow.org/article/article03.html#%E7%9B%B4%E8%A7%92%E6%8A%98%E7%BA%BF
|
|
155
|
-
*/
|
|
156
|
-
offset?: number;
|
|
157
|
-
} & EdgeTheme;
|
|
150
|
+
export declare type EdgePolylineTheme = EdgeTheme;
|
|
158
151
|
export declare type EdgeBezierTheme = {
|
|
159
|
-
/**
|
|
160
|
-
* 贝塞尔曲线控制点与锚点的距离
|
|
161
|
-
*/
|
|
162
|
-
offset?: number;
|
|
163
152
|
/**
|
|
164
153
|
* 贝塞尔调整线主题
|
|
165
154
|
*/
|
|
@@ -68,7 +68,6 @@ interface IBaseModel {
|
|
|
68
68
|
* @returns string
|
|
69
69
|
*/
|
|
70
70
|
createId(): string;
|
|
71
|
-
move(deltaX: number, deltaY: number): void;
|
|
72
71
|
moveText(deltaX: number, deltaY: number): void;
|
|
73
72
|
updateText(value: string): void;
|
|
74
73
|
setSelected(flag: boolean): void;
|
|
@@ -81,5 +80,6 @@ interface IBaseModel {
|
|
|
81
80
|
getProperties(): Object;
|
|
82
81
|
setProperties(properties: Object): void;
|
|
83
82
|
updateAttributes(attributes: Object): void;
|
|
83
|
+
getTextStyle(): Record<string, any>;
|
|
84
84
|
}
|
|
85
85
|
export { IBaseModel, };
|
|
@@ -4,7 +4,7 @@ import EditConfigModel from './EditConfigModel';
|
|
|
4
4
|
import TransfromModel from './TransformModel';
|
|
5
5
|
import { IBaseModel } from './BaseModel';
|
|
6
6
|
import { OverlapMode } from '../constant/constant';
|
|
7
|
-
import { AdditionData, Point, NodeConfig, EdgeConfig, NodeMoveRule, GraphConfigData } from '../type';
|
|
7
|
+
import { AdditionData, Point, NodeConfig, EdgeConfig, PointTuple, NodeMoveRule, GraphConfigData } from '../type';
|
|
8
8
|
import EventEmitter from '../event/eventEmitter';
|
|
9
9
|
import { Theme } from '../constant/DefaultTheme';
|
|
10
10
|
import { Definition } from '../options';
|
|
@@ -124,11 +124,14 @@ declare class GraphModel {
|
|
|
124
124
|
* 当前编辑的元素,低频操作,先循环找。
|
|
125
125
|
*/
|
|
126
126
|
get textEditElement(): BaseNodeModel | BaseEdgeModel;
|
|
127
|
+
/**
|
|
128
|
+
* 当前画布所有被选中的元素
|
|
129
|
+
*/
|
|
127
130
|
get selectElements(): Map<any, any>;
|
|
128
131
|
/**
|
|
129
132
|
* 获取指定区域内的所有元素
|
|
130
133
|
*/
|
|
131
|
-
getAreaElement(leftTopPoint:
|
|
134
|
+
getAreaElement(leftTopPoint: PointTuple, rightBottomPoint: PointTuple): any[];
|
|
132
135
|
/**
|
|
133
136
|
* 获取指定类型元素对应的Model
|
|
134
137
|
*/
|
|
@@ -158,7 +161,7 @@ declare class GraphModel {
|
|
|
158
161
|
* @param lt 左上角点
|
|
159
162
|
* @param rb 右下角点
|
|
160
163
|
*/
|
|
161
|
-
isElementInArea(element: any, lt:
|
|
164
|
+
isElementInArea(element: any, lt: PointTuple, rb: PointTuple, wholeEdge?: boolean): boolean;
|
|
162
165
|
/**
|
|
163
166
|
* 使用新的数据重新设置整个画布的元素
|
|
164
167
|
* 注意:将会清除画布上所有已有的节点和边
|
|
@@ -169,6 +172,10 @@ declare class GraphModel {
|
|
|
169
172
|
* 获取画布数据
|
|
170
173
|
*/
|
|
171
174
|
modelToGraphData(): GraphConfigData;
|
|
175
|
+
modelToHistoryData(): false | {
|
|
176
|
+
nodes: any[];
|
|
177
|
+
edges: any[];
|
|
178
|
+
};
|
|
172
179
|
/**
|
|
173
180
|
* 获取边的model
|
|
174
181
|
*/
|
|
@@ -267,10 +274,10 @@ declare class GraphModel {
|
|
|
267
274
|
* @param x X轴目标位置
|
|
268
275
|
* @param y Y轴目标位置
|
|
269
276
|
*/
|
|
270
|
-
moveNode2Coordinate(nodeId: BaseNodeModelId, x: number, y: number): void;
|
|
277
|
+
moveNode2Coordinate(nodeId: BaseNodeModelId, x: number, y: number, isignoreRule?: boolean): void;
|
|
271
278
|
/**
|
|
272
|
-
*
|
|
273
|
-
* @param
|
|
279
|
+
* 显示节点、连线文本编辑框
|
|
280
|
+
* @param elementId 节点id
|
|
274
281
|
*/
|
|
275
282
|
editText(id: ElementModeId): void;
|
|
276
283
|
/**
|
|
@@ -283,7 +290,7 @@ declare class GraphModel {
|
|
|
283
290
|
*/
|
|
284
291
|
moveEdge(nodeId: BaseNodeModelId, deltaX: number, deltaY: number): void;
|
|
285
292
|
/**
|
|
286
|
-
*
|
|
293
|
+
* 删除两节点之间的边
|
|
287
294
|
* @param sourceNodeId 边的起始节点
|
|
288
295
|
* @param targetNodeId 边的目的节点
|
|
289
296
|
*/
|
|
@@ -334,21 +341,24 @@ declare class GraphModel {
|
|
|
334
341
|
* 将所有选中的元素设置为非选中
|
|
335
342
|
*/
|
|
336
343
|
clearSelectElements(): void;
|
|
337
|
-
/**
|
|
338
|
-
* 批量移动元素
|
|
339
|
-
*/
|
|
340
|
-
moveElements(elements: {
|
|
341
|
-
nodes: NodeConfig[];
|
|
342
|
-
}, deltaX: number, deltaY: number): void;
|
|
343
344
|
/**
|
|
344
345
|
* 批量移动节点,节点移动的时候,会动态计算所有节点与未移动节点的边位置
|
|
345
|
-
*
|
|
346
|
+
* 移动的节点之间的边会保持相对位置
|
|
346
347
|
*/
|
|
347
|
-
moveNodes(nodeIds:
|
|
348
|
+
moveNodes(nodeIds: string[], deltaX: number, deltaY: number, isignoreRule?: boolean): void;
|
|
348
349
|
/**
|
|
349
350
|
* 添加节点移动限制规则,在节点移动的时候触发。
|
|
350
351
|
* 如果方法返回false, 则会阻止节点移动。
|
|
351
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
|
+
*
|
|
352
362
|
*/
|
|
353
363
|
addNodeMoveRules(fn: NodeMoveRule): void;
|
|
354
364
|
/**
|
|
@@ -366,7 +376,7 @@ declare class GraphModel {
|
|
|
366
376
|
/**
|
|
367
377
|
* 切换边的类型
|
|
368
378
|
* @param id 边Id
|
|
369
|
-
* @param type
|
|
379
|
+
* @param type 边类型
|
|
370
380
|
*/
|
|
371
381
|
changeEdgeType(id: any, type: any): void;
|
|
372
382
|
/**
|
|
@@ -5,16 +5,11 @@ import { ModelType, ElementType } from '../../constant/constant';
|
|
|
5
5
|
import { OutlineTheme } from '../../constant/DefaultTheme';
|
|
6
6
|
declare class BaseEdgeModel implements IBaseModel {
|
|
7
7
|
id: string;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
graphModel: GraphModel;
|
|
14
|
-
menu?: MenuConfig[];
|
|
15
|
-
sourceAnchorId: string;
|
|
16
|
-
targetAnchorId: string;
|
|
17
|
-
customTextPosition: boolean;
|
|
8
|
+
type: string;
|
|
9
|
+
sourceNodeId: string;
|
|
10
|
+
targetNodeId: string;
|
|
11
|
+
startPoint: any;
|
|
12
|
+
endPoint: any;
|
|
18
13
|
text: {
|
|
19
14
|
value: string;
|
|
20
15
|
x: number;
|
|
@@ -22,61 +17,116 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
22
17
|
draggable: boolean;
|
|
23
18
|
editable: boolean;
|
|
24
19
|
};
|
|
25
|
-
type: string;
|
|
26
20
|
properties: Record<string, any>;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
startPoint: any;
|
|
30
|
-
endPoint: any;
|
|
31
|
-
zIndex: number;
|
|
21
|
+
points: string;
|
|
22
|
+
pointsList: any[];
|
|
32
23
|
isSelected: boolean;
|
|
33
24
|
isHovered: boolean;
|
|
34
25
|
isHitable: boolean;
|
|
35
|
-
points: string;
|
|
36
|
-
pointsList: any[];
|
|
37
26
|
draggable: boolean;
|
|
38
|
-
|
|
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
|
+
*/
|
|
39
46
|
initEdgeData(data: any): void;
|
|
40
|
-
|
|
47
|
+
/**
|
|
48
|
+
* 设置model属性,每次properties发生变化会触发
|
|
49
|
+
* @overridable 支持重写
|
|
50
|
+
*/
|
|
41
51
|
setAttributes(): void;
|
|
42
|
-
|
|
52
|
+
/**
|
|
53
|
+
* @overridable 支持重写,自定义此类型节点默认生成方式
|
|
54
|
+
* @returns string
|
|
55
|
+
*/
|
|
56
|
+
createId(): any;
|
|
57
|
+
/**
|
|
58
|
+
* @overridable 支持重写
|
|
59
|
+
* 获取当前节点样式
|
|
60
|
+
* @returns 自定义边样式
|
|
61
|
+
*/
|
|
43
62
|
getEdgeStyle(): import("../../constant/DefaultTheme").CommonTheme;
|
|
44
63
|
/**
|
|
45
64
|
* @overridable 支持重写
|
|
46
|
-
*
|
|
65
|
+
* 获取当前节点文本样式
|
|
66
|
+
*/
|
|
67
|
+
getTextStyle(): import("../../constant/DefaultTheme").EdgeTextTheme;
|
|
68
|
+
/**
|
|
69
|
+
* @overridable 支持重写
|
|
70
|
+
* 获取outline样式,重写可以定义此类型边outline样式, 默认使用主题样式
|
|
47
71
|
* @returns 自定义outline样式
|
|
48
72
|
*/
|
|
49
73
|
getOutlineStyle(): OutlineTheme;
|
|
50
74
|
/**
|
|
51
|
-
* @
|
|
75
|
+
* @overridable 支持重新,重新自定义文本位置
|
|
52
76
|
* @returns 文本位置
|
|
53
77
|
*/
|
|
54
78
|
getTextPosition(): Point;
|
|
55
79
|
get sourceNode(): import("..").BaseNodeModel;
|
|
56
80
|
get targetNode(): import("..").BaseNodeModel;
|
|
57
81
|
get textPosition(): Point;
|
|
58
|
-
|
|
82
|
+
/**
|
|
83
|
+
* 内部方法,计算两个节点相连是起点位置
|
|
84
|
+
*/
|
|
59
85
|
getBeginAnchor(sourceNode: any, targetNode: any): Point;
|
|
86
|
+
/**
|
|
87
|
+
* 内部方法,计算两个节点相连是终点位置
|
|
88
|
+
*/
|
|
60
89
|
getEndAnchor(targetNode: any): Point;
|
|
90
|
+
/**
|
|
91
|
+
* 获取当前边的properties
|
|
92
|
+
*/
|
|
61
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;
|
|
100
|
+
/**
|
|
101
|
+
* 内部方法,处理初始化文本格式
|
|
102
|
+
*/
|
|
65
103
|
formatText(data: any): void;
|
|
104
|
+
/**
|
|
105
|
+
* 重置文本位置
|
|
106
|
+
*/
|
|
66
107
|
resetTextPosition(): void;
|
|
108
|
+
/**
|
|
109
|
+
* 移动边上的文本
|
|
110
|
+
*/
|
|
67
111
|
moveText(deltaX: number, deltaY: number): void;
|
|
112
|
+
/**
|
|
113
|
+
* 设置文本位置和值
|
|
114
|
+
*/
|
|
68
115
|
setText(textConfig: any): void;
|
|
116
|
+
/**
|
|
117
|
+
* 更新文本的值
|
|
118
|
+
*/
|
|
69
119
|
updateText(value: string): void;
|
|
120
|
+
/**
|
|
121
|
+
* 内部方法,计算边的起点和终点
|
|
122
|
+
*/
|
|
70
123
|
setAnchors(): void;
|
|
71
124
|
setSelected(flag?: boolean): void;
|
|
72
125
|
setHovered(flag?: boolean): void;
|
|
73
126
|
setHitable(flag?: boolean): void;
|
|
74
127
|
setElementState(state: number, additionStateData?: AdditionData): void;
|
|
75
|
-
updateStroke(color: any): void;
|
|
76
|
-
updateStrokeWidth(width: any): void;
|
|
77
128
|
updateStartPoint(anchor: any): void;
|
|
78
129
|
updateEndPoint(anchor: any): void;
|
|
79
|
-
setStyleFromTheme(type: any, graphModel: any): void;
|
|
80
130
|
setZIndex(zindex?: number): void;
|
|
81
131
|
initPoints(): void;
|
|
82
132
|
updateAttributes(attributes: any): void;
|
|
@@ -4,12 +4,10 @@ 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;
|
|
10
9
|
getEdgeStyle(): {
|
|
11
10
|
[x: string]: any;
|
|
12
|
-
offset?: number;
|
|
13
11
|
adjustLine?: import("../../constant/DefaultTheme").CommonTheme;
|
|
14
12
|
adjustAnchor?: import("../../constant/DefaultTheme").CircleTheme;
|
|
15
13
|
fill?: string;
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import { ModelType } from '../../constant/constant';
|
|
2
2
|
import { Point } from '../../type';
|
|
3
3
|
import BaseEdgeModel from './BaseEdgeModel';
|
|
4
|
-
import GraphModel from '../GraphModel';
|
|
5
4
|
export { PolylineEdgeModel };
|
|
6
5
|
export default class PolylineEdgeModel extends BaseEdgeModel {
|
|
7
6
|
modelType: ModelType;
|
|
8
|
-
offset: number;
|
|
9
7
|
draginngPointList: any;
|
|
10
8
|
dbClickPosition: Point;
|
|
11
|
-
|
|
9
|
+
initEdgeData(data: any): void;
|
|
12
10
|
getEdgeStyle(): {
|
|
13
11
|
[x: string]: any;
|
|
14
|
-
offset?: number;
|
|
15
12
|
fill?: string;
|
|
16
13
|
stroke?: string;
|
|
17
14
|
strokeWidth?: number;
|
|
@@ -5,7 +5,7 @@ import GraphModel from '../GraphModel';
|
|
|
5
5
|
import { IBaseModel } from '../BaseModel';
|
|
6
6
|
export declare type ConnectRule = {
|
|
7
7
|
message: string;
|
|
8
|
-
validate: (source
|
|
8
|
+
validate: (source?: BaseNodeModel, target?: BaseNodeModel, sourceAnchor?: AnchorConfig, targetAnchor?: AnchorConfig) => boolean;
|
|
9
9
|
};
|
|
10
10
|
export declare type ConnectRuleResult = {
|
|
11
11
|
isAllPass: boolean;
|
|
@@ -20,59 +20,52 @@ interface IBaseNodeModel extends IBaseModel {
|
|
|
20
20
|
export { BaseNodeModel };
|
|
21
21
|
export default class BaseNodeModel implements IBaseNodeModel {
|
|
22
22
|
id: string;
|
|
23
|
-
readonly BaseType = ElementType.NODE;
|
|
24
|
-
modelType: ModelType;
|
|
25
|
-
additionStateData: AdditionData;
|
|
26
|
-
[propName: string]: any;
|
|
27
|
-
targetRules: ConnectRule[];
|
|
28
|
-
sourceRules: ConnectRule[];
|
|
29
|
-
moveRules: NodeMoveRule[];
|
|
30
|
-
hasSetTargetRules: boolean;
|
|
31
|
-
hasSetSourceRules: boolean;
|
|
32
|
-
properties: Record<string, any>;
|
|
33
23
|
type: string;
|
|
34
24
|
x: number;
|
|
35
25
|
y: number;
|
|
26
|
+
text: {
|
|
27
|
+
value: string;
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
draggable: boolean;
|
|
31
|
+
editable: boolean;
|
|
32
|
+
};
|
|
33
|
+
properties: Record<string, any>;
|
|
36
34
|
private _width;
|
|
37
|
-
graphModel: GraphModel;
|
|
38
35
|
get width(): number;
|
|
39
36
|
set width(value: number);
|
|
40
37
|
private _height;
|
|
41
38
|
get height(): number;
|
|
42
39
|
set height(value: number);
|
|
40
|
+
anchorsOffset: AnchorsOffsetItem[];
|
|
43
41
|
isSelected: boolean;
|
|
44
42
|
isHovered: boolean;
|
|
43
|
+
isDragging: boolean;
|
|
45
44
|
isHitable: boolean;
|
|
45
|
+
draggable: boolean;
|
|
46
|
+
graphModel: GraphModel;
|
|
46
47
|
zIndex: number;
|
|
47
|
-
anchorsOffset: AnchorsOffsetItem[];
|
|
48
48
|
state: number;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
readonly BaseType = ElementType.NODE;
|
|
50
|
+
modelType: ModelType;
|
|
51
|
+
additionStateData: AdditionData;
|
|
52
|
+
targetRules: ConnectRule[];
|
|
53
|
+
sourceRules: ConnectRule[];
|
|
54
|
+
moveRules: NodeMoveRule[];
|
|
55
|
+
hasSetTargetRules: boolean;
|
|
56
|
+
hasSetSourceRules: boolean;
|
|
57
|
+
[propName: string]: any;
|
|
57
58
|
constructor(data: NodeConfig, graphModel: GraphModel);
|
|
58
59
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
60
|
+
* @overridable 可以重写
|
|
61
|
+
* 初始化节点数据
|
|
61
62
|
* initNodeData和setAttributes的区别在于
|
|
62
|
-
* initNodeData
|
|
63
|
+
* initNodeData只在节点初始化的时候调用,用于初始化节点的所有属性。
|
|
64
|
+
* setAttributes除了初始化调用外,还会在properties发生变化了调用。
|
|
63
65
|
*/
|
|
64
|
-
|
|
66
|
+
initNodeData(data: any): void;
|
|
65
67
|
/**
|
|
66
|
-
*
|
|
67
|
-
* @returns string
|
|
68
|
-
*/
|
|
69
|
-
createId(): string;
|
|
70
|
-
/**
|
|
71
|
-
* 初始化文本属性,对
|
|
72
|
-
*/
|
|
73
|
-
private formatText;
|
|
74
|
-
/**
|
|
75
|
-
* 设置model初始化属性
|
|
68
|
+
* 设置model属性,每次properties发生变化会触发
|
|
76
69
|
* 例如设置节点的宽度
|
|
77
70
|
* @example
|
|
78
71
|
*
|
|
@@ -84,12 +77,23 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
84
77
|
* @overridable 支持重写
|
|
85
78
|
*/
|
|
86
79
|
setAttributes(): void;
|
|
80
|
+
/**
|
|
81
|
+
* @overridable 支持重写,自定义此类型节点默认生成方式
|
|
82
|
+
* @returns string
|
|
83
|
+
*/
|
|
84
|
+
createId(): string;
|
|
85
|
+
/**
|
|
86
|
+
* 初始化文本属性
|
|
87
|
+
*/
|
|
88
|
+
private formatText;
|
|
87
89
|
/**
|
|
88
90
|
* 获取被保存时返回的数据
|
|
89
91
|
* @overridable 支持重写
|
|
90
|
-
* @returns NodeData
|
|
91
92
|
*/
|
|
92
93
|
getData(): NodeData;
|
|
94
|
+
/**
|
|
95
|
+
* 获取当前节点的properties
|
|
96
|
+
*/
|
|
93
97
|
getProperties(): Record<string, any>;
|
|
94
98
|
/**
|
|
95
99
|
* @overridable 支持重写
|
|
@@ -97,14 +101,20 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
97
101
|
* @returns 自定义节点样式
|
|
98
102
|
*/
|
|
99
103
|
getNodeStyle(): ShapeStyleAttribute;
|
|
104
|
+
/**
|
|
105
|
+
* @overridable 支持重写
|
|
106
|
+
* 获取当前节点文本样式
|
|
107
|
+
*/
|
|
100
108
|
getTextStyle(): import("../../constant/DefaultTheme").NodeTextTheme;
|
|
101
109
|
/**
|
|
102
|
-
*
|
|
110
|
+
* @overridable 支持重写
|
|
111
|
+
* 获取当前节点锚点样式
|
|
103
112
|
* @returns 自定义样式
|
|
104
113
|
*/
|
|
105
114
|
getAnchorStyle(): Record<string, any>;
|
|
106
115
|
/**
|
|
107
|
-
*
|
|
116
|
+
* @overridable 支持重写
|
|
117
|
+
* 获取当前节点锚点拖出连线样式
|
|
108
118
|
* @returns 自定义锚点拖出样式
|
|
109
119
|
*/
|
|
110
120
|
getAnchorLineStyle(): import("../../constant/DefaultTheme").CommonTheme;
|
|
@@ -115,6 +125,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
115
125
|
*/
|
|
116
126
|
getOutlineStyle(): OutlineTheme;
|
|
117
127
|
/**
|
|
128
|
+
* @over
|
|
118
129
|
* 在边的时候,是否允许这个节点为source节点,边到target节点。
|
|
119
130
|
*/
|
|
120
131
|
isAllowConnectedAsSource(target: BaseNodeModel, soureAnchor: AnchorConfig, targetAnchor: AnchorConfig): ConnectRuleResult | Boolean;
|
|
@@ -123,20 +134,24 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
123
134
|
*/
|
|
124
135
|
getConnectedSourceRules(): ConnectRule[];
|
|
125
136
|
/**
|
|
126
|
-
*
|
|
137
|
+
* 在连线的时候,是否允许这个节点为target节点
|
|
127
138
|
*/
|
|
128
139
|
isAllowConnectedAsTarget(source: BaseNodeModel, soureAnchor: AnchorConfig, targetAnchor: AnchorConfig): ConnectRuleResult | Boolean;
|
|
129
140
|
/**
|
|
141
|
+
* 内部方法
|
|
130
142
|
* 是否允许移动节点到新的位置
|
|
131
143
|
*/
|
|
132
144
|
isAllowMoveNode(deltaX: any, deltaY: any): boolean;
|
|
145
|
+
/**
|
|
146
|
+
* 获取作为连线终点时的所有规则。
|
|
147
|
+
*/
|
|
133
148
|
getConnectedTargetRules(): ConnectRule[];
|
|
134
149
|
/**
|
|
135
|
-
* @overridable 子类重写此方法设置锚点
|
|
136
150
|
* @returns Point[] 锚点坐标构成的数组
|
|
137
151
|
*/
|
|
138
152
|
getAnchorsByOffset(): PointAnchor[];
|
|
139
153
|
/**
|
|
154
|
+
* @overridable 子类重写此方法设置默认锚点
|
|
140
155
|
* 获取节点默认情况下的锚点
|
|
141
156
|
*/
|
|
142
157
|
getDetaultAnchor(): PointAnchor[];
|
|
@@ -154,7 +169,6 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
154
169
|
setHovered(flag?: boolean): void;
|
|
155
170
|
setHitable(flag?: boolean): void;
|
|
156
171
|
setElementState(state: number, additionStateData?: AdditionData): void;
|
|
157
|
-
updateStroke(color: any): void;
|
|
158
172
|
setProperty(key: any, val: any): void;
|
|
159
173
|
setProperties(properties: any): void;
|
|
160
174
|
setZIndex(zindex?: number): void;
|
|
@@ -15,7 +15,11 @@ declare class DiamondNodeModel extends BaseNodeModel {
|
|
|
15
15
|
get pointsPosition(): Point[];
|
|
16
16
|
get width(): number;
|
|
17
17
|
get height(): number;
|
|
18
|
-
|
|
18
|
+
getDetaultAnchor(): {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
id: string;
|
|
22
|
+
}[];
|
|
19
23
|
}
|
|
20
24
|
export { DiamondNodeModel };
|
|
21
25
|
export default DiamondNodeModel;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Point } from '../../type';
|
|
2
1
|
import BaseNodeModel from './BaseNodeModel';
|
|
3
2
|
import { ModelType } from '../../constant/constant';
|
|
4
3
|
declare class EllipseNodeModel extends BaseNodeModel {
|
|
@@ -13,7 +12,11 @@ declare class EllipseNodeModel extends BaseNodeModel {
|
|
|
13
12
|
};
|
|
14
13
|
get width(): number;
|
|
15
14
|
get height(): number;
|
|
16
|
-
|
|
15
|
+
getDetaultAnchor(): {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
id: string;
|
|
19
|
+
}[];
|
|
17
20
|
}
|
|
18
21
|
export { EllipseNodeModel };
|
|
19
22
|
export default EllipseNodeModel;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { Point } from '../../type';
|
|
2
1
|
import BaseNodeModel from './BaseNodeModel';
|
|
3
2
|
import { ModelType } from '../../constant/constant';
|
|
4
3
|
declare class HtmlNodeModel extends BaseNodeModel {
|
|
5
4
|
modelType: ModelType;
|
|
6
|
-
|
|
5
|
+
getDetaultAnchor(): {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
id: string;
|
|
9
|
+
}[];
|
|
7
10
|
}
|
|
8
11
|
export { HtmlNodeModel };
|
|
9
12
|
export default HtmlNodeModel;
|
|
@@ -18,7 +18,11 @@ declare class PolygonNodeModel extends BaseNodeModel {
|
|
|
18
18
|
get pointsPosition(): Point[];
|
|
19
19
|
get width(): number;
|
|
20
20
|
get height(): number;
|
|
21
|
-
|
|
21
|
+
getDetaultAnchor(): {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
id: string;
|
|
25
|
+
}[];
|
|
22
26
|
}
|
|
23
27
|
export { PolygonNodeModel };
|
|
24
28
|
export default PolygonNodeModel;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { Point } from '../../type';
|
|
2
1
|
import BaseNodeModel from './BaseNodeModel';
|
|
3
2
|
import { ModelType } from '../../constant/constant';
|
|
4
3
|
declare class RectNodeModel extends BaseNodeModel {
|
|
5
4
|
modelType: ModelType;
|
|
6
5
|
radius: number;
|
|
7
|
-
|
|
6
|
+
getDetaultAnchor(): {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
id: string;
|
|
10
|
+
}[];
|
|
8
11
|
getNodeStyle(): {
|
|
9
12
|
[x: string]: any;
|
|
10
13
|
width?: number;
|
|
@@ -2,14 +2,15 @@ import BaseNodeModel from './BaseNodeModel';
|
|
|
2
2
|
import { ModelType } from '../../constant/constant';
|
|
3
3
|
declare class TextNodeModel extends BaseNodeModel {
|
|
4
4
|
modelType: ModelType;
|
|
5
|
-
|
|
6
|
-
getNodeStyle(): {
|
|
5
|
+
getTextStyle(): {
|
|
7
6
|
[x: string]: any;
|
|
8
7
|
color?: string;
|
|
9
8
|
fontSize?: number;
|
|
10
9
|
fill?: string;
|
|
11
10
|
stroke?: string;
|
|
12
11
|
strokeWidth?: number;
|
|
12
|
+
overflowMode?: string;
|
|
13
|
+
background?: import("../../constant/DefaultTheme").RectTheme;
|
|
13
14
|
};
|
|
14
15
|
get width(): number;
|
|
15
16
|
get height(): number;
|
package/types/options.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { GridOptions } from './view/overlay/Grid';
|
|
|
2
2
|
import { BackgroundConfig } from './view/overlay/BackgroundOverlay';
|
|
3
3
|
import { NodeData, EdgeData, GraphConfigData } from './type';
|
|
4
4
|
import { KeyboardDef } from './keyboard';
|
|
5
|
-
import { EditConfigInterface } from './model/
|
|
5
|
+
import { EditConfigInterface } from './model/EditConfigModel';
|
|
6
6
|
import { Theme } from './constant/DefaultTheme';
|
|
7
7
|
export declare type EdgeType = 'line' | 'polyline' | 'bezier' | any;
|
|
8
8
|
declare type DefaultOverlapMode = 0;
|
|
@@ -7,8 +7,8 @@ declare type IProps = {
|
|
|
7
7
|
graphModel: GraphModel;
|
|
8
8
|
};
|
|
9
9
|
declare type Istate = {
|
|
10
|
-
isDraging: boolean;
|
|
11
10
|
isHovered: boolean;
|
|
11
|
+
isDraging?: boolean;
|
|
12
12
|
};
|
|
13
13
|
export default abstract class BaseNode extends Component<IProps, Istate> {
|
|
14
14
|
static getModel(defaultModel: any): any;
|