@logicflow/core 2.0.0-beta.5 → 2.0.0-beta.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/.turbo/turbo-build$colon$dev.log +2 -2
- package/.turbo/turbo-build.log +8 -8
- package/dist/index.min.js +4 -4
- package/es/LogicFlow.d.ts +32 -6
- package/es/LogicFlow.js +15 -12
- package/es/LogicFlow.js.map +1 -1
- package/es/algorithm/edge.js.map +1 -1
- package/es/algorithm/index.d.ts +2 -0
- package/es/algorithm/index.js +2 -0
- package/es/algorithm/index.js.map +1 -1
- package/es/algorithm/outline.d.ts +1 -1
- package/es/common/drag.d.ts +2 -2
- package/es/common/drag.js.map +1 -1
- package/es/constant/index.d.ts +37 -1
- package/es/constant/index.js +40 -1
- package/es/constant/index.js.map +1 -1
- package/es/event/eventArgs.d.ts +88 -25
- package/es/index.d.ts +4 -0
- package/es/index.js +4 -0
- package/es/index.js.map +1 -1
- package/es/keyboard/shortcut.d.ts +4 -0
- package/es/keyboard/shortcut.js +9 -8
- package/es/keyboard/shortcut.js.map +1 -1
- package/es/model/BaseModel.d.ts +12 -16
- package/es/model/EditConfigModel.d.ts +97 -36
- package/es/model/EditConfigModel.js +166 -79
- package/es/model/EditConfigModel.js.map +1 -1
- package/es/model/GraphModel.d.ts +12 -1
- package/es/model/GraphModel.js +40 -9
- package/es/model/GraphModel.js.map +1 -1
- package/es/model/TransformModel.js +1 -1
- package/es/model/TransformModel.js.map +1 -1
- package/es/model/edge/BaseEdgeModel.d.ts +9 -3
- package/es/model/edge/BaseEdgeModel.js +33 -17
- package/es/model/edge/BaseEdgeModel.js.map +1 -1
- package/es/model/edge/BezierEdgeModel.d.ts +1 -1
- package/es/model/edge/BezierEdgeModel.js +5 -2
- package/es/model/edge/BezierEdgeModel.js.map +1 -1
- package/es/model/edge/PolylineEdgeModel.d.ts +3 -3
- package/es/model/edge/PolylineEdgeModel.js +20 -14
- package/es/model/edge/PolylineEdgeModel.js.map +1 -1
- package/es/model/node/BaseNodeModel.d.ts +7 -1
- package/es/model/node/BaseNodeModel.js +22 -11
- package/es/model/node/BaseNodeModel.js.map +1 -1
- package/es/model/node/CircleNodeModel.js.map +1 -1
- package/es/model/node/DiamondNodeModel.js.map +1 -1
- package/es/model/node/EllipseNodeModel.js.map +1 -1
- package/es/options.d.ts +4 -1
- package/es/options.js.map +1 -1
- package/es/tool/MultipleSelectTool.d.ts +1 -1
- package/es/tool/MultipleSelectTool.js +5 -5
- package/es/tool/MultipleSelectTool.js.map +1 -1
- package/es/tool/TextEditTool.d.ts +3 -3
- package/es/tool/TextEditTool.js +2 -2
- package/es/tool/TextEditTool.js.map +1 -1
- package/es/tool/index.d.ts +24 -2
- package/es/tool/index.js +82 -2
- package/es/tool/index.js.map +1 -1
- package/es/util/drag.d.ts +5 -5
- package/es/util/drag.js +3 -1
- package/es/util/drag.js.map +1 -1
- package/es/util/edge.d.ts +2 -1
- package/es/util/edge.js +9 -12
- package/es/util/edge.js.map +1 -1
- package/es/util/node.d.ts +2 -5
- package/es/util/node.js +1 -0
- package/es/util/node.js.map +1 -1
- package/es/view/Anchor.d.ts +1 -3
- package/es/view/Anchor.js +3 -0
- package/es/view/Anchor.js.map +1 -1
- package/es/view/Control.d.ts +1 -1
- package/es/view/Control.js +7 -7
- package/es/view/Control.js.map +1 -1
- package/es/view/Graph.d.ts +1 -1
- package/es/view/Rotate.js +2 -1
- package/es/view/Rotate.js.map +1 -1
- package/es/view/behavior/index.d.ts +2 -0
- package/es/view/behavior/index.js +3 -0
- package/es/view/behavior/index.js.map +1 -0
- package/es/view/behavior/snapline.d.ts +3 -0
- package/es/{tool → view/behavior}/snapline.js +0 -1
- package/es/view/behavior/snapline.js.map +1 -0
- package/es/view/edge/AdjustPoint.js +9 -20
- package/es/view/edge/AdjustPoint.js.map +1 -1
- package/es/view/edge/BaseEdge.js +25 -17
- package/es/view/edge/BaseEdge.js.map +1 -1
- package/es/view/node/BaseNode.js +14 -9
- package/es/view/node/BaseNode.js.map +1 -1
- package/es/view/node/HtmlNode.js +2 -2
- package/es/view/node/HtmlNode.js.map +1 -1
- package/es/view/overlay/CanvasOverlay.js +1 -0
- package/es/view/overlay/CanvasOverlay.js.map +1 -1
- package/es/view/overlay/ToolOverlay.d.ts +1 -1
- package/es/view/overlay/ToolOverlay.js +1 -1
- package/es/view/overlay/ToolOverlay.js.map +1 -1
- package/es/view/text/BaseText.js +7 -3
- package/es/view/text/BaseText.js.map +1 -1
- package/lib/LogicFlow.d.ts +32 -6
- package/lib/LogicFlow.js +17 -14
- package/lib/LogicFlow.js.map +1 -1
- package/lib/algorithm/edge.js.map +1 -1
- package/lib/algorithm/index.d.ts +2 -0
- package/lib/algorithm/index.js +17 -1
- package/lib/algorithm/index.js.map +1 -1
- package/lib/algorithm/outline.d.ts +1 -1
- package/lib/common/drag.d.ts +2 -2
- package/lib/common/drag.js.map +1 -1
- package/lib/constant/index.d.ts +37 -1
- package/lib/constant/index.js +41 -2
- package/lib/constant/index.js.map +1 -1
- package/lib/event/eventArgs.d.ts +88 -25
- package/lib/index.d.ts +4 -0
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/keyboard/shortcut.d.ts +4 -0
- package/lib/keyboard/shortcut.js +12 -9
- package/lib/keyboard/shortcut.js.map +1 -1
- package/lib/model/BaseModel.d.ts +12 -16
- package/lib/model/EditConfigModel.d.ts +97 -36
- package/lib/model/EditConfigModel.js +165 -78
- package/lib/model/EditConfigModel.js.map +1 -1
- package/lib/model/GraphModel.d.ts +12 -1
- package/lib/model/GraphModel.js +38 -7
- package/lib/model/GraphModel.js.map +1 -1
- package/lib/model/TransformModel.js +1 -1
- package/lib/model/TransformModel.js.map +1 -1
- package/lib/model/edge/BaseEdgeModel.d.ts +9 -3
- package/lib/model/edge/BaseEdgeModel.js +31 -15
- package/lib/model/edge/BaseEdgeModel.js.map +1 -1
- package/lib/model/edge/BezierEdgeModel.d.ts +1 -1
- package/lib/model/edge/BezierEdgeModel.js +4 -1
- package/lib/model/edge/BezierEdgeModel.js.map +1 -1
- package/lib/model/edge/PolylineEdgeModel.d.ts +3 -3
- package/lib/model/edge/PolylineEdgeModel.js +19 -13
- package/lib/model/edge/PolylineEdgeModel.js.map +1 -1
- package/lib/model/node/BaseNodeModel.d.ts +7 -1
- package/lib/model/node/BaseNodeModel.js +20 -9
- package/lib/model/node/BaseNodeModel.js.map +1 -1
- package/lib/model/node/CircleNodeModel.js.map +1 -1
- package/lib/model/node/DiamondNodeModel.js.map +1 -1
- package/lib/model/node/EllipseNodeModel.js.map +1 -1
- package/lib/options.d.ts +4 -1
- package/lib/options.js.map +1 -1
- package/lib/tool/MultipleSelectTool.d.ts +1 -1
- package/lib/tool/MultipleSelectTool.js +5 -5
- package/lib/tool/MultipleSelectTool.js.map +1 -1
- package/lib/tool/TextEditTool.d.ts +3 -3
- package/lib/tool/TextEditTool.js +4 -4
- package/lib/tool/TextEditTool.js.map +1 -1
- package/lib/tool/index.d.ts +24 -2
- package/lib/tool/index.js +85 -15
- package/lib/tool/index.js.map +1 -1
- package/lib/util/drag.d.ts +5 -5
- package/lib/util/drag.js +3 -1
- package/lib/util/drag.js.map +1 -1
- package/lib/util/edge.d.ts +2 -1
- package/lib/util/edge.js +11 -14
- package/lib/util/edge.js.map +1 -1
- package/lib/util/node.d.ts +2 -5
- package/lib/util/node.js +1 -0
- package/lib/util/node.js.map +1 -1
- package/lib/view/Anchor.d.ts +1 -3
- package/lib/view/Anchor.js +3 -0
- package/lib/view/Anchor.js.map +1 -1
- package/lib/view/Control.d.ts +1 -1
- package/lib/view/Control.js +7 -7
- package/lib/view/Control.js.map +1 -1
- package/lib/view/Graph.d.ts +1 -1
- package/lib/view/Rotate.js +2 -1
- package/lib/view/Rotate.js.map +1 -1
- package/lib/view/behavior/index.d.ts +2 -0
- package/lib/view/behavior/index.js +19 -0
- package/lib/view/behavior/index.js.map +1 -0
- package/lib/view/behavior/snapline.d.ts +3 -0
- package/lib/{tool → view/behavior}/snapline.js +0 -1
- package/lib/view/behavior/snapline.js.map +1 -0
- package/lib/view/edge/AdjustPoint.js +9 -20
- package/lib/view/edge/AdjustPoint.js.map +1 -1
- package/lib/view/edge/BaseEdge.js +24 -16
- package/lib/view/edge/BaseEdge.js.map +1 -1
- package/lib/view/node/BaseNode.js +13 -8
- package/lib/view/node/BaseNode.js.map +1 -1
- package/lib/view/node/HtmlNode.js +2 -2
- package/lib/view/node/HtmlNode.js.map +1 -1
- package/lib/view/overlay/CanvasOverlay.js +1 -0
- package/lib/view/overlay/CanvasOverlay.js.map +1 -1
- package/lib/view/overlay/ToolOverlay.d.ts +1 -1
- package/lib/view/overlay/ToolOverlay.js +1 -1
- package/lib/view/overlay/ToolOverlay.js.map +1 -1
- package/lib/view/text/BaseText.js +6 -2
- package/lib/view/text/BaseText.js.map +1 -1
- package/package.json +1 -1
- package/src/LogicFlow.tsx +52 -14
- package/src/algorithm/edge.ts +1 -0
- package/src/algorithm/index.ts +2 -0
- package/src/algorithm/outline.ts +2 -2
- package/src/common/drag.ts +16 -2
- package/src/constant/index.ts +42 -1
- package/src/event/eventArgs.ts +155 -34
- package/src/index.ts +4 -0
- package/src/keyboard/shortcut.ts +12 -8
- package/src/model/BaseModel.ts +15 -17
- package/src/model/EditConfigModel.ts +206 -94
- package/src/model/GraphModel.ts +43 -8
- package/src/model/TransformModel.ts +1 -1
- package/src/model/edge/BaseEdgeModel.ts +28 -19
- package/src/model/edge/BezierEdgeModel.ts +5 -6
- package/src/model/edge/PolylineEdgeModel.ts +22 -18
- package/src/model/node/BaseNodeModel.ts +19 -13
- package/src/model/node/CircleNodeModel.ts +0 -1
- package/src/model/node/DiamondNodeModel.ts +0 -1
- package/src/model/node/EllipseNodeModel.ts +0 -1
- package/src/options.ts +6 -1
- package/src/tool/MultipleSelectTool.tsx +6 -6
- package/src/tool/TextEditTool.tsx +3 -3
- package/src/tool/index.ts +96 -2
- package/src/util/drag.ts +22 -6
- package/src/util/edge.ts +14 -13
- package/src/util/node.ts +3 -5
- package/src/view/Anchor.tsx +3 -1
- package/src/view/Control.tsx +16 -7
- package/src/view/Graph.tsx +1 -1
- package/src/view/Rotate.tsx +2 -1
- package/src/view/behavior/index.ts +2 -0
- package/src/{tool → view/behavior}/snapline.ts +3 -4
- package/src/view/edge/AdjustPoint.tsx +32 -46
- package/src/view/edge/BaseEdge.tsx +58 -38
- package/src/view/node/BaseNode.tsx +24 -10
- package/src/view/node/HtmlNode.tsx +2 -2
- package/src/view/overlay/CanvasOverlay.tsx +1 -0
- package/src/view/overlay/ToolOverlay.tsx +1 -1
- package/src/view/text/BaseText.tsx +11 -3
- package/es/tool/snapline.d.ts +0 -3
- package/es/tool/snapline.js.map +0 -1
- package/es/tool/tool.d.ts +0 -22
- package/es/tool/tool.js +0 -43
- package/es/tool/tool.js.map +0 -1
- package/lib/tool/snapline.d.ts +0 -3
- package/lib/tool/snapline.js.map +0 -1
- package/lib/tool/tool.d.ts +0 -22
- package/lib/tool/tool.js +0 -49
- package/lib/tool/tool.js.map +0 -1
- package/src/tool/tool.ts +0 -66
|
@@ -12,7 +12,7 @@ export declare class ToolOverlay extends Component<IProps> {
|
|
|
12
12
|
/**
|
|
13
13
|
* 外部传入的一般是HTMLElement
|
|
14
14
|
*/
|
|
15
|
-
getTools(): import("preact").VNode<import("
|
|
15
|
+
getTools(): import("preact").VNode<import("../..").IToolProps>[];
|
|
16
16
|
triggerToolRender(): void;
|
|
17
17
|
render(): h.JSX.Element;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolOverlay.js","sourceRoot":"","sources":["../../../src/view/overlay/ToolOverlay.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAA6D;AAC7D,sBAAkC;AAClC,2BAAgC;AAWhC;IAAiC,+BAAiB;IAAlD;;IAiDA,CAAC;IAhDC,yFAAyF;IACzF,+DAA+D;IAC/D,6DAA6D;IAC7D,6DAA6D;IAC7D,uCAAiB,GAAjB;QACE,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAED,wCAAkB,GAAlB;QACE,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,8BAAQ,GAAR;QACQ,IAAA,KAAuB,IAAI,CAAC,KAAK,EAA/B,IAAI,UAAA,EAAE,UAAU,gBAAe,CAAA;QAC/B,IAAA,eAAe,GAAK,UAAU,gBAAf,CAAe;QACtC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC7B,IAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC;YAC7B,OAAA,IAAA,sBAAC,EAAC,CAAC,EAAE;gBACH,eAAe,iBAAA;gBACf,UAAU,YAAA;gBACV,
|
|
1
|
+
{"version":3,"file":"ToolOverlay.js","sourceRoot":"","sources":["../../../src/view/overlay/ToolOverlay.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAA6D;AAC7D,sBAAkC;AAClC,2BAAgC;AAWhC;IAAiC,+BAAiB;IAAlD;;IAiDA,CAAC;IAhDC,yFAAyF;IACzF,+DAA+D;IAC/D,6DAA6D;IAC7D,6DAA6D;IAC7D,uCAAiB,GAAjB;QACE,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAED,wCAAkB,GAAlB;QACE,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,8BAAQ,GAAR;QACQ,IAAA,KAAuB,IAAI,CAAC,KAAK,EAA/B,IAAI,UAAA,EAAE,UAAU,gBAAe,CAAA;QAC/B,IAAA,eAAe,GAAK,UAAU,gBAAf,CAAe;QACtC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC7B,IAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC;YAC7B,OAAA,IAAA,sBAAC,EAAC,CAAC,EAAE;gBACH,eAAe,iBAAA;gBACf,UAAU,YAAA;gBACV,EAAE,EAAE,IAAI,CAAC,QAAQ;aAClB,CAAC;QAJF,CAIE,CACH,CAAA;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,uCAAiB,GAAjB;QACQ,IAAA,KAAuB,IAAI,CAAC,KAAK,EAA/B,IAAI,UAAA,EAAE,UAAU,gBAAe,CAAA;QACvC,IAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAC/C,uBAAgB,UAAU,CAAC,MAAM,CAAE,CACrB,CAAA;QAChB,IAAM,EAAE,GAAc,IAAI,CAAC,WAAW,EAAE,CAAA;QACxC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAA9B,CAA8B,CAAC,CAAA;QACjE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAA,CAAC,4BAA4B;IACjD,CAAC;IAED,4BAAM,GAAN;QACU,IAAA,UAAU,GAAK,IAAI,CAAC,KAAK,WAAf,CAAe;QACjC,OAAO,CACL,gCAAK,SAAS,EAAC,iBAAiB,EAAC,EAAE,EAAE,sBAAe,UAAU,CAAC,MAAM,CAAE,YACpE,IAAI,CAAC,QAAQ,EAAE,GACZ,CACP,CAAA;IACH,CAAC;IAhDU,WAAW;QADvB,YAAQ;OACI,WAAW,CAiDvB;IAAD,kBAAC;CAAA,AAjDD,CAAiC,kBAAS,GAiDzC;AAjDY,kCAAW;AAmDxB,kBAAe,iBAAc,CAAA"}
|
|
@@ -74,11 +74,14 @@ var BaseText = /** @class */ (function (_super) {
|
|
|
74
74
|
};
|
|
75
75
|
_this.dbClickHandler = function () {
|
|
76
76
|
// 静默模式下,双击不更改状态,不可编辑
|
|
77
|
-
var
|
|
77
|
+
var _a = _this.props, editable = _a.editable, eventCenter = _a.graphModel.eventCenter, model = _a.model;
|
|
78
78
|
if (editable) {
|
|
79
|
-
var model = _this.props.model;
|
|
80
79
|
model.setElementState(constant_1.ElementState.TEXT_EDIT);
|
|
81
80
|
}
|
|
81
|
+
eventCenter.emit(constant_1.EventType.TEXT_DBCLICK, {
|
|
82
|
+
data: model.text,
|
|
83
|
+
model: model,
|
|
84
|
+
});
|
|
82
85
|
};
|
|
83
86
|
var draggable = props.draggable;
|
|
84
87
|
// TODO: 确认为什么不在 new 的时候传入 model,而在下面使用的时候赋值
|
|
@@ -86,6 +89,7 @@ var BaseText = /** @class */ (function (_super) {
|
|
|
86
89
|
onDragging: _this.onDragging,
|
|
87
90
|
step: 1,
|
|
88
91
|
// model,
|
|
92
|
+
eventType: 'TEXT',
|
|
89
93
|
isStopPropagation: draggable,
|
|
90
94
|
});
|
|
91
95
|
return _this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseText.js","sourceRoot":"","sources":["../../../src/view/text/BaseText.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAmC;AACnC,wCAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"BaseText.js","sourceRoot":"","sources":["../../../src/view/text/BaseText.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/LogicFlow.tsx
CHANGED
|
@@ -6,7 +6,7 @@ import * as _Model from './model'
|
|
|
6
6
|
import {
|
|
7
7
|
BaseEdgeModel,
|
|
8
8
|
BaseNodeModel,
|
|
9
|
-
|
|
9
|
+
IEditConfigType,
|
|
10
10
|
GraphModel,
|
|
11
11
|
SnaplineModel,
|
|
12
12
|
ZoomParamType,
|
|
@@ -16,11 +16,10 @@ import Graph from './view/Graph'
|
|
|
16
16
|
import * as _View from './view'
|
|
17
17
|
import { formatData } from './util'
|
|
18
18
|
|
|
19
|
-
import Dnd from './view/behavior
|
|
20
|
-
import Tool from './tool
|
|
21
|
-
import { snapline } from './tool'
|
|
22
|
-
import Keyboard from './keyboard'
|
|
19
|
+
import { Dnd, snapline } from './view/behavior'
|
|
20
|
+
import Tool from './tool'
|
|
23
21
|
import History from './history'
|
|
22
|
+
import Keyboard from './keyboard'
|
|
24
23
|
import { EventCallback, CallbackArgs, EventArgs } from './event/eventEmitter'
|
|
25
24
|
import { ElementType, EventType, SegmentDirection } from './constant'
|
|
26
25
|
import { initDefaultShortcut } from './keyboard/shortcut'
|
|
@@ -698,8 +697,8 @@ export class LogicFlow {
|
|
|
698
697
|
distance = 40,
|
|
699
698
|
): GraphElements | undefined {
|
|
700
699
|
// TODO: 1. 解决下面方法中 distance 传参缺未使用的问题;该方法在快捷键中有调用
|
|
701
|
-
console.log('addElements', nodes, edges, distance)
|
|
702
700
|
// TODO: 2. review 一下本函数代码逻辑,确认 nodeIdMap 的作用,看是否有优化的空间
|
|
701
|
+
console.log('distance', distance)
|
|
703
702
|
const nodeIdMap: Record<string, string> = {}
|
|
704
703
|
const elements: GraphElements = {
|
|
705
704
|
nodes: [],
|
|
@@ -708,11 +707,9 @@ export class LogicFlow {
|
|
|
708
707
|
forEach(nodes, (node) => {
|
|
709
708
|
const nodeId = node.id
|
|
710
709
|
const nodeModel = this.addNode(node)
|
|
711
|
-
|
|
712
710
|
if (nodeId) nodeIdMap[nodeId] = nodeModel.id
|
|
713
711
|
elements.nodes.push(nodeModel)
|
|
714
712
|
})
|
|
715
|
-
|
|
716
713
|
forEach(edges, (edge) => {
|
|
717
714
|
let { sourceNodeId, targetNodeId } = edge
|
|
718
715
|
if (nodeIdMap[sourceNodeId]) sourceNodeId = nodeIdMap[sourceNodeId]
|
|
@@ -890,7 +887,7 @@ export class LogicFlow {
|
|
|
890
887
|
* @param {object} config 编辑配置
|
|
891
888
|
* @see todo docs link
|
|
892
889
|
*/
|
|
893
|
-
updateEditConfig(config:
|
|
890
|
+
updateEditConfig(config: Partial<IEditConfigType>) {
|
|
894
891
|
const { editConfigModel, transformModel } = this.graphModel
|
|
895
892
|
editConfigModel.updateEditConfig(config)
|
|
896
893
|
if (config?.stopMoveGraph !== undefined) {
|
|
@@ -1074,6 +1071,7 @@ export class LogicFlow {
|
|
|
1074
1071
|
)
|
|
1075
1072
|
this.emit(EventType.GRAPH_RENDERED, {
|
|
1076
1073
|
data: this.graphModel.modelToGraphData(),
|
|
1074
|
+
graphModel: this.graphModel,
|
|
1077
1075
|
})
|
|
1078
1076
|
}
|
|
1079
1077
|
|
|
@@ -1324,7 +1322,7 @@ export class LogicFlow {
|
|
|
1324
1322
|
([, extension]) => extension,
|
|
1325
1323
|
)
|
|
1326
1324
|
// 安装插件,优先使用个性插件
|
|
1327
|
-
const extensions = [...
|
|
1325
|
+
const extensions = [...this.plugins, ...extensionsAddByUse]
|
|
1328
1326
|
forEach(extensions, (ext) => {
|
|
1329
1327
|
let extension: ExtensionConstructor | ExtensionDefinition
|
|
1330
1328
|
let props: Record<string, any> | undefined
|
|
@@ -1362,15 +1360,18 @@ export class LogicFlow {
|
|
|
1362
1360
|
}
|
|
1363
1361
|
|
|
1364
1362
|
const ExtensionCtor = extension as ExtensionConstructor
|
|
1363
|
+
const pluginName = ExtensionCtor.pluginName
|
|
1365
1364
|
const extensionIns = new ExtensionCtor({
|
|
1366
1365
|
lf: this,
|
|
1367
1366
|
LogicFlow,
|
|
1368
1367
|
props,
|
|
1369
|
-
|
|
1368
|
+
// TODO: 这里的 options 应该传入插件对应的 options,而不是全局的 options
|
|
1369
|
+
// 所以应该这么写 this.options.pluginsOptions[ExtensionCtor.pluginName] ?? {}
|
|
1370
|
+
options: this.options.pluginsOptions?.[pluginName] ?? {},
|
|
1370
1371
|
})
|
|
1371
1372
|
extensionIns.render &&
|
|
1372
1373
|
this.components.push(extensionIns.render.bind(extensionIns))
|
|
1373
|
-
this.extension[
|
|
1374
|
+
this.extension[pluginName] = extensionIns
|
|
1374
1375
|
}
|
|
1375
1376
|
}
|
|
1376
1377
|
|
|
@@ -1442,9 +1443,48 @@ export namespace LogicFlow {
|
|
|
1442
1443
|
y: number
|
|
1443
1444
|
editable?: boolean
|
|
1444
1445
|
draggable?: boolean
|
|
1446
|
+
// 直接在这儿设置文本模式
|
|
1445
1447
|
// overflowMode?: 'default' | 'autoWrap' | 'ellipsis'
|
|
1446
1448
|
}
|
|
1447
1449
|
|
|
1450
|
+
// label数据类型声明
|
|
1451
|
+
export type LabelConfig = {
|
|
1452
|
+
id?: string // label唯一标识
|
|
1453
|
+
x: number
|
|
1454
|
+
y: number
|
|
1455
|
+
content?: string // 富文本内容
|
|
1456
|
+
value: string // 纯文本内容
|
|
1457
|
+
rotate?: number // 旋转角度
|
|
1458
|
+
// 样式属性
|
|
1459
|
+
style?: h.JSX.CSSProperties // label自定义样式
|
|
1460
|
+
|
|
1461
|
+
// 编辑状态属性
|
|
1462
|
+
editable?: boolean
|
|
1463
|
+
draggable?: boolean
|
|
1464
|
+
labelWidth?: number
|
|
1465
|
+
textOverflowMode?: 'ellipsis' | 'wrap' | 'clip' | 'nowrap' | 'default'
|
|
1466
|
+
|
|
1467
|
+
// 当前 Label 是否渲染纵向文本
|
|
1468
|
+
vertical?: boolean
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1471
|
+
export type LabelOption = {
|
|
1472
|
+
// 节点的所有 Label 是否纵向展示
|
|
1473
|
+
isVertical: boolean
|
|
1474
|
+
// 是否支持多个 label
|
|
1475
|
+
isMultiple: boolean
|
|
1476
|
+
// 允许设置多个 label 时最大个数
|
|
1477
|
+
maxCount?: number
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
export interface LabelData extends LabelConfig {
|
|
1481
|
+
id: string
|
|
1482
|
+
x: number
|
|
1483
|
+
y: number
|
|
1484
|
+
content: string
|
|
1485
|
+
value: string
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1448
1488
|
export type AppendConfig = {
|
|
1449
1489
|
startIndex: number
|
|
1450
1490
|
endIndex: number
|
|
@@ -1507,7 +1547,6 @@ export namespace LogicFlow {
|
|
|
1507
1547
|
export interface NodeData extends NodeConfig {
|
|
1508
1548
|
id: string
|
|
1509
1549
|
text?: TextConfig
|
|
1510
|
-
|
|
1511
1550
|
[key: string]: unknown
|
|
1512
1551
|
}
|
|
1513
1552
|
|
|
@@ -1519,7 +1558,6 @@ export namespace LogicFlow {
|
|
|
1519
1558
|
sourceAnchorId?: string
|
|
1520
1559
|
targetNodeId: string
|
|
1521
1560
|
targetAnchorId?: string
|
|
1522
|
-
|
|
1523
1561
|
startPoint?: Point
|
|
1524
1562
|
endPoint?: Point
|
|
1525
1563
|
text?: TextConfig | string
|
package/src/algorithm/edge.ts
CHANGED
package/src/algorithm/index.ts
CHANGED
package/src/algorithm/outline.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ModelType } from '../constant'
|
|
2
2
|
import {
|
|
3
3
|
Model,
|
|
4
|
-
PolylineEdgeModel,
|
|
5
|
-
BezierEdgeModel,
|
|
6
4
|
BaseNodeModel,
|
|
7
5
|
BaseEdgeModel,
|
|
8
6
|
LineEdgeModel,
|
|
7
|
+
BezierEdgeModel,
|
|
8
|
+
PolylineEdgeModel,
|
|
9
9
|
} from '../model'
|
|
10
10
|
import { points2PointsList, getBBoxOfPoints, getBezierPoints } from '../util'
|
|
11
11
|
|
package/src/common/drag.ts
CHANGED
|
@@ -23,7 +23,14 @@ export type ICreateDragParams = {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
export type IStepperDragProps = {
|
|
26
|
-
eventType?:
|
|
26
|
+
eventType?:
|
|
27
|
+
| 'NODE'
|
|
28
|
+
| 'BLANK'
|
|
29
|
+
| 'SELECTION'
|
|
30
|
+
| 'ADJUST_POINT'
|
|
31
|
+
| 'TEXT'
|
|
32
|
+
| 'LABEL'
|
|
33
|
+
| ''
|
|
27
34
|
eventCenter?: EventEmitter
|
|
28
35
|
model?: Model.BaseModel
|
|
29
36
|
data?: Record<string, unknown>
|
|
@@ -41,7 +48,14 @@ export class StepperDrag {
|
|
|
41
48
|
|
|
42
49
|
step: number
|
|
43
50
|
isStopPropagation: boolean
|
|
44
|
-
eventType:
|
|
51
|
+
eventType:
|
|
52
|
+
| 'NODE'
|
|
53
|
+
| 'BLANK'
|
|
54
|
+
| 'SELECTION'
|
|
55
|
+
| 'ADJUST_POINT'
|
|
56
|
+
| 'TEXT'
|
|
57
|
+
| 'LABEL'
|
|
58
|
+
| ''
|
|
45
59
|
eventCenter?: EventEmitter
|
|
46
60
|
model?: Model.BaseModel
|
|
47
61
|
data?: Record<string, unknown>
|
package/src/constant/index.ts
CHANGED
|
@@ -109,9 +109,45 @@ export enum EventType {
|
|
|
109
109
|
SELECTION_CONTEXTMENU = 'selection:contextmenu',
|
|
110
110
|
CONNECTION_NOT_ALLOWED = 'connection:not-allowed',
|
|
111
111
|
|
|
112
|
+
// Text events
|
|
113
|
+
TEXT_MOUSEDOWN = 'text:mousedown',
|
|
114
|
+
TEXT_DRAGSTART = 'text:dragstart',
|
|
115
|
+
TEXT_DRAG = 'text:drag',
|
|
116
|
+
TEXT_DROP = 'text:drop',
|
|
117
|
+
TEXT_CLICK = 'text:click',
|
|
118
|
+
TEXT_DBCLICK = 'text:dbclick',
|
|
119
|
+
TEXT_BLUR = 'text:blur',
|
|
120
|
+
TEXT_MOUSEMOVE = 'text:mousemove',
|
|
121
|
+
TEXT_MOUSEUP = 'text:mouseup',
|
|
122
|
+
TEXT_FOCUS = 'text:focus',
|
|
123
|
+
TEXT_ADD = 'text:add',
|
|
124
|
+
TEXT_UPDATE = 'text:update',
|
|
125
|
+
TEXT_CLEAR = 'text:clear',
|
|
126
|
+
|
|
127
|
+
// label events
|
|
128
|
+
LABEL_MOUSEDOWN = 'label:mousedown',
|
|
129
|
+
LABEL_DRAGSTART = 'label:dragstart',
|
|
130
|
+
LABEL_DRAG = 'label:drag',
|
|
131
|
+
LABEL_DROP = 'label:drop',
|
|
132
|
+
LABEL_CLICK = 'label:click',
|
|
133
|
+
LABEL_DBCLICK = 'label:dbclick',
|
|
134
|
+
LABEL_BLUR = 'label:blur',
|
|
135
|
+
LABEL_MOUSEMOVE = 'label:mousemove',
|
|
136
|
+
LABEL_MOUSEUP = 'label:mouseup',
|
|
137
|
+
LABEL_FOCUS = 'label:focus',
|
|
138
|
+
LABEL_ADD = 'label:add',
|
|
139
|
+
LABEL_UPDATE = 'label:update',
|
|
140
|
+
LABEL_CLEAR = 'label:clear',
|
|
141
|
+
LABEL_DELETE = 'label:delete',
|
|
142
|
+
LABEL_SHOULD_ADD = 'label:should-add',
|
|
143
|
+
LABEL_BATCH_ADD = 'label:batch-add',
|
|
144
|
+
LABEL_SHOULD_UPDATE = 'label:should-update',
|
|
145
|
+
LABEL_SHOULD_DELETE = 'label:should-delete',
|
|
146
|
+
LABEL_BATCH_DELETE = 'label:batch-delete',
|
|
147
|
+
LABEL_NOT_ALLOWED_ADD = 'label:not-allowed-add',
|
|
148
|
+
|
|
112
149
|
// Other events
|
|
113
150
|
HISTORY_CHANGE = 'history:change',
|
|
114
|
-
TEXT_UPDATE = 'text:update',
|
|
115
151
|
GRAPH_TRANSFORM = 'graph:transform',
|
|
116
152
|
GRAPH_RENDERED = 'graph:rendered',
|
|
117
153
|
GRAPH_UPDATED = 'graph:updated',
|
|
@@ -126,3 +162,8 @@ export enum SegmentDirection {
|
|
|
126
162
|
HORIZONTAL = 'horizontal',
|
|
127
163
|
VERTICAL = 'vertical',
|
|
128
164
|
}
|
|
165
|
+
|
|
166
|
+
export enum TextMode {
|
|
167
|
+
TEXT = 'text',
|
|
168
|
+
LABEL = 'label',
|
|
169
|
+
}
|
package/src/event/eventArgs.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
LogicFlow,
|
|
1
|
+
import LogicFlow, {
|
|
3
2
|
BaseNodeModel,
|
|
4
3
|
BaseEdgeModel,
|
|
5
4
|
Model,
|
|
5
|
+
GraphModel,
|
|
6
6
|
TransformData,
|
|
7
7
|
TransformType,
|
|
8
8
|
} from '..'
|
|
@@ -24,12 +24,29 @@ type ClickEventArgs = {
|
|
|
24
24
|
isMultiple: boolean
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
type NodeEventArgsPick<
|
|
27
|
+
type NodeEventArgsPick<
|
|
28
|
+
T extends
|
|
29
|
+
| 'preData'
|
|
30
|
+
| 'data'
|
|
31
|
+
| 'model'
|
|
32
|
+
| 'e'
|
|
33
|
+
| 'position'
|
|
34
|
+
| 'deltaX'
|
|
35
|
+
| 'deltaY',
|
|
36
|
+
> = Pick<
|
|
28
37
|
{
|
|
38
|
+
/**
|
|
39
|
+
* 上一个状态的节点数据
|
|
40
|
+
*/
|
|
41
|
+
preData: NodeData
|
|
29
42
|
/**
|
|
30
43
|
* 节点数据
|
|
31
44
|
*/
|
|
32
45
|
data: NodeData
|
|
46
|
+
/**
|
|
47
|
+
* 节点 model
|
|
48
|
+
*/
|
|
49
|
+
model: BaseNodeModel
|
|
33
50
|
/**
|
|
34
51
|
* 原生鼠标事件对象
|
|
35
52
|
*/
|
|
@@ -38,6 +55,35 @@ type NodeEventArgsPick<T extends 'data' | 'e' | 'position'> = Pick<
|
|
|
38
55
|
* 鼠标触发点相对于画布左上角的坐标
|
|
39
56
|
*/
|
|
40
57
|
position: ClientPosition
|
|
58
|
+
/**
|
|
59
|
+
* 鼠标 X轴移动的距离
|
|
60
|
+
*/
|
|
61
|
+
deltaX: number
|
|
62
|
+
/**
|
|
63
|
+
* 鼠标Y轴移动的距离
|
|
64
|
+
*/
|
|
65
|
+
deltaY: number
|
|
66
|
+
},
|
|
67
|
+
T
|
|
68
|
+
>
|
|
69
|
+
|
|
70
|
+
type TextEventArgsPick<
|
|
71
|
+
T extends 'data' | 'e' | 'model' | 'element' | 'position',
|
|
72
|
+
> = Pick<
|
|
73
|
+
{
|
|
74
|
+
// 节点数据
|
|
75
|
+
data?: any
|
|
76
|
+
// 原生鼠标事件对象
|
|
77
|
+
e?: MouseEvent | FocusEvent
|
|
78
|
+
// 文本所在元素model
|
|
79
|
+
model?: BaseNodeModel | BaseEdgeModel | unknown
|
|
80
|
+
// 文本dom
|
|
81
|
+
element?: HTMLElement | null
|
|
82
|
+
// 文本位置
|
|
83
|
+
position?: {
|
|
84
|
+
x: number
|
|
85
|
+
y: number
|
|
86
|
+
}
|
|
41
87
|
},
|
|
42
88
|
T
|
|
43
89
|
>
|
|
@@ -65,7 +111,7 @@ interface NodeEventArgs {
|
|
|
65
111
|
/**
|
|
66
112
|
* 鼠标移动节点
|
|
67
113
|
*/
|
|
68
|
-
'node:mousemove': NodeEventArgsPick<'data' | 'e'>
|
|
114
|
+
'node:mousemove': NodeEventArgsPick<'data' | 'e' | 'deltaX' | 'deltaY'>
|
|
69
115
|
/**
|
|
70
116
|
* 鼠标进入节点
|
|
71
117
|
*/
|
|
@@ -97,7 +143,7 @@ interface NodeEventArgs {
|
|
|
97
143
|
/**
|
|
98
144
|
* 拖拽节点
|
|
99
145
|
*/
|
|
100
|
-
'node:drag': NodeEventArgsPick<'data' | 'e'>
|
|
146
|
+
'node:drag': NodeEventArgsPick<'data' | 'e' | 'deltaX' | 'deltaY'>
|
|
101
147
|
/**
|
|
102
148
|
* 拖拽节点结束
|
|
103
149
|
*/
|
|
@@ -106,6 +152,14 @@ interface NodeEventArgs {
|
|
|
106
152
|
* 右键点击节点
|
|
107
153
|
*/
|
|
108
154
|
'node:contextmenu': NodeEventArgsPick<'data' | 'e' | 'position'>
|
|
155
|
+
/**
|
|
156
|
+
* 节点旋转
|
|
157
|
+
*/
|
|
158
|
+
'node:rotate': NodeEventArgsPick<'data' | 'e' | 'model'>
|
|
159
|
+
/**
|
|
160
|
+
* 节点缩放
|
|
161
|
+
*/
|
|
162
|
+
'node:resize': NodeEventArgsPick<'preData' | 'data' | 'model'>
|
|
109
163
|
}
|
|
110
164
|
|
|
111
165
|
type EdgeEventArgsPick<T extends 'data' | 'e' | 'position'> = Pick<
|
|
@@ -179,6 +233,88 @@ interface EdgeEventArgs {
|
|
|
179
233
|
}
|
|
180
234
|
}
|
|
181
235
|
|
|
236
|
+
/**
|
|
237
|
+
* 文本事件
|
|
238
|
+
*/
|
|
239
|
+
interface TextEventArgs {
|
|
240
|
+
// 鼠标按下文本
|
|
241
|
+
'text:mousedown': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
242
|
+
// 开始拖拽文本
|
|
243
|
+
'text:dragstart': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
244
|
+
// 文本拖拽
|
|
245
|
+
'text:drag': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
246
|
+
// 文本拖拽结束
|
|
247
|
+
'text:drop': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
248
|
+
// 文本单击
|
|
249
|
+
'text:click': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
250
|
+
// 文本双击
|
|
251
|
+
'text:dbclick': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
252
|
+
// 文本失焦
|
|
253
|
+
'text:blur': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
|
|
254
|
+
// 鼠标移动文本
|
|
255
|
+
'text:mousemove': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
256
|
+
// 鼠标抬起
|
|
257
|
+
'text:mouseup': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
258
|
+
// 文本获焦
|
|
259
|
+
'text:focus': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
|
|
260
|
+
// 文本新增
|
|
261
|
+
'text:add': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
262
|
+
// 文本更新
|
|
263
|
+
'text:update': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
264
|
+
// 文本清空
|
|
265
|
+
'text:clear': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
266
|
+
// 文本删除
|
|
267
|
+
'text:delete': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
268
|
+
// 不允许增加文本
|
|
269
|
+
'text:not-allowed-add': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* label插件文本事件
|
|
274
|
+
*/
|
|
275
|
+
interface TextEventArgs {
|
|
276
|
+
// 鼠标按下文本
|
|
277
|
+
'label:mousedown': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
278
|
+
// 开始拖拽文本
|
|
279
|
+
'label:dragstart': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
280
|
+
// 文本拖拽
|
|
281
|
+
'label:drag': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
282
|
+
// 文本拖拽结束
|
|
283
|
+
'label:drop': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
284
|
+
// 文本单击
|
|
285
|
+
'label:click': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
286
|
+
// 文本双击
|
|
287
|
+
'label:dbclick': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
288
|
+
// 文本失焦
|
|
289
|
+
'label:blur': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
|
|
290
|
+
// 鼠标移动文本
|
|
291
|
+
'label:mousemove': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
292
|
+
// 鼠标抬起
|
|
293
|
+
'label:mouseup': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
294
|
+
// 文本获焦
|
|
295
|
+
'label:focus': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
|
|
296
|
+
// 文本新增
|
|
297
|
+
'label:add': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
298
|
+
// 文本更新
|
|
299
|
+
'label:update': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
300
|
+
// 文本清空
|
|
301
|
+
'label:clear': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
302
|
+
// 文本删除
|
|
303
|
+
'label:delete': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
304
|
+
// 文本新增
|
|
305
|
+
'label:should-add': TextEventArgsPick<'data' | 'e' | 'model' | 'position'>
|
|
306
|
+
// 文本批量新增
|
|
307
|
+
'label:batch-add': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
308
|
+
// 文本更新
|
|
309
|
+
'label:should-update': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
310
|
+
// 文本删除
|
|
311
|
+
'label:should-delete': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
312
|
+
// 文本批量删除
|
|
313
|
+
'label:batch-delete': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
314
|
+
// 不允许增加文本
|
|
315
|
+
'label:not-allowed-add': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
316
|
+
}
|
|
317
|
+
|
|
182
318
|
/**
|
|
183
319
|
* 连线事件
|
|
184
320
|
*/
|
|
@@ -240,26 +376,6 @@ interface CommonEventArgs {
|
|
|
240
376
|
properties: Record<string, any>
|
|
241
377
|
}
|
|
242
378
|
}
|
|
243
|
-
/**
|
|
244
|
-
* 节点/边的文本更新
|
|
245
|
-
*/
|
|
246
|
-
// TODO: 更新文本事件抛出的对象是否需要更详细?
|
|
247
|
-
'text:update': {
|
|
248
|
-
data: {
|
|
249
|
-
/**
|
|
250
|
-
* 更新的文本
|
|
251
|
-
*/
|
|
252
|
-
text: string
|
|
253
|
-
/**
|
|
254
|
-
* 节点/边的 id
|
|
255
|
-
*/
|
|
256
|
-
id: string
|
|
257
|
-
/**
|
|
258
|
-
* 节点/边的类型
|
|
259
|
-
*/
|
|
260
|
-
type: string
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
379
|
/**
|
|
264
380
|
* 进行画布平移或缩放等变化操作时触发
|
|
265
381
|
*/
|
|
@@ -281,6 +397,10 @@ interface CommonEventArgs {
|
|
|
281
397
|
* 渲染后的画布数据
|
|
282
398
|
*/
|
|
283
399
|
data: GraphData
|
|
400
|
+
/**
|
|
401
|
+
* 渲染后的画布 model
|
|
402
|
+
*/
|
|
403
|
+
graphModel: GraphModel
|
|
284
404
|
}
|
|
285
405
|
/**
|
|
286
406
|
* 画布重新更新后触发. 即 lf.render(graphData)方法被调用后或者改变画布(garphModel)上的属性后触发。
|
|
@@ -471,12 +591,13 @@ interface SelectionEventArgs {
|
|
|
471
591
|
'selection:contextmenu': SelectionEventArgsPick<'data' | 'e' | 'position'>
|
|
472
592
|
}
|
|
473
593
|
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
594
|
+
// 此处主要是对事件参数进行聚合
|
|
595
|
+
export type EventArgs = NodeEventArgs &
|
|
596
|
+
EdgeEventArgs &
|
|
597
|
+
ConnectionEventArgs &
|
|
598
|
+
CommonEventArgs &
|
|
599
|
+
AnchorEventArgs &
|
|
600
|
+
BlankEventArgs &
|
|
601
|
+
HistoryEventArgs &
|
|
602
|
+
SelectionEventArgs &
|
|
603
|
+
TextEventArgs
|
package/src/index.ts
CHANGED
|
@@ -10,10 +10,14 @@ export function observer<P>(props: P) {
|
|
|
10
10
|
|
|
11
11
|
export { LogicFlow, h, createRef, Component, LogicFlowUtil }
|
|
12
12
|
|
|
13
|
+
export * from './util'
|
|
14
|
+
export * from './tool'
|
|
13
15
|
export * from './view'
|
|
14
16
|
export * from './model'
|
|
15
17
|
export * from './options'
|
|
16
18
|
export * from './keyboard'
|
|
19
|
+
export * from './constant'
|
|
20
|
+
export * from './algorithm'
|
|
17
21
|
export { ElementState, ModelType, ElementType, EventType } from './constant'
|
|
18
22
|
|
|
19
23
|
export { formatAnchorConnectValidateData } from './util/node'
|