@logicflow/core 1.1.20 → 1.2.0-alpha.10
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 +9598 -10829
- package/dist/logic-flow.min.js +1 -15
- package/dist/style/index.css +10 -0
- package/package.json +4 -5
- package/types/LogicFlow.d.ts +9 -4
- package/types/algorithm/edge.d.ts +1 -1
- package/types/constant/constant.d.ts +7 -1
- package/types/history/History.d.ts +4 -2
- package/types/index.d.ts +4 -4
- package/types/keyboard/index.d.ts +1 -1
- package/types/model/BaseModel.d.ts +2 -2
- package/types/model/EditConfigModel.d.ts +7 -0
- package/types/model/GraphModel.d.ts +6 -6
- package/types/model/SnaplineModel.d.ts +1 -1
- package/types/model/TransformModel.d.ts +4 -4
- package/types/model/edge/BaseEdgeModel.d.ts +10 -8
- package/types/model/edge/BezierEdgeModel.d.ts +1 -0
- package/types/model/edge/PolylineEdgeModel.d.ts +21 -8
- package/types/model/node/BaseNodeModel.d.ts +27 -14
- package/types/model/node/CircleNodeModel.d.ts +1 -0
- package/types/model/node/DiamondNodeModel.d.ts +1 -0
- package/types/model/node/EllipseNodeModel.d.ts +1 -0
- package/types/model/node/PolygonNodeModel.d.ts +1 -0
- package/types/model/node/RectNodeModel.d.ts +1 -0
- package/types/model/node/TextNodeModel.d.ts +1 -0
- package/types/options.d.ts +16 -0
- package/types/tool/MultipleSelectTool.d.ts +1 -1
- package/types/util/drag.d.ts +7 -8
- package/types/util/edge.d.ts +13 -2
- package/types/util/node.d.ts +1 -1
- package/types/view/Anchor.d.ts +2 -2
- package/types/view/edge/AdjustPoint.d.ts +1 -1
- package/types/view/edge/PolylineEdge.d.ts +2 -2
- package/types/view/node/BaseNode.d.ts +4 -4
- package/types/view/node/HtmlNode.d.ts +3 -3
- package/types/view/node/TextNode.d.ts +1 -1
- package/types/view/overlay/CanvasOverlay.d.ts +9 -4
- package/types/view/text/BaseText.d.ts +3 -2
- package/types/view/text/LineText.d.ts +1 -1
- package/types/view/basic-shape/LinearGradient.d.ts +0 -1
- package/types/view/behavior/Transform.d.ts +0 -4
package/dist/style/index.css
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
background: #ffffff;
|
|
7
7
|
user-select: none;
|
|
8
8
|
}
|
|
9
|
+
.lf-graph svg {
|
|
10
|
+
display: block;
|
|
11
|
+
}
|
|
9
12
|
.lf-element-text {
|
|
10
13
|
cursor: text;
|
|
11
14
|
}
|
|
@@ -193,3 +196,10 @@
|
|
|
193
196
|
.lf-edge-adjust-point {
|
|
194
197
|
cursor: move;
|
|
195
198
|
}
|
|
199
|
+
/*
|
|
200
|
+
* svg默认会多5px,强制全部设置为block
|
|
201
|
+
* @see https://stackoverflow.com/questions/41437423/difference-between-display-inline-and-block-on-svg-elements
|
|
202
|
+
*/
|
|
203
|
+
.lf-graph svg {
|
|
204
|
+
display: block;
|
|
205
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@logicflow/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-alpha.10",
|
|
4
4
|
"description": "LogicFlow core, to quickly build flowchart editor",
|
|
5
5
|
"main": "dist/entry.js",
|
|
6
6
|
"unpkg": "dist/logic-flow.min.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"build": "npm run build:umd",
|
|
20
20
|
"build:umd": "cross-env NODE_ENV=production webpack --config scripts/webpack.config.build.js && cp -r src/style/ dist/style && cp scripts/entry.js dist",
|
|
21
21
|
"build-analyse": "cross-env analyse=true npm run build",
|
|
22
|
-
"types": "tsc -d --declarationDir ./
|
|
22
|
+
"types": "tsc -d --declarationDir ./tempTypes --outDir temp && rimraf types && mv ./tempTypes/src ./types && rimraf temp && rimraf tempTypes",
|
|
23
23
|
"lint": "eslint . --ext .ts,.tsx",
|
|
24
24
|
"publish-lib": "npm run types & npm run clean && npm run build && npm publish",
|
|
25
25
|
"publish-next": "npm run types & npm run clean && npm run build && npm publish --tag next"
|
|
@@ -73,9 +73,8 @@
|
|
|
73
73
|
"ids": "^1.0.0",
|
|
74
74
|
"less-loader": "^6.0.0",
|
|
75
75
|
"lodash-es": "^4.17.15",
|
|
76
|
-
"mobx": "^5.
|
|
77
|
-
"mobx-react": "^
|
|
78
|
-
"mobx-utils": "^5.6.1",
|
|
76
|
+
"mobx": "^6.5.0",
|
|
77
|
+
"mobx-react": "^7.3.0",
|
|
79
78
|
"prettier": "^2.2.1",
|
|
80
79
|
"rimraf": "^3.0.2",
|
|
81
80
|
"standard-version": "^9.0.0",
|
package/types/LogicFlow.d.ts
CHANGED
|
@@ -484,7 +484,7 @@ export default class LogicFlow {
|
|
|
484
484
|
/**
|
|
485
485
|
* 触发监听事件
|
|
486
486
|
*/
|
|
487
|
-
emit(evt: string, arg
|
|
487
|
+
emit(evt: string, arg?: any): void;
|
|
488
488
|
/**
|
|
489
489
|
* 添加扩展, 待讨论,这里是不是静态方法好一些?
|
|
490
490
|
* 重复添加插件的时候,把上一次添加的插件的销毁。
|
|
@@ -530,7 +530,12 @@ export default class LogicFlow {
|
|
|
530
530
|
* 用于fakerNode移除对齐线
|
|
531
531
|
*/
|
|
532
532
|
setView(type: string, component: any): void;
|
|
533
|
-
|
|
533
|
+
/**
|
|
534
|
+
* 内部保留方法
|
|
535
|
+
* 用于支持国际化
|
|
536
|
+
*/
|
|
537
|
+
static t(text: string): string;
|
|
538
|
+
renderRawData(graphRawData: any, isForce?: boolean): void;
|
|
534
539
|
/**
|
|
535
540
|
* 渲染图
|
|
536
541
|
* @example
|
|
@@ -544,7 +549,7 @@ export default class LogicFlow {
|
|
|
544
549
|
* },
|
|
545
550
|
* {
|
|
546
551
|
* id: 'node_2',
|
|
547
|
-
* type: '
|
|
552
|
+
* type: 'circle',
|
|
548
553
|
* x: 300,
|
|
549
554
|
* y: 200
|
|
550
555
|
* }
|
|
@@ -559,7 +564,7 @@ export default class LogicFlow {
|
|
|
559
564
|
* })
|
|
560
565
|
* @param graphData 图数据
|
|
561
566
|
*/
|
|
562
|
-
render(graphData?: {}): void;
|
|
567
|
+
render(graphData?: {}, isForce?: boolean): void;
|
|
563
568
|
/**
|
|
564
569
|
* 内部保留方法
|
|
565
570
|
* 获取指定类型的view
|
|
@@ -46,6 +46,8 @@ export declare enum EventType {
|
|
|
46
46
|
NODE_MOUSEMOVE = "node:mousemove",
|
|
47
47
|
NODE_MOUSEENTER = "node:mouseenter",
|
|
48
48
|
NODE_MOUSELEAVE = "node:mouseleave",
|
|
49
|
+
NODE_TEXT_UPDATE = "node:text-update",
|
|
50
|
+
NODE_PROPERTY_UPDATE = "node:property-update",
|
|
49
51
|
NODE_CONTEXTMENU = "node:contextmenu",
|
|
50
52
|
EDGE_DELETE = "edge:delete",
|
|
51
53
|
EDGE_ADD = "edge:add",
|
|
@@ -53,6 +55,8 @@ export declare enum EventType {
|
|
|
53
55
|
EDGE_DBCLICK = "edge:dbclick",
|
|
54
56
|
EDGE_MOUSEENTER = "edge:mouseenter",
|
|
55
57
|
EDGE_MOUSELEAVE = "edge:mouseleave",
|
|
58
|
+
EDGE_TEXT_UPDATE = "edge:text-update",
|
|
59
|
+
EDGE_PROPERTY_UPDATE = "edge:property-update",
|
|
56
60
|
EDGE_CONTEXTMENU = "edge:contextmenu",
|
|
57
61
|
EDGE_ADJUST = "edge:adjust",
|
|
58
62
|
EDGE_EXCHANGE_NODE = "edge:exchange-node",
|
|
@@ -76,7 +80,9 @@ export declare enum EventType {
|
|
|
76
80
|
SELECTION_CONTEXTMENU = "selection:contextmenu",
|
|
77
81
|
CONNECTION_NOT_ALLOWED = "connection:not-allowed",
|
|
78
82
|
HISTORY_CHANGE = "history:change",
|
|
83
|
+
HISTORY_INSERT = "history:insert",
|
|
79
84
|
TEXT_UPDATE = "text:update",
|
|
85
|
+
TEXT_DROP = "text:drop",
|
|
80
86
|
GRAPH_TRANSFORM = "graph:transform",
|
|
81
87
|
GRAPH_RENDERED = "graph:rendered"
|
|
82
88
|
}
|
|
@@ -84,7 +90,7 @@ export declare enum SegmentDirection {
|
|
|
84
90
|
HORIZONTAL = "horizontal",
|
|
85
91
|
VERTICAL = "vertical"
|
|
86
92
|
}
|
|
87
|
-
export declare const
|
|
93
|
+
export declare const ElementMaxZIndex = 9999;
|
|
88
94
|
export declare enum OverlapMode {
|
|
89
95
|
DEFAULT = 0,
|
|
90
96
|
INCREASE = 1
|
|
@@ -8,13 +8,15 @@ declare class History {
|
|
|
8
8
|
maxSize: number;
|
|
9
9
|
waitTime: number;
|
|
10
10
|
eventCenter: EventEmitter;
|
|
11
|
-
|
|
11
|
+
model: any;
|
|
12
|
+
constructor(graphModel: any, isPropertiesChangeHistory: any);
|
|
12
13
|
add(data: any): void;
|
|
13
14
|
undoAble(): boolean;
|
|
14
15
|
undo(): any;
|
|
15
16
|
redoAble(): boolean;
|
|
16
17
|
redo(): any;
|
|
17
|
-
|
|
18
|
+
emitHistoryChange(): void;
|
|
19
|
+
listenHistoryChange: () => void;
|
|
18
20
|
}
|
|
19
21
|
export { History };
|
|
20
22
|
export default History;
|
package/types/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { h } from 'preact';
|
|
2
1
|
import LogicFlow from './LogicFlow';
|
|
3
2
|
import * as LogicFlowUtil from './util';
|
|
4
|
-
|
|
5
|
-
export {
|
|
6
|
-
export
|
|
3
|
+
import { version } from '../package.json';
|
|
4
|
+
export { h } from 'preact';
|
|
5
|
+
export * from './util/stateUtil';
|
|
6
|
+
export { LogicFlowUtil, version, LogicFlow };
|
|
7
7
|
export * from './type/index';
|
|
8
8
|
export * from './view';
|
|
9
9
|
export * from './model';
|
|
@@ -65,14 +65,14 @@ interface IBaseModel {
|
|
|
65
65
|
* 在自定义节点的时候,可以重写此方法基于自己的规则生成id。
|
|
66
66
|
* 注意,此方法必须是同步的。
|
|
67
67
|
* 如果想要异步修改Id,建议删除此节点后再同一位置创建一个新的节点。
|
|
68
|
-
* @
|
|
68
|
+
* @override 可以重写
|
|
69
69
|
* @returns string
|
|
70
70
|
*/
|
|
71
71
|
createId(): string;
|
|
72
72
|
moveText(deltaX: number, deltaY: number): void;
|
|
73
73
|
updateText(value: string): void;
|
|
74
74
|
setSelected(flag: boolean): void;
|
|
75
|
-
setZIndex(
|
|
75
|
+
setZIndex(zIndex?: number): void;
|
|
76
76
|
/**
|
|
77
77
|
* 设置Node|Edge等model的状态
|
|
78
78
|
* @param state 状态
|
|
@@ -68,6 +68,12 @@ export interface EditConfigInterface {
|
|
|
68
68
|
* 不支持ctrl,ctrl会触发contextmenu
|
|
69
69
|
*/
|
|
70
70
|
multipleSelectKey?: string;
|
|
71
|
+
/**
|
|
72
|
+
* 拖动节点靠近画布边缘时,
|
|
73
|
+
* 是否自动扩张画布.
|
|
74
|
+
* 默认false。
|
|
75
|
+
*/
|
|
76
|
+
autoExpand?: string;
|
|
71
77
|
}
|
|
72
78
|
/**
|
|
73
79
|
* 页面编辑配置
|
|
@@ -89,6 +95,7 @@ export default class EditConfigModel {
|
|
|
89
95
|
edgeTextEdit: boolean;
|
|
90
96
|
nodeTextDraggable: boolean;
|
|
91
97
|
edgeTextDraggable: boolean;
|
|
98
|
+
autoExpand: boolean;
|
|
92
99
|
multipleSelectKey: string;
|
|
93
100
|
defaultConfig: {};
|
|
94
101
|
constructor(config: EditConfigInterface);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import BaseNodeModel from './node/BaseNodeModel';
|
|
2
2
|
import BaseEdgeModel from './edge/BaseEdgeModel';
|
|
3
3
|
import EditConfigModel from './EditConfigModel';
|
|
4
|
-
import
|
|
4
|
+
import TransformModel from './TransformModel';
|
|
5
5
|
import { OverlapMode } from '../constant/constant';
|
|
6
6
|
import { AdditionData, Point, NodeConfig, EdgeConfig, PointTuple, NodeMoveRule, GraphConfigData, VirtualRectSize } from '../type';
|
|
7
7
|
import EventEmitter from '../event/eventEmitter';
|
|
@@ -86,7 +86,7 @@ declare class GraphModel {
|
|
|
86
86
|
* 控制画布的缩放、平移
|
|
87
87
|
* @see todo link
|
|
88
88
|
*/
|
|
89
|
-
transformModel:
|
|
89
|
+
transformModel: TransformModel;
|
|
90
90
|
/**
|
|
91
91
|
* 控制流程图编辑相关配置
|
|
92
92
|
* @see todo link
|
|
@@ -279,16 +279,16 @@ declare class GraphModel {
|
|
|
279
279
|
* @param nodeModel 节点Id
|
|
280
280
|
* @param deltaX X轴移动距离
|
|
281
281
|
* @param deltaY Y轴移动距离
|
|
282
|
-
* @param
|
|
282
|
+
* @param isIgnoreRule 是否忽略移动规则限制
|
|
283
283
|
*/
|
|
284
|
-
moveNode(nodeId: BaseNodeModelId, deltaX: number, deltaY: number,
|
|
284
|
+
moveNode(nodeId: BaseNodeModelId, deltaX: number, deltaY: number, isIgnoreRule?: boolean): void;
|
|
285
285
|
/**
|
|
286
286
|
* 移动节点-绝对位置
|
|
287
287
|
* @param nodeModel 节点Id
|
|
288
288
|
* @param x X轴目标位置
|
|
289
289
|
* @param y Y轴目标位置
|
|
290
290
|
*/
|
|
291
|
-
moveNode2Coordinate(nodeId: BaseNodeModelId, x: number, y: number,
|
|
291
|
+
moveNode2Coordinate(nodeId: BaseNodeModelId, x: number, y: number, isIgnoreRule?: boolean): void;
|
|
292
292
|
/**
|
|
293
293
|
* 显示节点、连线文本编辑框
|
|
294
294
|
* @param elementId 节点id
|
|
@@ -359,7 +359,7 @@ declare class GraphModel {
|
|
|
359
359
|
* 批量移动节点,节点移动的时候,会动态计算所有节点与未移动节点的边位置
|
|
360
360
|
* 移动的节点之间的边会保持相对位置
|
|
361
361
|
*/
|
|
362
|
-
moveNodes(nodeIds: string[], deltaX: number, deltaY: number,
|
|
362
|
+
moveNodes(nodeIds: string[], deltaX: number, deltaY: number, isIgnoreRule?: boolean): void;
|
|
363
363
|
/**
|
|
364
364
|
* 添加节点移动限制规则,在节点移动的时候触发。
|
|
365
365
|
* 如果方法返回false, 则会阻止节点移动。
|
|
@@ -25,7 +25,7 @@ export default class SnaplineModel {
|
|
|
25
25
|
private getCenterSnapLine;
|
|
26
26
|
private getHorizontalSnapline;
|
|
27
27
|
private getVerticalSnapline;
|
|
28
|
-
getSnapLinePosition(
|
|
28
|
+
getSnapLinePosition(draggingNode: NodeData, nodes: BaseNodeModel[]): SnaplineInfo;
|
|
29
29
|
private setSnaplineInfo;
|
|
30
30
|
clearSnapline(): void;
|
|
31
31
|
setNodeSnapLine(nodeData: NodeData): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import EventEmitter from '../event/eventEmitter';
|
|
2
2
|
import { PointTuple, ZoomParam } from '../type';
|
|
3
|
-
export interface
|
|
3
|
+
export interface TransformInterface {
|
|
4
4
|
SCALE_X: number;
|
|
5
5
|
SKEW_Y: number;
|
|
6
6
|
SKEW_X: number;
|
|
@@ -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: (
|
|
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;
|
|
@@ -18,7 +18,7 @@ export interface TransfromInterface {
|
|
|
18
18
|
transform: string;
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
export default class
|
|
21
|
+
export default class TransformModel implements TransformInterface {
|
|
22
22
|
MINI_SCALE_SIZE: number;
|
|
23
23
|
MAX_SCALE_SIZE: number;
|
|
24
24
|
SCALE_X: number;
|
|
@@ -43,7 +43,7 @@ export default class TransfromModel implements TransfromInterface {
|
|
|
43
43
|
*/
|
|
44
44
|
CanvasPointToHtmlPoint([x, y]: PointTuple): PointTuple;
|
|
45
45
|
/**
|
|
46
|
-
* 将一个在canvas上的点,向x轴方向移动directionX距离,向y轴方向移动
|
|
46
|
+
* 将一个在canvas上的点,向x轴方向移动directionX距离,向y轴方向移动directionY距离。
|
|
47
47
|
* 因为canvas可能被缩小或者放大了,所以其在canvas层移动的距离需要计算上缩放的量。
|
|
48
48
|
* @param point 点
|
|
49
49
|
* @param directionX x轴距离
|
|
@@ -25,6 +25,7 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
25
25
|
isHitable: boolean;
|
|
26
26
|
draggable: boolean;
|
|
27
27
|
visible: boolean;
|
|
28
|
+
virtual: boolean;
|
|
28
29
|
isAnimation: boolean;
|
|
29
30
|
graphModel: GraphModel;
|
|
30
31
|
zIndex: number;
|
|
@@ -44,8 +45,9 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
44
45
|
};
|
|
45
46
|
[propName: string]: any;
|
|
46
47
|
constructor(data: EdgeConfig, graphModel: GraphModel);
|
|
48
|
+
init(): void;
|
|
47
49
|
/**
|
|
48
|
-
* @
|
|
50
|
+
* @override 支持重写
|
|
49
51
|
* 初始化边数据
|
|
50
52
|
* initNodeData和setAttributes的区别在于
|
|
51
53
|
* initNodeData只在节点初始化的时候调用,用于初始化节点的所有属性。
|
|
@@ -54,16 +56,16 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
54
56
|
initEdgeData(data: any): void;
|
|
55
57
|
/**
|
|
56
58
|
* 设置model属性,每次properties发生变化会触发
|
|
57
|
-
* @
|
|
59
|
+
* @override 支持重写
|
|
58
60
|
*/
|
|
59
61
|
setAttributes(): void;
|
|
60
62
|
/**
|
|
61
|
-
* @
|
|
63
|
+
* @override 支持重写,自定义此类型节点默认生成方式
|
|
62
64
|
* @returns string
|
|
63
65
|
*/
|
|
64
66
|
createId(): any;
|
|
65
67
|
/**
|
|
66
|
-
* @
|
|
68
|
+
* @override 支持重写
|
|
67
69
|
* 获取当前节点样式
|
|
68
70
|
* @returns 自定义边样式
|
|
69
71
|
*/
|
|
@@ -74,12 +76,12 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
74
76
|
strokeWidth?: number;
|
|
75
77
|
};
|
|
76
78
|
/**
|
|
77
|
-
* @
|
|
79
|
+
* @override 支持重写
|
|
78
80
|
* 获取当前节点文本样式
|
|
79
81
|
*/
|
|
80
82
|
getTextStyle(): import("../../constant/DefaultTheme").EdgeTextTheme;
|
|
81
83
|
/**
|
|
82
|
-
* @
|
|
84
|
+
* @override 支持重写
|
|
83
85
|
* 获取当前边的动画样式
|
|
84
86
|
* @returns 自定义边动画样式
|
|
85
87
|
*/
|
|
@@ -97,7 +99,7 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
97
99
|
*/
|
|
98
100
|
getOutlineStyle(): OutlineTheme;
|
|
99
101
|
/**
|
|
100
|
-
* @
|
|
102
|
+
* @override 支持重新,重新自定义文本位置
|
|
101
103
|
* @returns 文本位置
|
|
102
104
|
*/
|
|
103
105
|
getTextPosition(): Point;
|
|
@@ -165,7 +167,7 @@ declare class BaseEdgeModel implements IBaseModel {
|
|
|
165
167
|
moveStartPoint(deltaX: any, deltaY: any): void;
|
|
166
168
|
updateEndPoint(anchor: any): void;
|
|
167
169
|
moveEndPoint(deltaX: any, deltaY: any): void;
|
|
168
|
-
setZIndex(
|
|
170
|
+
setZIndex(zIndex?: number): void;
|
|
169
171
|
initPoints(): void;
|
|
170
172
|
updateAttributes(attributes: any): void;
|
|
171
173
|
getAdjustStart(): any;
|
|
@@ -4,8 +4,9 @@ import BaseEdgeModel from './BaseEdgeModel';
|
|
|
4
4
|
export { PolylineEdgeModel };
|
|
5
5
|
export default class PolylineEdgeModel extends BaseEdgeModel {
|
|
6
6
|
modelType: ModelType;
|
|
7
|
-
|
|
7
|
+
draggingPointList: any;
|
|
8
8
|
dbClickPosition: Point;
|
|
9
|
+
constructor(data: any, graphModel: any);
|
|
9
10
|
initEdgeData(data: any): void;
|
|
10
11
|
getEdgeStyle(): {
|
|
11
12
|
[x: string]: any;
|
|
@@ -18,9 +19,9 @@ export default class PolylineEdgeModel extends BaseEdgeModel {
|
|
|
18
19
|
y: number;
|
|
19
20
|
};
|
|
20
21
|
getAfterAnchor(direction: any, position: any, anchorList: any): any;
|
|
21
|
-
|
|
22
|
+
getCrossPoint(direction: any, start: any, end: any): any;
|
|
22
23
|
removeCrossPoints(startIndex: any, endIndex: any, pointList: any): any;
|
|
23
|
-
|
|
24
|
+
getDraggingPoints(direction: any, positionType: any, position: any, anchorList: any, draggingPointList: any): any;
|
|
24
25
|
updateCrossPoints(pointList: any): any;
|
|
25
26
|
getData(): import("../../type").EdgeData & {
|
|
26
27
|
pointsList: {
|
|
@@ -36,21 +37,33 @@ export default class PolylineEdgeModel extends BaseEdgeModel {
|
|
|
36
37
|
moveEndPoint(deltaX: any, deltaY: any): void;
|
|
37
38
|
dragAppendStart(): void;
|
|
38
39
|
dragAppendSimple(appendInfo: any, dragInfo: any): {
|
|
39
|
-
start:
|
|
40
|
-
|
|
40
|
+
start: {
|
|
41
|
+
x: any;
|
|
42
|
+
y: any;
|
|
43
|
+
};
|
|
44
|
+
end: {
|
|
45
|
+
x: any;
|
|
46
|
+
y: any;
|
|
47
|
+
};
|
|
41
48
|
startIndex: any;
|
|
42
49
|
endIndex: any;
|
|
43
50
|
direction: any;
|
|
44
51
|
};
|
|
45
52
|
dragAppend(appendInfo: any, dragInfo: any): {
|
|
46
|
-
start:
|
|
47
|
-
|
|
53
|
+
start: {
|
|
54
|
+
x: any;
|
|
55
|
+
y: any;
|
|
56
|
+
};
|
|
57
|
+
end: {
|
|
58
|
+
x: any;
|
|
59
|
+
y: any;
|
|
60
|
+
};
|
|
48
61
|
startIndex: any;
|
|
49
62
|
endIndex: any;
|
|
50
63
|
direction: any;
|
|
51
64
|
};
|
|
52
65
|
dragAppendEnd(): void;
|
|
53
|
-
|
|
66
|
+
updatePointsAfterDrag(pointsList: any): void;
|
|
54
67
|
getAdjustStart(): any;
|
|
55
68
|
getAdjustEnd(): any;
|
|
56
69
|
updateAfterAdjustStartAndEnd({ startPoint, endPoint, sourceNode, targetNode }: {
|
|
@@ -45,6 +45,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
45
45
|
isHitable: boolean;
|
|
46
46
|
draggable: boolean;
|
|
47
47
|
visible: boolean;
|
|
48
|
+
virtual: boolean;
|
|
48
49
|
graphModel: GraphModel;
|
|
49
50
|
zIndex: number;
|
|
50
51
|
state: number;
|
|
@@ -60,6 +61,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
60
61
|
hasSetSourceRules: boolean;
|
|
61
62
|
[propName: string]: any;
|
|
62
63
|
constructor(data: NodeConfig, graphModel: GraphModel);
|
|
64
|
+
init(): void;
|
|
63
65
|
/**
|
|
64
66
|
* 获取进入当前节点的边和节点
|
|
65
67
|
*/
|
|
@@ -72,7 +74,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
72
74
|
edges: BaseEdgeModel[];
|
|
73
75
|
};
|
|
74
76
|
/**
|
|
75
|
-
* @
|
|
77
|
+
* @override 可以重写
|
|
76
78
|
* 初始化节点数据
|
|
77
79
|
* initNodeData和setAttributes的区别在于
|
|
78
80
|
* initNodeData只在节点初始化的时候调用,用于初始化节点的所有属性。
|
|
@@ -89,11 +91,11 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
89
91
|
* this.height = 200
|
|
90
92
|
* }
|
|
91
93
|
*
|
|
92
|
-
* @
|
|
94
|
+
* @override 支持重写
|
|
93
95
|
*/
|
|
94
96
|
setAttributes(): void;
|
|
95
97
|
/**
|
|
96
|
-
* @
|
|
98
|
+
* @override 支持重写,自定义此类型节点默认生成方式
|
|
97
99
|
* @returns string
|
|
98
100
|
*/
|
|
99
101
|
createId(): string;
|
|
@@ -103,9 +105,10 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
103
105
|
private formatText;
|
|
104
106
|
/**
|
|
105
107
|
* 获取被保存时返回的数据
|
|
106
|
-
* @
|
|
108
|
+
* @override 支持重写
|
|
107
109
|
*/
|
|
108
110
|
getData(): NodeData;
|
|
111
|
+
setIsDragging(isDragging: any): void;
|
|
109
112
|
/**
|
|
110
113
|
* 用于在历史记录时获取节点数据,
|
|
111
114
|
* 在某些情况下,如果希望某个属性变化不引起history的变化,
|
|
@@ -117,30 +120,30 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
117
120
|
*/
|
|
118
121
|
getProperties(): Record<string, any>;
|
|
119
122
|
/**
|
|
120
|
-
* @
|
|
123
|
+
* @override 支持重写
|
|
121
124
|
* 获取当前节点样式
|
|
122
125
|
* @returns 自定义节点样式
|
|
123
126
|
*/
|
|
124
127
|
getNodeStyle(): ShapeStyleAttribute;
|
|
125
128
|
/**
|
|
126
|
-
* @
|
|
129
|
+
* @override 支持重写
|
|
127
130
|
* 获取当前节点文本样式
|
|
128
131
|
*/
|
|
129
132
|
getTextStyle(): import("../../constant/DefaultTheme").NodeTextTheme;
|
|
130
133
|
/**
|
|
131
|
-
* @
|
|
134
|
+
* @override 支持重写
|
|
132
135
|
* 获取当前节点锚点样式
|
|
133
136
|
* @returns 自定义样式
|
|
134
137
|
*/
|
|
135
138
|
getAnchorStyle(anchorInfo: any): Record<string, any>;
|
|
136
139
|
/**
|
|
137
|
-
* @
|
|
140
|
+
* @override 支持重写
|
|
138
141
|
* 获取当前节点锚点拖出连线样式
|
|
139
142
|
* @returns 自定义锚点拖出样式
|
|
140
143
|
*/
|
|
141
144
|
getAnchorLineStyle(): import("../../constant/DefaultTheme").CommonTheme;
|
|
142
145
|
/**
|
|
143
|
-
* @
|
|
146
|
+
* @override 支持重写
|
|
144
147
|
* 获取outline样式,重写可以定义此类型节点outline样式, 默认使用主题样式
|
|
145
148
|
* @returns 自定义outline样式
|
|
146
149
|
*/
|
|
@@ -149,7 +152,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
149
152
|
* @over
|
|
150
153
|
* 在边的时候,是否允许这个节点为source节点,边到target节点。
|
|
151
154
|
*/
|
|
152
|
-
isAllowConnectedAsSource(target: BaseNodeModel,
|
|
155
|
+
isAllowConnectedAsSource(target: BaseNodeModel, sourceAnchor: AnchorConfig, targetAnchor: AnchorConfig): ConnectRuleResult | Boolean;
|
|
153
156
|
/**
|
|
154
157
|
* 获取当前节点作为连接的起始节点规则。
|
|
155
158
|
*/
|
|
@@ -157,7 +160,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
157
160
|
/**
|
|
158
161
|
* 在连线的时候,是否允许这个节点为target节点
|
|
159
162
|
*/
|
|
160
|
-
isAllowConnectedAsTarget(source: BaseNodeModel,
|
|
163
|
+
isAllowConnectedAsTarget(source: BaseNodeModel, sourceAnchor: AnchorConfig, targetAnchor: AnchorConfig): ConnectRuleResult | Boolean;
|
|
161
164
|
/**
|
|
162
165
|
* 内部方法
|
|
163
166
|
* 是否允许移动节点到新的位置
|
|
@@ -172,7 +175,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
172
175
|
*/
|
|
173
176
|
getAnchorsByOffset(): PointAnchor[];
|
|
174
177
|
/**
|
|
175
|
-
* @
|
|
178
|
+
* @override 子类重写此方法设置默认锚点
|
|
176
179
|
* 获取节点默认情况下的锚点
|
|
177
180
|
*/
|
|
178
181
|
getDefaultAnchor(): PointAnchor[];
|
|
@@ -183,8 +186,8 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
183
186
|
get anchors(): PointAnchor[];
|
|
184
187
|
getAnchorInfo(anchorId: string): PointAnchor;
|
|
185
188
|
addNodeMoveRules(fn: NodeMoveRule): void;
|
|
186
|
-
move(deltaX: any, deltaY: any,
|
|
187
|
-
moveTo(x: any, y: any,
|
|
189
|
+
move(deltaX: any, deltaY: any, isIgnoreRule?: boolean): boolean;
|
|
190
|
+
moveTo(x: any, y: any, isIgnoreRule?: boolean): boolean;
|
|
188
191
|
moveText(deltaX: any, deltaY: any): void;
|
|
189
192
|
updateText(value: string): void;
|
|
190
193
|
setSelected(flag?: boolean): void;
|
|
@@ -197,5 +200,15 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
197
200
|
setStyles(styles: any): void;
|
|
198
201
|
updateStyles(styles: any): void;
|
|
199
202
|
setZIndex(zindex?: number): void;
|
|
203
|
+
/**
|
|
204
|
+
* 设置节点属性;
|
|
205
|
+
* 支持属性请参考节点属性文档
|
|
206
|
+
* http://logic-flow.org/api/nodeModelApi.html#%E6%95%B0%E6%8D%AE%E5%B1%9E%E6%80%A7
|
|
207
|
+
* @example
|
|
208
|
+
* nodeModel.updateAttributes({
|
|
209
|
+
* width: 100,
|
|
210
|
+
* height: 100
|
|
211
|
+
* })
|
|
212
|
+
*/
|
|
200
213
|
updateAttributes(attributes: any): void;
|
|
201
214
|
}
|
|
@@ -2,6 +2,7 @@ import BaseNodeModel from './BaseNodeModel';
|
|
|
2
2
|
import { ModelType } from '../../constant/constant';
|
|
3
3
|
declare class TextNodeModel extends BaseNodeModel {
|
|
4
4
|
modelType: ModelType;
|
|
5
|
+
constructor(data: any, graphModel: any);
|
|
5
6
|
getTextStyle(): {
|
|
6
7
|
[x: string]: any;
|
|
7
8
|
color?: string;
|