@logicflow/core 2.0.8 → 2.0.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/.turbo/turbo-build$colon$dev.log +2 -2
- package/.turbo/turbo-build.log +19 -3
- package/CHANGELOG.md +22 -0
- package/dist/index.min.js +2 -0
- package/dist/index.min.js.map +1 -0
- package/es/LogicFlow.d.ts +3 -0
- package/es/LogicFlow.js +18 -1
- package/es/event/eventArgs.d.ts +10 -0
- package/es/event/eventEmitter.d.ts +1 -0
- package/es/event/eventEmitter.js +3 -0
- package/es/history/index.d.ts +1 -0
- package/es/history/index.js +6 -0
- package/es/keyboard/index.d.ts +1 -0
- package/es/keyboard/index.js +3 -0
- package/es/model/EditConfigModel.d.ts +3 -1
- package/es/model/EditConfigModel.js +5 -0
- package/es/model/GraphModel.d.ts +19 -4
- package/es/model/GraphModel.js +92 -41
- package/es/model/edge/BaseEdgeModel.js +6 -3
- package/es/model/edge/PolylineEdgeModel.d.ts +1 -0
- package/es/model/edge/PolylineEdgeModel.js +7 -0
- package/es/model/node/BaseNodeModel.d.ts +2 -2
- package/es/model/node/BaseNodeModel.js +3 -2
- package/es/model/node/TextNodeModel.d.ts +2 -2
- package/es/tool/index.d.ts +1 -0
- package/es/tool/index.js +4 -0
- package/es/util/geometry.d.ts +1 -1
- package/es/util/geometry.js +4 -1
- package/es/view/Graph.js +19 -2
- package/es/view/behavior/dnd.js +3 -2
- package/es/view/edge/BaseEdge.js +9 -2
- package/es/view/node/BaseNode.js +20 -7
- package/es/view/node/HtmlNode.js +1 -0
- package/es/view/overlay/CanvasOverlay.js +6 -4
- package/es/view/overlay/getTransformHoc.d.ts +1 -1
- package/es/view/text/BaseText.js +1 -0
- package/lib/LogicFlow.d.ts +3 -0
- package/lib/LogicFlow.js +17 -0
- package/lib/event/eventArgs.d.ts +10 -0
- package/lib/event/eventEmitter.d.ts +1 -0
- package/lib/event/eventEmitter.js +3 -0
- package/lib/history/index.d.ts +1 -0
- package/lib/history/index.js +6 -0
- package/lib/keyboard/index.d.ts +1 -0
- package/lib/keyboard/index.js +3 -0
- package/lib/model/EditConfigModel.d.ts +3 -1
- package/lib/model/EditConfigModel.js +5 -0
- package/lib/model/GraphModel.d.ts +19 -4
- package/lib/model/GraphModel.js +91 -40
- package/lib/model/edge/BaseEdgeModel.js +6 -3
- package/lib/model/edge/PolylineEdgeModel.d.ts +1 -0
- package/lib/model/edge/PolylineEdgeModel.js +7 -0
- package/lib/model/node/BaseNodeModel.d.ts +2 -2
- package/lib/model/node/BaseNodeModel.js +3 -2
- package/lib/model/node/TextNodeModel.d.ts +2 -2
- package/lib/tool/index.d.ts +1 -0
- package/lib/tool/index.js +4 -0
- package/lib/util/geometry.d.ts +1 -1
- package/lib/util/geometry.js +4 -1
- package/lib/view/Graph.js +19 -2
- package/lib/view/behavior/dnd.js +3 -2
- package/lib/view/edge/BaseEdge.js +9 -2
- package/lib/view/node/BaseNode.js +20 -7
- package/lib/view/node/HtmlNode.js +1 -0
- package/lib/view/overlay/CanvasOverlay.js +6 -4
- package/lib/view/overlay/getTransformHoc.d.ts +1 -1
- package/lib/view/text/BaseText.js +1 -0
- package/package.json +1 -1
- package/src/LogicFlow.tsx +19 -1
- package/src/event/eventEmitter.ts +4 -0
- package/src/history/index.ts +7 -0
- package/src/keyboard/index.ts +4 -0
- package/src/model/EditConfigModel.ts +4 -0
- package/src/model/GraphModel.ts +62 -70
- package/src/model/edge/BaseEdgeModel.ts +7 -2
- package/src/model/edge/PolylineEdgeModel.ts +8 -0
- package/src/model/node/BaseNodeModel.ts +5 -2
- package/src/tool/index.ts +5 -0
- package/src/util/geometry.ts +3 -1
- package/src/view/Graph.tsx +19 -2
- package/src/view/behavior/dnd.ts +5 -2
- package/src/view/edge/BaseEdge.tsx +9 -2
- package/src/view/node/BaseNode.tsx +20 -6
- package/src/view/node/HtmlNode.tsx +1 -0
- package/src/view/overlay/CanvasOverlay.tsx +6 -5
- package/src/view/text/BaseText.tsx +1 -0
- package/stats.html +1 -1
package/es/view/Graph.js
CHANGED
|
@@ -55,9 +55,26 @@ var Graph = /** @class */ (function (_super) {
|
|
|
55
55
|
function Graph() {
|
|
56
56
|
var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;
|
|
57
57
|
_this.handleResize = function () {
|
|
58
|
-
_this.props.graphModel.
|
|
58
|
+
var _a = _this.props, graphModel = _a.graphModel, options = _a.options;
|
|
59
|
+
var width = graphModel.width, height = graphModel.height, isContainerWidth = graphModel.isContainerWidth, isContainerHeight = graphModel.isContainerHeight;
|
|
60
|
+
var resizeWidth = width;
|
|
61
|
+
var resizeHeight = height;
|
|
62
|
+
var needUpdate = false;
|
|
63
|
+
if (isContainerWidth) {
|
|
64
|
+
resizeWidth = undefined;
|
|
65
|
+
needUpdate = true;
|
|
66
|
+
}
|
|
67
|
+
if (isContainerHeight) {
|
|
68
|
+
resizeHeight = undefined;
|
|
69
|
+
needUpdate = true;
|
|
70
|
+
}
|
|
71
|
+
if (needUpdate) {
|
|
72
|
+
graphModel.resize(resizeWidth, resizeHeight);
|
|
73
|
+
}
|
|
74
|
+
options.width = width;
|
|
75
|
+
options.height = height;
|
|
59
76
|
};
|
|
60
|
-
_this.throttleResize =
|
|
77
|
+
_this.throttleResize = throttle(_this.handleResize, 200);
|
|
61
78
|
return _this;
|
|
62
79
|
}
|
|
63
80
|
Graph.prototype.componentDidMount = function () {
|
package/es/view/behavior/dnd.js
CHANGED
|
@@ -81,10 +81,11 @@ var Dnd = /** @class */ (function () {
|
|
|
81
81
|
});
|
|
82
82
|
// 处理缩放和偏移
|
|
83
83
|
var _b = position.canvasOverlayPosition, x1 = _b.x, y1 = _b.y;
|
|
84
|
+
var snapGrid = this.lf.graphModel.editConfigModel.snapGrid;
|
|
84
85
|
// x, y 对齐到网格的 size
|
|
85
86
|
return {
|
|
86
|
-
x: snapToGrid(x1, gridSize),
|
|
87
|
-
y: snapToGrid(y1, gridSize),
|
|
87
|
+
x: snapToGrid(x1, gridSize, snapGrid),
|
|
88
|
+
y: snapToGrid(y1, gridSize, snapGrid),
|
|
88
89
|
};
|
|
89
90
|
};
|
|
90
91
|
Dnd.prototype.startDrag = function (nodeConfig) {
|
package/es/view/edge/BaseEdge.js
CHANGED
|
@@ -99,12 +99,16 @@ var BaseEdge = /** @class */ (function (_super) {
|
|
|
99
99
|
clearTimeout(_this.clickTimer);
|
|
100
100
|
}
|
|
101
101
|
var _a = _this.props, model = _a.model, graphModel = _a.graphModel;
|
|
102
|
+
var editConfigModel = graphModel.editConfigModel;
|
|
102
103
|
var position = graphModel.getPointByClient({
|
|
103
104
|
x: ev.clientX,
|
|
104
105
|
y: ev.clientY,
|
|
105
106
|
});
|
|
106
107
|
graphModel.setElementStateById(model.id, ElementState.SHOW_MENU, position.domOverlayPosition);
|
|
107
|
-
|
|
108
|
+
// 静默模式下点击节点不变更节点层级
|
|
109
|
+
if (!editConfigModel.isSilentMode) {
|
|
110
|
+
_this.toFront();
|
|
111
|
+
}
|
|
108
112
|
if (!model.isSelected) {
|
|
109
113
|
graphModel.selectEdgeById(model.id);
|
|
110
114
|
}
|
|
@@ -192,7 +196,10 @@ var BaseEdge = /** @class */ (function (_super) {
|
|
|
192
196
|
}
|
|
193
197
|
var editConfigModel = graphModel.editConfigModel;
|
|
194
198
|
graphModel.selectEdgeById(model.id, isMultipleSelect(e, editConfigModel));
|
|
195
|
-
|
|
199
|
+
// 静默模式下点击节点不变更节点层级
|
|
200
|
+
if (!editConfigModel.isSilentMode) {
|
|
201
|
+
_this.toFront();
|
|
202
|
+
}
|
|
196
203
|
};
|
|
197
204
|
_this.handleFocus = function () {
|
|
198
205
|
var _a = _this.props, model = _a.model, graphModel = _a.graphModel;
|
package/es/view/node/BaseNode.js
CHANGED
|
@@ -85,7 +85,7 @@ var BaseNode = /** @class */ (function (_super) {
|
|
|
85
85
|
var _b, _c, _d, _e;
|
|
86
86
|
var event = _a.event;
|
|
87
87
|
var _f = _this.props, model = _f.model, graphModel = _f.graphModel;
|
|
88
|
-
var _g = graphModel.editConfigModel, stopMoveGraph = _g.stopMoveGraph, autoExpand = _g.autoExpand, transformModel = graphModel.transformModel, selectNodes = graphModel.selectNodes, width = graphModel.width, height = graphModel.height, gridSize = graphModel.gridSize;
|
|
88
|
+
var _g = graphModel.editConfigModel, stopMoveGraph = _g.stopMoveGraph, autoExpand = _g.autoExpand, snapGrid = _g.snapGrid, transformModel = graphModel.transformModel, selectNodes = graphModel.selectNodes, width = graphModel.width, height = graphModel.height, gridSize = graphModel.gridSize;
|
|
89
89
|
model.isDragging = true;
|
|
90
90
|
var _h = event, clientX = _h.clientX, clientY = _h.clientY;
|
|
91
91
|
var _j = graphModel.getPointByClient({
|
|
@@ -97,9 +97,9 @@ var BaseNode = /** @class */ (function (_super) {
|
|
|
97
97
|
// 2. 考虑鼠标位置不再节点中心
|
|
98
98
|
x = x + ((_c = (_b = _this.moveOffset) === null || _b === void 0 ? void 0 : _b.dx) !== null && _c !== void 0 ? _c : 0);
|
|
99
99
|
y = y + ((_e = (_d = _this.moveOffset) === null || _d === void 0 ? void 0 : _d.dy) !== null && _e !== void 0 ? _e : 0);
|
|
100
|
-
//
|
|
101
|
-
x = snapToGrid(x, gridSize);
|
|
102
|
-
y = snapToGrid(y, gridSize);
|
|
100
|
+
// 校准坐标
|
|
101
|
+
x = snapToGrid(x, gridSize, snapGrid);
|
|
102
|
+
y = snapToGrid(y, gridSize, snapGrid);
|
|
103
103
|
if (!width || !height) {
|
|
104
104
|
graphModel.moveNode2Coordinate(model.id, x, y);
|
|
105
105
|
return;
|
|
@@ -213,12 +213,15 @@ var BaseNode = /** @class */ (function (_super) {
|
|
|
213
213
|
else {
|
|
214
214
|
graphModel.selectNodeById(model.id, isMultiple);
|
|
215
215
|
eventOptions.isSelected = true;
|
|
216
|
-
|
|
216
|
+
// 静默模式下点击节点不变更节点层级
|
|
217
|
+
if (!editConfigModel.isSilentMode) {
|
|
218
|
+
_this.toFront();
|
|
219
|
+
}
|
|
217
220
|
}
|
|
218
221
|
// 不是双击的,默认都是单击
|
|
219
222
|
if (isDoubleClick) {
|
|
220
223
|
if (editConfigModel.nodeTextEdit) {
|
|
221
|
-
if (model.text.editable) {
|
|
224
|
+
if (model.text.editable && editConfigModel.textMode === TextMode.TEXT) {
|
|
222
225
|
model.setSelected(false);
|
|
223
226
|
graphModel.setElementStateById(model.id, ElementState.TEXT_EDIT);
|
|
224
227
|
}
|
|
@@ -233,6 +236,7 @@ var BaseNode = /** @class */ (function (_super) {
|
|
|
233
236
|
_this.handleContextMenu = function (ev) {
|
|
234
237
|
ev.preventDefault();
|
|
235
238
|
var _a = _this.props, model = _a.model, graphModel = _a.graphModel;
|
|
239
|
+
var editConfigModel = graphModel.editConfigModel;
|
|
236
240
|
// 节点数据,多为事件对象数据抛出
|
|
237
241
|
var nodeData = model.getData();
|
|
238
242
|
var position = graphModel.getPointByClient({
|
|
@@ -248,7 +252,10 @@ var BaseNode = /** @class */ (function (_super) {
|
|
|
248
252
|
e: ev,
|
|
249
253
|
position: position,
|
|
250
254
|
});
|
|
251
|
-
|
|
255
|
+
// 静默模式下点击节点不变更节点层级
|
|
256
|
+
if (!editConfigModel.isSilentMode) {
|
|
257
|
+
_this.toFront();
|
|
258
|
+
}
|
|
252
259
|
};
|
|
253
260
|
_this.handleMouseDown = function (ev) {
|
|
254
261
|
var _a = _this.props, model = _a.model, graphModel = _a.graphModel;
|
|
@@ -322,6 +329,12 @@ var BaseNode = /** @class */ (function (_super) {
|
|
|
322
329
|
if (this.modelDisposer) {
|
|
323
330
|
this.modelDisposer();
|
|
324
331
|
}
|
|
332
|
+
// 以下是 mobx-preact 中 componentWillUnmount 的回调逻辑,但是不知道出于什么考虑,mobx-preact 没有混入这一段逻辑
|
|
333
|
+
// @ts-ignore
|
|
334
|
+
if (this.render.$mobx) {
|
|
335
|
+
// @ts-ignore
|
|
336
|
+
this.render.$mobx.dispose();
|
|
337
|
+
}
|
|
325
338
|
};
|
|
326
339
|
BaseNode.prototype.componentDidMount = function () { };
|
|
327
340
|
BaseNode.prototype.componentDidUpdate = function () { };
|
package/es/view/node/HtmlNode.js
CHANGED
|
@@ -113,6 +113,7 @@ var HtmlNode = /** @class */ (function (_super) {
|
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
115
|
HtmlNode.prototype.componentWillUnmount = function () {
|
|
116
|
+
_super.prototype.componentWillUnmount.call(this);
|
|
116
117
|
this.rootEl.innerHTML = '';
|
|
117
118
|
};
|
|
118
119
|
HtmlNode.prototype.getShape = function () {
|
|
@@ -63,8 +63,9 @@ var CanvasOverlay = /** @class */ (function (_super) {
|
|
|
63
63
|
_this.zoomHandler = function (ev) {
|
|
64
64
|
var _a = _this.props, _b = _a.graphModel, editConfigModel = _b.editConfigModel, transformModel = _b.transformModel, gridSize = _b.gridSize, graphModel = _a.graphModel;
|
|
65
65
|
var eX = ev.deltaX, eY = ev.deltaY;
|
|
66
|
+
var stopScrollGraph = editConfigModel.stopScrollGraph, stopZoomGraph = editConfigModel.stopZoomGraph;
|
|
66
67
|
// 如果没有禁止滚动移动画布, 并且当前触发的时候ctrl键、cmd键没有按住, 那么移动画布
|
|
67
|
-
if (!
|
|
68
|
+
if (!stopScrollGraph && !ev.ctrlKey && !ev.metaKey) {
|
|
68
69
|
ev.preventDefault();
|
|
69
70
|
_this.stepScrollX += eX;
|
|
70
71
|
_this.stepScrollY += eY;
|
|
@@ -83,7 +84,7 @@ var CanvasOverlay = /** @class */ (function (_super) {
|
|
|
83
84
|
return;
|
|
84
85
|
}
|
|
85
86
|
// 如果没有禁止缩放画布,那么进行缩放. 在禁止缩放画布后,按住 ctrl、cmd 键也不能缩放了。
|
|
86
|
-
if (!
|
|
87
|
+
if (!stopZoomGraph) {
|
|
87
88
|
ev.preventDefault();
|
|
88
89
|
var position = graphModel.getPointByClient({
|
|
89
90
|
x: ev.clientX,
|
|
@@ -124,10 +125,11 @@ var CanvasOverlay = /** @class */ (function (_super) {
|
|
|
124
125
|
// 鼠标、触摸板 按下
|
|
125
126
|
_this.mouseDownHandler = function (ev) {
|
|
126
127
|
var _a = _this.props.graphModel, eventCenter = _a.eventCenter, editConfigModel = _a.editConfigModel, SCALE_X = _a.transformModel.SCALE_X, gridSize = _a.gridSize;
|
|
128
|
+
var adjustEdge = editConfigModel.adjustEdge, adjustNodePosition = editConfigModel.adjustNodePosition, stopMoveGraph = editConfigModel.stopMoveGraph;
|
|
127
129
|
var target = ev.target;
|
|
128
|
-
var isFrozenElement = !
|
|
130
|
+
var isFrozenElement = !adjustEdge && !adjustNodePosition;
|
|
129
131
|
if (target.getAttribute('name') === 'canvas-overlay' || isFrozenElement) {
|
|
130
|
-
if (
|
|
132
|
+
if (stopMoveGraph !== true) {
|
|
131
133
|
_this.stepDrag.setStep(gridSize * SCALE_X);
|
|
132
134
|
_this.stepDrag.handleMouseDown(ev);
|
|
133
135
|
}
|
|
@@ -25,7 +25,7 @@ export declare function getTransform<P>(WrappedComponent: ComponentType<P>): {
|
|
|
25
25
|
props: import("preact").RenderableProps<IProps & P, any>;
|
|
26
26
|
context: any;
|
|
27
27
|
base?: Element | Text | undefined;
|
|
28
|
-
setState<K extends never>(state: ((prevState: Readonly<{}>, props: Readonly<IProps & P>) =>
|
|
28
|
+
setState<K extends never>(state: Partial<{}> | ((prevState: Readonly<{}>, props: Readonly<IProps & P>) => Partial<{}> | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
|
29
29
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
30
30
|
};
|
|
31
31
|
displayName?: string | undefined;
|
package/es/view/text/BaseText.js
CHANGED
|
@@ -54,6 +54,7 @@ var BaseText = /** @class */ (function (_super) {
|
|
|
54
54
|
var _a = _this.props, draggable = _a.draggable, model = _a.model, graphModel = _a.graphModel;
|
|
55
55
|
var nodeTextDraggable = graphModel.editConfigModel.nodeTextDraggable;
|
|
56
56
|
if (draggable !== null && draggable !== void 0 ? draggable : nodeTextDraggable) {
|
|
57
|
+
e.stopPropagation();
|
|
57
58
|
_this.stepperDrag.model = model;
|
|
58
59
|
_this.stepperDrag.handleMouseDown(e);
|
|
59
60
|
}
|
package/lib/LogicFlow.d.ts
CHANGED
|
@@ -568,6 +568,8 @@ export declare class LogicFlow {
|
|
|
568
568
|
* 加载插件-内部方法
|
|
569
569
|
*/
|
|
570
570
|
private installPlugin;
|
|
571
|
+
/** 销毁当前实例 */
|
|
572
|
+
destroy(): void;
|
|
571
573
|
}
|
|
572
574
|
export declare namespace LogicFlow {
|
|
573
575
|
/**
|
|
@@ -638,6 +640,7 @@ export declare namespace LogicFlow {
|
|
|
638
640
|
};
|
|
639
641
|
type LabelConfig = {
|
|
640
642
|
id?: string;
|
|
643
|
+
type?: string;
|
|
641
644
|
x: number;
|
|
642
645
|
y: number;
|
|
643
646
|
content?: string;
|
package/lib/LogicFlow.js
CHANGED
|
@@ -806,12 +806,18 @@ var LogicFlow = /** @class */ (function () {
|
|
|
806
806
|
*/
|
|
807
807
|
LogicFlow.prototype.updateEditConfig = function (config) {
|
|
808
808
|
var _a = this.graphModel, editConfigModel = _a.editConfigModel, transformModel = _a.transformModel;
|
|
809
|
+
var currentSnapGrid = editConfigModel.snapGrid;
|
|
809
810
|
editConfigModel.updateEditConfig(config);
|
|
810
811
|
if ((config === null || config === void 0 ? void 0 : config.stopMoveGraph) !== undefined) {
|
|
811
812
|
transformModel.updateTranslateLimits(config.stopMoveGraph);
|
|
812
813
|
}
|
|
813
814
|
// 静默模式切换时,修改快捷键的启用状态
|
|
814
815
|
(config === null || config === void 0 ? void 0 : config.isSilentMode) ? this.keyboard.disable() : this.keyboard.enable(true);
|
|
816
|
+
// 切换网格对齐状态时,修改网格尺寸
|
|
817
|
+
if (!(0, lodash_es_1.isNil)(config === null || config === void 0 ? void 0 : config.snapGrid) && config.snapGrid !== currentSnapGrid) {
|
|
818
|
+
var _b = this.graphModel.grid.size, size = _b === void 0 ? 1 : _b;
|
|
819
|
+
this.graphModel.updateGridSize(config.snapGrid ? size : 1);
|
|
820
|
+
}
|
|
815
821
|
};
|
|
816
822
|
/**
|
|
817
823
|
* 获取流程图当前编辑相关设置
|
|
@@ -936,6 +942,8 @@ var LogicFlow = /** @class */ (function () {
|
|
|
936
942
|
*/
|
|
937
943
|
LogicFlow.prototype.clearData = function () {
|
|
938
944
|
this.graphModel.clearData();
|
|
945
|
+
// 强制刷新数据, 让 preact 清除对已删除节点的引用
|
|
946
|
+
this.render({});
|
|
939
947
|
};
|
|
940
948
|
/*********************************************************
|
|
941
949
|
* LogicFlow Render方法
|
|
@@ -1195,6 +1203,15 @@ var LogicFlow = /** @class */ (function () {
|
|
|
1195
1203
|
this.components.push(extensionIns.render.bind(extensionIns));
|
|
1196
1204
|
this.extension[pluginName] = extensionIns;
|
|
1197
1205
|
};
|
|
1206
|
+
/** 销毁当前实例 */
|
|
1207
|
+
LogicFlow.prototype.destroy = function () {
|
|
1208
|
+
this.clearData();
|
|
1209
|
+
(0, compat_1.render)(null, this.container);
|
|
1210
|
+
this.keyboard.destroy();
|
|
1211
|
+
this.graphModel.destroy();
|
|
1212
|
+
this.tool.destroy();
|
|
1213
|
+
this.history.destroy();
|
|
1214
|
+
};
|
|
1198
1215
|
// 全局配置的插件,所有的LogicFlow示例都会使用
|
|
1199
1216
|
LogicFlow.extensions = new Map();
|
|
1200
1217
|
return LogicFlow;
|
package/lib/event/eventArgs.d.ts
CHANGED
|
@@ -349,6 +349,16 @@ interface CommonEventArgs {
|
|
|
349
349
|
*/
|
|
350
350
|
data: GraphData;
|
|
351
351
|
};
|
|
352
|
+
/**
|
|
353
|
+
* 画布容器大小发生变化触发,为了性能考虑对事件做了防抖处理,间隔为16ms
|
|
354
|
+
*/
|
|
355
|
+
'graph:resize': {
|
|
356
|
+
/**
|
|
357
|
+
* 更新后的画布数据
|
|
358
|
+
*/
|
|
359
|
+
target: HTMLElement;
|
|
360
|
+
contentRect: DOMRectReadOnly;
|
|
361
|
+
};
|
|
352
362
|
}
|
|
353
363
|
type AnchorEventArgsPick<T extends 'data' | 'e' | 'nodeModel' | 'edgeModel'> = Pick<{
|
|
354
364
|
/**
|
|
@@ -44,5 +44,6 @@ export default class EventEmitter {
|
|
|
44
44
|
off<T extends keyof EventArgs>(evts: T, callback?: (args: EventArgs[T]) => void): void;
|
|
45
45
|
off<T extends string>(evts: T, callback?: EventCallback<T>): void;
|
|
46
46
|
getEvents(): EventsType<string>;
|
|
47
|
+
destroy(): void;
|
|
47
48
|
}
|
|
48
49
|
export { EventEmitter, EventArgs };
|
|
@@ -87,6 +87,9 @@ var EventEmitter = /** @class */ (function () {
|
|
|
87
87
|
EventEmitter.prototype.getEvents = function () {
|
|
88
88
|
return this._events;
|
|
89
89
|
};
|
|
90
|
+
EventEmitter.prototype.destroy = function () {
|
|
91
|
+
this._events = {};
|
|
92
|
+
};
|
|
90
93
|
return EventEmitter;
|
|
91
94
|
}());
|
|
92
95
|
exports.EventEmitter = EventEmitter;
|
package/lib/history/index.d.ts
CHANGED
package/lib/history/index.js
CHANGED
|
@@ -107,6 +107,12 @@ var History = /** @class */ (function () {
|
|
|
107
107
|
}
|
|
108
108
|
}, this.waitTime));
|
|
109
109
|
};
|
|
110
|
+
History.prototype.destroy = function () {
|
|
111
|
+
this.undos = [];
|
|
112
|
+
this.redos = [];
|
|
113
|
+
this.curData = null;
|
|
114
|
+
this.stopWatch && this.stopWatch();
|
|
115
|
+
};
|
|
110
116
|
return History;
|
|
111
117
|
}());
|
|
112
118
|
exports.History = History;
|
package/lib/keyboard/index.d.ts
CHANGED
package/lib/keyboard/index.js
CHANGED
|
@@ -88,6 +88,9 @@ var Keyboard = /** @class */ (function () {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
};
|
|
91
|
+
Keyboard.prototype.destroy = function () {
|
|
92
|
+
this.mousetrap.reset();
|
|
93
|
+
};
|
|
91
94
|
Keyboard.prototype.getKeys = function (keys) {
|
|
92
95
|
var _this = this;
|
|
93
96
|
return (Array.isArray(keys) ? keys : [keys]).map(function (key) {
|
|
@@ -113,6 +113,7 @@ export interface IEditConfigType {
|
|
|
113
113
|
textMode: TextMode;
|
|
114
114
|
nodeTextMode: TextMode;
|
|
115
115
|
edgeTextMode: TextMode;
|
|
116
|
+
snapGrid: boolean;
|
|
116
117
|
}
|
|
117
118
|
export type IConfigKeys = keyof IEditConfigType;
|
|
118
119
|
/**
|
|
@@ -127,6 +128,7 @@ export declare class EditConfigModel {
|
|
|
127
128
|
stopZoomGraph: boolean;
|
|
128
129
|
stopMoveGraph: boolean;
|
|
129
130
|
stopScrollGraph: boolean;
|
|
131
|
+
snapGrid: boolean;
|
|
130
132
|
/*********************************************************
|
|
131
133
|
* 文本相关配置(全局)
|
|
132
134
|
********************************************************/
|
|
@@ -168,7 +170,7 @@ export declare class EditConfigModel {
|
|
|
168
170
|
multipleSelectKey: string;
|
|
169
171
|
constructor(config: Partial<IEditConfigType>);
|
|
170
172
|
updateEditConfig(config: Partial<IEditConfigType>): void;
|
|
171
|
-
computeConfig(config: Partial<IEditConfigType>): Partial<IEditConfigType> & Pick<Partial<IEditConfigType>, "textMode" | "adjustEdgeStartAndEnd" | "
|
|
173
|
+
computeConfig(config: Partial<IEditConfigType>): Partial<IEditConfigType> & Pick<Partial<IEditConfigType>, "textMode" | "adjustEdgeStartAndEnd" | "edgeTextDraggable" | "edgeTextEdit" | "nodeTextDraggable" | "nodeTextEdit" | "isSilentMode" | "stopZoomGraph" | "stopScrollGraph" | "stopMoveGraph" | "snapGrid" | "adjustEdge" | "adjustEdgeMiddle" | "adjustEdgeStart" | "adjustEdgeEnd" | "adjustNodePosition" | "hideAnchors" | "allowRotate" | "allowResize" | "autoExpand" | "hoverOutline" | "nodeSelectedOutline" | "edgeSelectedOutline" | "textEdit" | "textDraggable" | "multipleSelectKey" | "nodeTextMode" | "edgeTextMode" | "nodeTextMultiple" | "edgeTextMultiple" | "nodeTextVertical" | "edgeTextVertical">;
|
|
172
174
|
updateTextMode(textMode: TextMode): void;
|
|
173
175
|
getConfig(): IEditConfigType;
|
|
174
176
|
}
|
|
@@ -36,6 +36,7 @@ var allKeys = [
|
|
|
36
36
|
'stopZoomGraph', // 禁止缩放画布
|
|
37
37
|
'stopScrollGraph', // 禁止鼠标滚动移动画布
|
|
38
38
|
'stopMoveGraph', // 禁止拖动画布
|
|
39
|
+
'snapGrid', // 是否开启网格对齐
|
|
39
40
|
'adjustEdge', // 允许调整边
|
|
40
41
|
'adjustEdgeMiddle', // 允许调整边中点
|
|
41
42
|
'adjustEdgeStartAndEnd', // 允许调整边起点和终点
|
|
@@ -77,6 +78,7 @@ var EditConfigModel = /** @class */ (function () {
|
|
|
77
78
|
this.stopZoomGraph = false;
|
|
78
79
|
this.stopMoveGraph = false;
|
|
79
80
|
this.stopScrollGraph = false;
|
|
81
|
+
this.snapGrid = false;
|
|
80
82
|
/*********************************************************
|
|
81
83
|
* 文本相关配置(全局)
|
|
82
84
|
********************************************************/
|
|
@@ -191,6 +193,9 @@ var EditConfigModel = /** @class */ (function () {
|
|
|
191
193
|
__decorate([
|
|
192
194
|
mobx_1.observable
|
|
193
195
|
], EditConfigModel.prototype, "stopScrollGraph", void 0);
|
|
196
|
+
__decorate([
|
|
197
|
+
mobx_1.observable
|
|
198
|
+
], EditConfigModel.prototype, "snapGrid", void 0);
|
|
194
199
|
__decorate([
|
|
195
200
|
mobx_1.observable
|
|
196
201
|
], EditConfigModel.prototype, "textMode", void 0);
|
|
@@ -46,6 +46,14 @@ export declare class GraphModel {
|
|
|
46
46
|
* 获取自定义连线轨迹
|
|
47
47
|
*/
|
|
48
48
|
customTrajectory: LFOptions.Definition['customTrajectory'];
|
|
49
|
+
/**
|
|
50
|
+
* 判断是否使用的是容器的宽度
|
|
51
|
+
*/
|
|
52
|
+
isContainerWidth: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* 判断是否使用的是容器的高度
|
|
55
|
+
*/
|
|
56
|
+
isContainerHeight: boolean;
|
|
49
57
|
edgeType: string;
|
|
50
58
|
nodes: BaseNodeModel[];
|
|
51
59
|
edges: BaseEdgeModel[];
|
|
@@ -62,6 +70,7 @@ export declare class GraphModel {
|
|
|
62
70
|
editConfigModel: EditConfigModel;
|
|
63
71
|
partial: boolean;
|
|
64
72
|
[propName: string]: any;
|
|
73
|
+
private waitCleanEffects;
|
|
65
74
|
constructor(options: LFOptions.Common);
|
|
66
75
|
get nodesMap(): GraphModel.NodesMapType;
|
|
67
76
|
get edgesMap(): GraphModel.EdgesMapType;
|
|
@@ -70,15 +79,15 @@ export declare class GraphModel {
|
|
|
70
79
|
* 基于zIndex对元素进行排序。
|
|
71
80
|
* todo: 性能优化
|
|
72
81
|
*/
|
|
73
|
-
get sortElements(): (
|
|
82
|
+
get sortElements(): (BaseNodeModel<LogicFlow.PropertiesType> | BaseEdgeModel<LogicFlow.PropertiesType>)[];
|
|
74
83
|
/**
|
|
75
84
|
* 当前编辑的元素,低频操作,先循环找。
|
|
76
85
|
*/
|
|
77
|
-
get textEditElement():
|
|
86
|
+
get textEditElement(): BaseNodeModel<LogicFlow.PropertiesType> | BaseEdgeModel<LogicFlow.PropertiesType> | undefined;
|
|
78
87
|
/**
|
|
79
88
|
* 当前画布所有被选中的元素
|
|
80
89
|
*/
|
|
81
|
-
get selectElements(): Map<string,
|
|
90
|
+
get selectElements(): Map<string, BaseNodeModel<LogicFlow.PropertiesType> | BaseEdgeModel<LogicFlow.PropertiesType>>;
|
|
82
91
|
get selectNodes(): BaseNodeModel<LogicFlow.PropertiesType>[];
|
|
83
92
|
/**
|
|
84
93
|
* 获取指定区域内的所有元素
|
|
@@ -390,7 +399,11 @@ export declare class GraphModel {
|
|
|
390
399
|
*/
|
|
391
400
|
updateGridOptions(options: Partial<Grid.GridOptions>): void;
|
|
392
401
|
/**
|
|
393
|
-
*
|
|
402
|
+
* 更新网格尺寸
|
|
403
|
+
*/
|
|
404
|
+
updateGridSize(size: number): void;
|
|
405
|
+
/**
|
|
406
|
+
* 更新背景配置
|
|
394
407
|
*/
|
|
395
408
|
updateBackgroundOptions(options: boolean | Partial<LFOptions.BackgroundConfig>): void;
|
|
396
409
|
/**
|
|
@@ -437,6 +450,8 @@ export declare class GraphModel {
|
|
|
437
450
|
* @returns
|
|
438
451
|
*/
|
|
439
452
|
setPartial(partial: boolean): void;
|
|
453
|
+
/** 销毁当前实例 */
|
|
454
|
+
destroy(): void;
|
|
440
455
|
}
|
|
441
456
|
export declare namespace GraphModel {
|
|
442
457
|
type NodesMapType = Record<string, {
|