@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
package/dist/style/index.css
CHANGED
|
@@ -105,13 +105,27 @@
|
|
|
105
105
|
display: flex;
|
|
106
106
|
justify-content: center;
|
|
107
107
|
align-items: center;
|
|
108
|
-
border: 1px solid transparent;
|
|
108
|
+
/* border: 1px solid transparent; */
|
|
109
109
|
}
|
|
110
110
|
.lf-node-text-auto-wrap-content {
|
|
111
111
|
line-height: 1.2;
|
|
112
112
|
background: transparent;
|
|
113
113
|
text-align: center;
|
|
114
114
|
word-break: break-all;
|
|
115
|
+
width: 100%;
|
|
116
|
+
}
|
|
117
|
+
.lf-node-text-ellipsis-content {
|
|
118
|
+
line-height: 1.2;
|
|
119
|
+
background: transparent;
|
|
120
|
+
text-align: center;
|
|
121
|
+
white-space: nowrap;
|
|
122
|
+
/* overflow: hidden;
|
|
123
|
+
text-overflow: ellipsis; */
|
|
124
|
+
width: 100%;
|
|
125
|
+
}
|
|
126
|
+
.lf-node-text-ellipsis-content>div{
|
|
127
|
+
text-overflow: ellipsis;
|
|
128
|
+
overflow: hidden;
|
|
115
129
|
}
|
|
116
130
|
/* tool-overlay */
|
|
117
131
|
.lf-tool-overlay {
|
package/package.json
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@logicflow/core",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.12",
|
|
4
4
|
"description": "LogicFlow core, to quickly build flowchart editor",
|
|
5
5
|
"main": "dist/logic-flow.js",
|
|
6
6
|
"unpkg": "dist/logic-flow.js",
|
|
7
7
|
"jsdelivr": "dist/logic-flow.js",
|
|
8
|
-
"module": "dis/logic-flow.es.js",
|
|
9
8
|
"license": "Apache-2.0",
|
|
10
9
|
"homepage": "http://logic-flow.org/",
|
|
11
10
|
"types": "types/index.d.ts",
|
|
@@ -17,9 +16,8 @@
|
|
|
17
16
|
"scripts": {
|
|
18
17
|
"dev": "cross-env NODE_ENV=development webpack-dev-server --client-log-level warning --config scripts/webpack.config.dev.js",
|
|
19
18
|
"clean": "rimraf dist lib esm cjs",
|
|
20
|
-
"build": "npm run build:umd
|
|
19
|
+
"build": "npm run build:umd",
|
|
21
20
|
"build:umd": "cross-env NODE_ENV=production webpack --config scripts/webpack.config.build.js && cp -r src/style/ dist/style",
|
|
22
|
-
"build:es": "cp -r scripts/logic-flow.es.js dist/",
|
|
23
21
|
"build-analyse": "cross-env analyse=true npm run build",
|
|
24
22
|
"types": "tsc -d --declarationDir ./types --outDir temp && rimraf temp",
|
|
25
23
|
"lint": "eslint . --ext .ts,.tsx",
|
|
@@ -75,8 +73,8 @@
|
|
|
75
73
|
"ids": "^1.0.0",
|
|
76
74
|
"less-loader": "^6.0.0",
|
|
77
75
|
"lodash-es": "^4.17.15",
|
|
78
|
-
"mobx": "^
|
|
79
|
-
"mobx-react": "^
|
|
76
|
+
"mobx": "^5.15.7",
|
|
77
|
+
"mobx-react": "^6.3.0",
|
|
80
78
|
"mobx-utils": "^5.6.1",
|
|
81
79
|
"prettier": "^2.2.1",
|
|
82
80
|
"rimraf": "^3.0.2",
|
package/types/LogicFlow.d.ts
CHANGED
|
@@ -4,117 +4,134 @@ import * as Options from './options';
|
|
|
4
4
|
import * as _Model from './model';
|
|
5
5
|
import History from './history/History';
|
|
6
6
|
import Tool from './tool';
|
|
7
|
-
import
|
|
7
|
+
import { CallbackType } from './event/eventEmitter';
|
|
8
8
|
import Keyboard from './keyboard';
|
|
9
|
-
import { EdgeConfig, EdgeFilter, NodeConfig,
|
|
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
|
+
import { Theme } from './constant/DefaultTheme';
|
|
12
13
|
declare type GraphConfigModel = {
|
|
13
14
|
nodes: _Model.BaseNodeModel[];
|
|
14
15
|
edges: _Model.BaseEdgeModel[];
|
|
15
16
|
};
|
|
16
17
|
export default class LogicFlow {
|
|
18
|
+
/**
|
|
19
|
+
* 只读:logicflow实例挂载的容器。
|
|
20
|
+
*/
|
|
17
21
|
container: HTMLElement;
|
|
22
|
+
/**
|
|
23
|
+
* 只读:画布宽度
|
|
24
|
+
*/
|
|
18
25
|
width: number;
|
|
26
|
+
/**
|
|
27
|
+
* 只读:画布高度
|
|
28
|
+
*/
|
|
19
29
|
height: number;
|
|
30
|
+
/**
|
|
31
|
+
* 只读:控制整个logicflow画布的model
|
|
32
|
+
*/
|
|
20
33
|
graphModel: GraphModel;
|
|
34
|
+
/**
|
|
35
|
+
* 只读:控制上一步、下一步相关
|
|
36
|
+
*/
|
|
21
37
|
history: History;
|
|
22
38
|
viewMap: Map<any, any>;
|
|
23
39
|
tool: Tool;
|
|
24
40
|
keyboard: Keyboard;
|
|
25
41
|
dnd: Dnd;
|
|
26
42
|
options: Options.Definition;
|
|
27
|
-
getSnapshot: () => void;
|
|
28
|
-
eventCenter: EventEmitter;
|
|
29
43
|
snaplineModel: SnaplineModel;
|
|
30
|
-
static extensions: Map<string, Extension>;
|
|
31
44
|
components: ComponentRender[];
|
|
32
|
-
|
|
33
|
-
adapterOut: (data: GraphConfigData) => unknown;
|
|
34
|
-
[propName: string]: any;
|
|
35
|
-
constructor(options: Options.Definition);
|
|
36
|
-
on(evt: string, callback: CallbackType): void;
|
|
37
|
-
off(evt: string, callback: CallbackType): void;
|
|
38
|
-
once(evt: string, callback: CallbackType): void;
|
|
39
|
-
emit(evt: string, arg: any): void;
|
|
40
|
-
/**
|
|
41
|
-
* 添加扩展, 待讨论,这里是不是静态方法好一些?
|
|
42
|
-
* 重复添加插件的时候,把上一次添加的插件的销毁。
|
|
43
|
-
* @param plugin 插件
|
|
44
|
-
*/
|
|
45
|
-
static use(extension: Extension): void;
|
|
46
|
-
installPlugins(disabledPlugins?: any[]): void;
|
|
47
|
-
__installPlugin(extension: any): void;
|
|
48
|
-
register(type: string | RegisterConfig, fn?: RegisterElementFn, isObserverView?: boolean): void;
|
|
49
|
-
_registerElement(config: any): void;
|
|
50
|
-
defaultRegister(): void;
|
|
51
|
-
undo(): void;
|
|
52
|
-
redo(): void;
|
|
53
|
-
/**
|
|
54
|
-
* 放大缩小图形
|
|
55
|
-
* @param zoomSize 放大缩小的值,支持传入0-n之间的数字。小于1表示缩小,大于1表示放大。也支持传入true和false按照内置的刻度放大缩小
|
|
56
|
-
* @param point 缩放的原点
|
|
57
|
-
* @returns {string} -放大缩小的比例
|
|
58
|
-
*/
|
|
59
|
-
zoom(zoomSize?: ZoomParam, point?: PointTuple): string;
|
|
60
|
-
/**
|
|
61
|
-
* 还原图形
|
|
62
|
-
*/
|
|
63
|
-
resetZoom(): void;
|
|
64
|
-
/**
|
|
65
|
-
* 设置图形缩小时,能缩放到的最小倍数。参数为0-1自己。默认0.2
|
|
66
|
-
* @param size 图形缩小的最小值
|
|
67
|
-
*/
|
|
68
|
-
setZoomMiniSize(size: number): void;
|
|
45
|
+
static extensions: Map<string, Extension>;
|
|
69
46
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
47
|
+
* 自定义数据格式转换方法
|
|
48
|
+
* 当接入系统格式和logicflow格式不一直的时候,可以自定义此方法来转换数据格式
|
|
49
|
+
* 详情请参考adapter
|
|
50
|
+
* @see todo
|
|
72
51
|
*/
|
|
73
|
-
|
|
52
|
+
adapterIn: (data: unknown) => GraphConfigData;
|
|
74
53
|
/**
|
|
75
|
-
*
|
|
54
|
+
* 自定义数据格式转换方法
|
|
55
|
+
* 把logicflow输入的格式转换也接入系统需要的格式
|
|
56
|
+
* 详情请参考adapter
|
|
57
|
+
* @see todo
|
|
76
58
|
*/
|
|
77
|
-
|
|
78
|
-
SCALE_X: number;
|
|
79
|
-
SCALE_Y: number;
|
|
80
|
-
TRANSLATE_X: number;
|
|
81
|
-
TRANSLATE_Y: number;
|
|
82
|
-
};
|
|
59
|
+
adapterOut: (data: GraphConfigData) => unknown;
|
|
83
60
|
/**
|
|
84
|
-
*
|
|
85
|
-
* @param x 向x轴移动距离
|
|
86
|
-
* @param y 向y轴移动距离
|
|
61
|
+
* 支持插件在logicflow实例上增加自定义方法
|
|
87
62
|
*/
|
|
88
|
-
|
|
63
|
+
[propName: string]: any;
|
|
64
|
+
constructor(options: Options.Definition);
|
|
89
65
|
/**
|
|
90
|
-
*
|
|
66
|
+
* 注册自定义节点和边
|
|
67
|
+
* 支持两种方式
|
|
68
|
+
* 方式一(推荐)
|
|
69
|
+
* 详情见 todo: docs link
|
|
70
|
+
* @example
|
|
71
|
+
* import { RectNode, RectModel } from '@logicflow/core'
|
|
72
|
+
* class CustomView extends RectNode {
|
|
73
|
+
* }
|
|
74
|
+
* class CustomModel extends RectModel {
|
|
75
|
+
* }
|
|
76
|
+
* lf.register({
|
|
77
|
+
* type: 'custom',
|
|
78
|
+
* view: CustomView,
|
|
79
|
+
* model: CustomModel
|
|
80
|
+
* })
|
|
81
|
+
* 方式二
|
|
82
|
+
* 不推荐,极个别在自定义的时候需要用到lf的情况下可以用这种方式。
|
|
83
|
+
* 大多数情况下,我们可以直接在view中从this.props中获取graphModel
|
|
84
|
+
* 或者model中直接this.graphModel获取model的方法。
|
|
85
|
+
* @example
|
|
86
|
+
* lf.register('custom', ({ RectNode, RectModel }) => {
|
|
87
|
+
* class CustomView extends RectNode {}
|
|
88
|
+
* class CustomModel extends RectModel {}
|
|
89
|
+
* return {
|
|
90
|
+
* view: CustomView,
|
|
91
|
+
* model: CustomModel
|
|
92
|
+
* }
|
|
93
|
+
* })
|
|
91
94
|
*/
|
|
92
|
-
|
|
95
|
+
register(type: string | RegisterConfig, fn?: RegisterElementFn, isObserverView?: boolean): void;
|
|
96
|
+
private registerElement;
|
|
97
|
+
private defaultRegister;
|
|
93
98
|
/**
|
|
94
99
|
* 将图形选中
|
|
95
100
|
* @param id 选择元素ID
|
|
96
101
|
* @param multiple 是否允许多选,如果为true,不会将上一个选中的元素重置
|
|
97
102
|
*/
|
|
98
|
-
|
|
103
|
+
selectElementById(id: string, multiple?: boolean): void;
|
|
99
104
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
105
|
+
* 定位到画布视口中心
|
|
106
|
+
* 支持用户传入图形当前的坐标或id,可以通过type来区分是节点还是边的id,也可以不传(兜底)
|
|
107
|
+
* @param focusOnArgs.id 如果传入的是id, 则画布视口中心移动到此id的元素中心点。
|
|
108
|
+
* @param focusOnArgs.coordinate 如果传入的是坐标,则画布视口中心移动到此坐标。
|
|
102
109
|
*/
|
|
103
110
|
focusOn(focusOnArgs: FocusOnArgs): void;
|
|
104
|
-
setTheme(style: any): void;
|
|
105
111
|
/**
|
|
106
|
-
*
|
|
112
|
+
* 设置主题样式
|
|
113
|
+
* @param { object } style 自定义主题样式
|
|
114
|
+
* todo docs link
|
|
115
|
+
*/
|
|
116
|
+
setTheme(style: Theme): void;
|
|
117
|
+
/**
|
|
118
|
+
* 重新设置画布的宽高
|
|
119
|
+
*/
|
|
120
|
+
resize(width: number, height: number): void;
|
|
121
|
+
/**
|
|
122
|
+
* 设置默认的边类型。
|
|
123
|
+
* 也就是设置在节点直接有用户手动绘制的连线类型。
|
|
107
124
|
* @param type Options.EdgeType
|
|
108
125
|
*/
|
|
109
126
|
setDefaultEdgeType(type: Options.EdgeType): void;
|
|
110
127
|
/**
|
|
111
|
-
*
|
|
112
|
-
* @param id
|
|
128
|
+
* 更新节点或边的文案
|
|
129
|
+
* @param id 节点或者边id
|
|
113
130
|
* @param value 文案内容
|
|
114
131
|
*/
|
|
115
132
|
updateText(id: string, value: string): void;
|
|
116
133
|
/**
|
|
117
|
-
* 删除元素,在不确定当前id
|
|
134
|
+
* 删除元素,在不确定当前id是节点还是边时使用
|
|
118
135
|
* @param id 元素id
|
|
119
136
|
*/
|
|
120
137
|
deleteElement(id: any): boolean;
|
|
@@ -125,7 +142,7 @@ export default class LogicFlow {
|
|
|
125
142
|
*/
|
|
126
143
|
changeNodeType(id: string, type: string): void;
|
|
127
144
|
/**
|
|
128
|
-
*
|
|
145
|
+
* 获取节点连接的所有边的model
|
|
129
146
|
* @param nodeId 节点ID
|
|
130
147
|
* @returns model数组
|
|
131
148
|
*/
|
|
@@ -140,71 +157,100 @@ export default class LogicFlow {
|
|
|
140
157
|
* @param {string} nodeId 节点Id
|
|
141
158
|
*/
|
|
142
159
|
deleteNode(nodeId: string): boolean;
|
|
143
|
-
/**
|
|
144
|
-
* 显示节点文本编辑框
|
|
145
|
-
* @param nodeId 节点id
|
|
146
|
-
*/
|
|
147
|
-
editNodeText(nodeId: string): void;
|
|
148
160
|
/**
|
|
149
161
|
* 克隆节点
|
|
150
162
|
* @param nodeId 节点Id
|
|
151
163
|
*/
|
|
152
164
|
cloneNode(nodeId: string): _Model.BaseNodeModel;
|
|
153
|
-
createEdge(edgeConfig: EdgeConfig): void;
|
|
154
|
-
/**
|
|
155
|
-
* 删除边
|
|
156
|
-
* @param {string} edgeId 边Id
|
|
157
|
-
*/
|
|
158
|
-
deleteEdge(edgeId: string): boolean;
|
|
159
165
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* @param
|
|
163
|
-
* @
|
|
166
|
+
* 修改节点的id, 如果不传新的id,会内部自动创建一个。
|
|
167
|
+
* @param { string } oldId 将要被修改的id
|
|
168
|
+
* @param { string } newId 可选,修改后的id
|
|
169
|
+
* @returns 修改后的节点id, 如果传入的oldId不存在,返回空字符串
|
|
164
170
|
*/
|
|
165
|
-
|
|
166
|
-
sourceNodeId: string;
|
|
167
|
-
targetNodeId: string;
|
|
168
|
-
}): void;
|
|
171
|
+
changeNodeId<T extends string>(oldId: string, newId?: T): T | string;
|
|
169
172
|
/**
|
|
170
173
|
* 获取节点对象
|
|
171
174
|
* @param nodeId 节点Id
|
|
172
175
|
*/
|
|
173
|
-
|
|
174
|
-
getNodeData(nodeId: string): NodeAttribute;
|
|
176
|
+
getNodeModelById(nodeId: string): _Model.BaseNodeModel;
|
|
175
177
|
/**
|
|
176
|
-
*
|
|
177
|
-
* @
|
|
178
|
+
* 获取节点数据
|
|
179
|
+
* @param nodeId 节点
|
|
178
180
|
*/
|
|
179
|
-
|
|
180
|
-
getEdgeModel(config: EdgeFilter): _Model.BaseEdgeModel[];
|
|
181
|
+
getNodeDataById(nodeId: string): NodeConfig;
|
|
181
182
|
/**
|
|
182
|
-
*
|
|
183
|
-
* @
|
|
183
|
+
* 给两个节点之间添加一条边
|
|
184
|
+
* @example
|
|
185
|
+
* lf.addEdge({
|
|
186
|
+
* type: 'polygon'
|
|
187
|
+
* sourceNodeId: 'node_id_1',
|
|
188
|
+
* targetNodeId: 'node_id_2',
|
|
189
|
+
* })
|
|
190
|
+
* @param {object} edgeConfig
|
|
184
191
|
*/
|
|
185
|
-
|
|
192
|
+
addEdge(edgeConfig: EdgeConfig): void;
|
|
186
193
|
/**
|
|
187
|
-
*
|
|
188
|
-
* @
|
|
194
|
+
* 删除边
|
|
195
|
+
* @param {string} edgeId 边Id
|
|
189
196
|
*/
|
|
190
|
-
|
|
191
|
-
getEdgeData(edgeId: string): EdgeData;
|
|
197
|
+
deleteEdge(edgeId: string): boolean;
|
|
192
198
|
/**
|
|
193
|
-
*
|
|
194
|
-
* @
|
|
199
|
+
* 删除指定类型的边, 基于边起点和终点,可以只传其一。
|
|
200
|
+
* @param config.sourceNodeId 边的起点节点ID
|
|
201
|
+
* @param config.targetNodeId 边的终点节点ID
|
|
195
202
|
*/
|
|
196
|
-
|
|
203
|
+
deleteEdgeByNodeId(config: {
|
|
204
|
+
sourceNodeId?: string;
|
|
205
|
+
targetNodeId?: string;
|
|
206
|
+
}): void;
|
|
197
207
|
/**
|
|
198
|
-
*
|
|
208
|
+
* 修改边的id, 如果不传新的id,会内部自动创建一个。
|
|
209
|
+
* @param { string } oldId 将要被修改的id
|
|
210
|
+
* @param { string } newId 可选,修改后的id
|
|
211
|
+
* @returns 修改后的节点id, 如果传入的oldId不存在,返回空字符串
|
|
199
212
|
*/
|
|
200
|
-
|
|
213
|
+
changeEdgeId<T extends string>(oldId: string, newId?: T): T | string;
|
|
201
214
|
/**
|
|
202
|
-
*
|
|
203
|
-
*
|
|
215
|
+
* 基于边Id获取边的model
|
|
216
|
+
* @param edgeId 边的Id
|
|
217
|
+
* @return model
|
|
204
218
|
*/
|
|
205
|
-
|
|
219
|
+
getEdgeModelById(edgeId: string): _Model.BaseEdgeModel;
|
|
220
|
+
/**
|
|
221
|
+
* 获取满足条件边的model
|
|
222
|
+
* @param edgeFilter 过滤条件
|
|
223
|
+
* @example
|
|
224
|
+
* 获取所有起点为节点A的边的model
|
|
225
|
+
* lf.getEdgeModels({
|
|
226
|
+
* sourceNodeId: 'nodeA_id'
|
|
227
|
+
* })
|
|
228
|
+
* 获取所有终点为节点B的边的model
|
|
229
|
+
* lf.getEdgeModels({
|
|
230
|
+
* targetNodeId: 'nodeB_id'
|
|
231
|
+
* })
|
|
232
|
+
* 获取起点为节点A,终点为节点B的边
|
|
233
|
+
* lf.getEdgeModels({
|
|
234
|
+
* sourceNodeId: 'nodeA_id',
|
|
235
|
+
* targetNodeId: 'nodeB_id'
|
|
236
|
+
* })
|
|
237
|
+
* @return model数组
|
|
238
|
+
*/
|
|
239
|
+
getEdgeModels(edgeFilter: EdgeFilter): _Model.BaseEdgeModel[];
|
|
240
|
+
/**
|
|
241
|
+
* 基于id获取边数据
|
|
242
|
+
* @param edgeId 边Id
|
|
243
|
+
* @returns EdgeData
|
|
244
|
+
*/
|
|
245
|
+
getEdgeDataById(edgeId: string): EdgeData;
|
|
246
|
+
/**
|
|
247
|
+
* 显示节点、连线文本编辑框
|
|
248
|
+
* @param id 元素id
|
|
249
|
+
*/
|
|
250
|
+
editText(id: string): void;
|
|
206
251
|
/**
|
|
207
252
|
* 设置元素的自定义属性
|
|
253
|
+
* @see todo docs link
|
|
208
254
|
* @param id 元素的id
|
|
209
255
|
* @param properties 自定义属性
|
|
210
256
|
*/
|
|
@@ -216,29 +262,73 @@ export default class LogicFlow {
|
|
|
216
262
|
*/
|
|
217
263
|
getProperties(id: string): Object;
|
|
218
264
|
/**
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
*
|
|
222
|
-
* @
|
|
265
|
+
* 将某个元素放置到顶部。
|
|
266
|
+
* 如果堆叠模式为默认模式,则将原置顶元素重新恢复原有层级。
|
|
267
|
+
* 如果堆叠模式为递增模式,则将需指定元素zIndex设置为当前最大zIndex + 1。
|
|
268
|
+
* @see todo link 堆叠模式
|
|
269
|
+
* @param id 元素Id
|
|
223
270
|
*/
|
|
224
|
-
|
|
271
|
+
toFront(id: any): void;
|
|
225
272
|
/**
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
* @
|
|
229
|
-
* @
|
|
273
|
+
* 设置元素的zIndex.
|
|
274
|
+
* 注意:默认堆叠模式下,不建议使用此方法。
|
|
275
|
+
* @see todo link 堆叠模式
|
|
276
|
+
* @param id 元素id
|
|
277
|
+
* @param zIndex zIndex的值,可以传数字,也支持传入'top' 和 'bottom'
|
|
278
|
+
*/
|
|
279
|
+
setElementZIndex(id: string, zIndex: number | 'top' | 'bottom'): void;
|
|
280
|
+
/**
|
|
281
|
+
* 添加多个元素, 包括边和节点。
|
|
282
|
+
*/
|
|
283
|
+
addElements({ nodes, edges }: GraphConfigData): GraphConfigModel;
|
|
284
|
+
/**
|
|
285
|
+
* 获取指定区域内的所有元素,此区域必须是DOM层。
|
|
286
|
+
* 例如鼠标绘制选区后,获取选区内的所有元素。
|
|
287
|
+
* @see todo 分层
|
|
288
|
+
* @param leftTopPoint 区域左上角坐标, dom层坐标
|
|
289
|
+
* @param rightBottomPoint 区域右下角坐标,dom层坐标
|
|
290
|
+
*/
|
|
291
|
+
getAreaElement(leftTopPoint: PointTuple, rightBottomPoint: PointTuple): any[];
|
|
292
|
+
/**
|
|
293
|
+
* 获取选中的元素数据
|
|
294
|
+
* @param isIgnoreCheck 是否包括sourceNode和targetNode没有被选中的边,默认包括。
|
|
295
|
+
* 注意:复制的时候不能包括此类边, 因为复制的时候不允许悬空的边。
|
|
230
296
|
*/
|
|
231
|
-
|
|
297
|
+
getSelectElements(isIgnoreCheck?: boolean): GraphConfigData;
|
|
298
|
+
/**
|
|
299
|
+
* 将所有选中的元素设置为非选中
|
|
300
|
+
*/
|
|
301
|
+
clearSelectElements(): void;
|
|
302
|
+
/**
|
|
303
|
+
* 获取流程绘图数据
|
|
304
|
+
* 注意: getGraphData返回的数据受到adapter影响,所以其数据格式不一定是logicflow内部图数据格式。
|
|
305
|
+
* 如果实现通用插件,请使用getGraphRawData
|
|
306
|
+
*/
|
|
307
|
+
getGraphData(): GraphConfigData | any;
|
|
308
|
+
/**
|
|
309
|
+
* 获取流程绘图原始数据
|
|
310
|
+
* 在存在adapter时,可以使用getGraphRawData获取图原始数据
|
|
311
|
+
*/
|
|
312
|
+
getGraphRawData(): GraphConfigData;
|
|
313
|
+
/**
|
|
314
|
+
* 清空画布
|
|
315
|
+
*/
|
|
316
|
+
clearData(): void;
|
|
232
317
|
/**
|
|
233
318
|
* 更新流程图编辑相关设置
|
|
319
|
+
* @param {object} config 编辑配置
|
|
320
|
+
* @see todo docs link
|
|
234
321
|
*/
|
|
235
322
|
updateEditConfig(config: EditConfigInterface): void;
|
|
236
323
|
/**
|
|
237
|
-
*
|
|
324
|
+
* 获取流程图当前编辑相关设置
|
|
325
|
+
* @see todo docs link
|
|
238
326
|
*/
|
|
239
327
|
getEditConfig(): Partial<_Model.EditConfigModel>;
|
|
240
328
|
/**
|
|
241
329
|
* 获取事件位置相对于画布左上角的坐标
|
|
330
|
+
* 画布所在的位置可以是页面任何地方,原生事件返回的坐标是相对于页面左上角的,该方法可以提供以画布左上角为原点的准确位置。
|
|
331
|
+
* @see todo link
|
|
242
332
|
* @param {number} x 事件x坐标
|
|
243
333
|
* @param {number} y 事件y坐标
|
|
244
334
|
* @returns {object} Point 事件位置的坐标
|
|
@@ -256,42 +346,156 @@ export default class LogicFlow {
|
|
|
256
346
|
};
|
|
257
347
|
};
|
|
258
348
|
/**
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
* 复制的时候不能包括此类连线, 因为复制的时候不允许悬空的连线。
|
|
349
|
+
* 历史记录操作
|
|
350
|
+
* 返回上一步
|
|
262
351
|
*/
|
|
263
|
-
|
|
352
|
+
undo(): void;
|
|
353
|
+
/**
|
|
354
|
+
* 历史记录操作
|
|
355
|
+
* 恢复下一步
|
|
356
|
+
*/
|
|
357
|
+
redo(): void;
|
|
358
|
+
/**
|
|
359
|
+
* 放大缩小图形
|
|
360
|
+
* @param zoomSize 放大缩小的值,支持传入0-n之间的数字。小于1表示缩小,大于1表示放大。也支持传入true和false按照内置的刻度放大缩小
|
|
361
|
+
* @param point 缩放的原点
|
|
362
|
+
* @returns {string} -放大缩小的比例
|
|
363
|
+
*/
|
|
364
|
+
zoom(zoomSize?: ZoomParam, point?: PointTuple): string;
|
|
365
|
+
/**
|
|
366
|
+
* 重置图形的放大缩写比例为默认
|
|
367
|
+
*/
|
|
368
|
+
resetZoom(): void;
|
|
369
|
+
/**
|
|
370
|
+
* 设置图形缩小时,能缩放到的最小倍数。参数为0-1自己。默认0.2
|
|
371
|
+
* @param size 图形缩小的最小值
|
|
372
|
+
*/
|
|
373
|
+
setZoomMiniSize(size: number): void;
|
|
374
|
+
/**
|
|
375
|
+
* 设置图形放大时,能放大到的最大倍数,默认16
|
|
376
|
+
* @param size 图形放大的最大值
|
|
377
|
+
*/
|
|
378
|
+
setZoomMaxSize(size: number): void;
|
|
379
|
+
/**
|
|
380
|
+
* 获取缩放的值和平移的值。
|
|
381
|
+
*/
|
|
382
|
+
getTransform(): {
|
|
383
|
+
SCALE_X: number;
|
|
384
|
+
SCALE_Y: number;
|
|
385
|
+
TRANSLATE_X: number;
|
|
386
|
+
TRANSLATE_Y: number;
|
|
387
|
+
};
|
|
388
|
+
/**
|
|
389
|
+
* 平移图
|
|
390
|
+
* @param x 向x轴移动距离
|
|
391
|
+
* @param y 向y轴移动距离
|
|
392
|
+
*/
|
|
393
|
+
translate(x: number, y: number): void;
|
|
394
|
+
/**
|
|
395
|
+
* 还原图形为初始位置
|
|
396
|
+
*/
|
|
397
|
+
resetTranslate(): void;
|
|
398
|
+
/**
|
|
399
|
+
* 监听事件
|
|
400
|
+
* 事件详情见 @see todo
|
|
401
|
+
* 支持同时监听多个事件
|
|
402
|
+
* @example
|
|
403
|
+
* lf.on('node:click,node:contextmenu', (data) => {
|
|
404
|
+
* });
|
|
405
|
+
*/
|
|
406
|
+
on(evt: string, callback: CallbackType): void;
|
|
407
|
+
/**
|
|
408
|
+
* 撤销监听事件
|
|
409
|
+
*/
|
|
410
|
+
off(evt: string, callback: CallbackType): void;
|
|
411
|
+
/**
|
|
412
|
+
* 监听事件,只监听一次
|
|
413
|
+
*/
|
|
414
|
+
once(evt: string, callback: CallbackType): void;
|
|
415
|
+
/**
|
|
416
|
+
* 触发监听事件
|
|
417
|
+
*/
|
|
418
|
+
emit(evt: string, arg: any): void;
|
|
419
|
+
/**
|
|
420
|
+
* 添加扩展, 待讨论,这里是不是静态方法好一些?
|
|
421
|
+
* 重复添加插件的时候,把上一次添加的插件的销毁。
|
|
422
|
+
* @param plugin 插件
|
|
423
|
+
*/
|
|
424
|
+
static use(extension: Extension): void;
|
|
425
|
+
private installPlugins;
|
|
426
|
+
/**
|
|
427
|
+
* 加载插件
|
|
428
|
+
* 注意,不建议插件用这种方式加载,此方式只会出发render方法,
|
|
429
|
+
* 可能不会实时出发cont
|
|
430
|
+
*/
|
|
431
|
+
private installPlugin;
|
|
264
432
|
/**
|
|
265
|
-
*
|
|
433
|
+
* 修改对应元素 model 中的属性
|
|
434
|
+
* 注意:此方法慎用,除非您对logicflow内部有足够的了解。
|
|
435
|
+
* 大多数情况下,请使用setProperties、updateText、changeNodeId等方法。
|
|
436
|
+
* 例如直接使用此方法修改节点的id,那么就是会导致连接到此节点的边的sourceNodeId出现找不到的情况。
|
|
266
437
|
* @param {string} id 元素id
|
|
267
438
|
* @param {object} attributes 需要更新的属性
|
|
268
439
|
*/
|
|
269
440
|
updateAttributes(id: string, attributes: object): void;
|
|
270
441
|
/**
|
|
271
|
-
*
|
|
442
|
+
* 内部保留方法
|
|
443
|
+
* 创建一个fakerNode,用于dnd插件拖动节点进画布的时候使用。
|
|
272
444
|
*/
|
|
273
|
-
|
|
445
|
+
createFakerNode(nodeConfig: any): any;
|
|
274
446
|
/**
|
|
275
|
-
*
|
|
447
|
+
* 内部保留方法
|
|
448
|
+
* 移除fakerNode
|
|
276
449
|
*/
|
|
277
|
-
|
|
450
|
+
removeFakerNode(): void;
|
|
278
451
|
/**
|
|
279
|
-
*
|
|
452
|
+
* 内部保留方法
|
|
453
|
+
* 用于fakerNode显示对齐线
|
|
280
454
|
*/
|
|
281
|
-
addElements({ nodes, edges }: GraphConfigData): GraphConfigModel;
|
|
282
|
-
clearSelectElements(): void;
|
|
283
|
-
createFakerNode(nodeConfig: any): any;
|
|
284
|
-
removeFakerNode(): void;
|
|
285
455
|
setNodeSnapLine(data: any): void;
|
|
286
456
|
/**
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
* @param rightBottomPoint 区域右下角坐标,dom层坐标
|
|
457
|
+
* 内部保留方法
|
|
458
|
+
* 用于fakerNode移除对齐线
|
|
290
459
|
*/
|
|
291
|
-
getAreaElement(leftTopPoint: PointTuple, rightBottomPoint: PointTuple): any[];
|
|
292
460
|
removeNodeSnapLine(): void;
|
|
461
|
+
/**
|
|
462
|
+
* 内部保留方法
|
|
463
|
+
* 用于fakerNode移除对齐线
|
|
464
|
+
*/
|
|
293
465
|
setView(type: string, component: any): void;
|
|
466
|
+
/**
|
|
467
|
+
* 内部保留方法
|
|
468
|
+
* 获取指定类型的view
|
|
469
|
+
*/
|
|
294
470
|
getView: (type: string) => any;
|
|
471
|
+
/**
|
|
472
|
+
* 渲染图
|
|
473
|
+
* @example
|
|
474
|
+
* lf.render({
|
|
475
|
+
* nodes: [
|
|
476
|
+
* {
|
|
477
|
+
* id: 'node_1',
|
|
478
|
+
* type: 'rect',
|
|
479
|
+
* x: 100,
|
|
480
|
+
* y: 100
|
|
481
|
+
* },
|
|
482
|
+
* {
|
|
483
|
+
* id: 'node_2',
|
|
484
|
+
* type: 'circel',
|
|
485
|
+
* x: 300,
|
|
486
|
+
* y: 200
|
|
487
|
+
* }
|
|
488
|
+
* ],
|
|
489
|
+
* edges: [
|
|
490
|
+
* {
|
|
491
|
+
* sourceNodeId: 'node_1',
|
|
492
|
+
* targetNodeId: 'node_2',
|
|
493
|
+
* type: 'polyline'
|
|
494
|
+
* }
|
|
495
|
+
* ]
|
|
496
|
+
* })
|
|
497
|
+
* @param graphData 图数据
|
|
498
|
+
*/
|
|
295
499
|
render(graphData?: {}): void;
|
|
296
500
|
}
|
|
297
501
|
export {};
|