@logicflow/core 2.1.3 → 2.2.0-alpha.0
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 +6 -6
- package/CHANGELOG.md +15 -0
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/es/LogicFlow.d.ts +2 -1
- package/es/LogicFlow.js +4 -1
- package/es/constant/index.d.ts +3 -1
- package/es/constant/index.js +2 -0
- package/es/model/EditConfigModel.d.ts +3 -1
- package/es/model/EditConfigModel.js +5 -0
- package/es/model/GraphModel.d.ts +9 -1
- package/es/model/GraphModel.js +35 -8
- package/es/model/edge/BaseEdgeModel.d.ts +2 -1
- package/es/model/edge/BaseEdgeModel.js +29 -5
- package/es/model/node/BaseNodeModel.d.ts +2 -1
- package/es/model/node/BaseNodeModel.js +29 -5
- package/es/tool/MultipleSelectTool.d.ts +1 -1
- package/es/tool/MultipleSelectTool.js +1 -1
- package/es/util/drag.d.ts +4 -4
- package/es/util/drag.js +12 -6
- package/es/view/Anchor.d.ts +3 -3
- package/es/view/Anchor.js +30 -4
- package/es/view/Control.js +1 -1
- package/es/view/Rotate.js +1 -1
- package/es/view/behavior/dnd.d.ts +4 -8
- package/es/view/behavior/dnd.js +50 -14
- package/es/view/edge/AdjustPoint.d.ts +1 -1
- package/es/view/edge/AdjustPoint.js +1 -1
- package/es/view/edge/BaseEdge.d.ts +2 -1
- package/es/view/edge/BaseEdge.js +18 -1
- package/es/view/edge/PolylineEdge.d.ts +1 -1
- package/es/view/edge/PolylineEdge.js +1 -1
- package/es/view/node/BaseNode.d.ts +2 -1
- package/es/view/node/BaseNode.js +30 -3
- package/es/view/overlay/BezierAdjustOverlay.js +1 -1
- package/es/view/overlay/CanvasOverlay.d.ts +12 -1
- package/es/view/overlay/CanvasOverlay.js +94 -15
- package/es/view/text/BaseText.d.ts +1 -1
- package/es/view/text/BaseText.js +1 -1
- package/lib/LogicFlow.d.ts +2 -1
- package/lib/LogicFlow.js +3 -0
- package/lib/constant/index.d.ts +3 -1
- package/lib/constant/index.js +2 -0
- package/lib/model/EditConfigModel.d.ts +3 -1
- package/lib/model/EditConfigModel.js +5 -0
- package/lib/model/GraphModel.d.ts +9 -1
- package/lib/model/GraphModel.js +35 -8
- package/lib/model/edge/BaseEdgeModel.d.ts +2 -1
- package/lib/model/edge/BaseEdgeModel.js +29 -5
- package/lib/model/node/BaseNodeModel.d.ts +2 -1
- package/lib/model/node/BaseNodeModel.js +29 -5
- package/lib/tool/MultipleSelectTool.d.ts +1 -1
- package/lib/tool/MultipleSelectTool.js +1 -1
- package/lib/util/drag.d.ts +4 -4
- package/lib/util/drag.js +12 -6
- package/lib/view/Anchor.d.ts +3 -3
- package/lib/view/Anchor.js +30 -4
- package/lib/view/Control.js +1 -1
- package/lib/view/Rotate.js +1 -1
- package/lib/view/behavior/dnd.d.ts +4 -8
- package/lib/view/behavior/dnd.js +50 -14
- package/lib/view/edge/AdjustPoint.d.ts +1 -1
- package/lib/view/edge/AdjustPoint.js +1 -1
- package/lib/view/edge/BaseEdge.d.ts +2 -1
- package/lib/view/edge/BaseEdge.js +18 -1
- package/lib/view/edge/PolylineEdge.d.ts +1 -1
- package/lib/view/edge/PolylineEdge.js +1 -1
- package/lib/view/node/BaseNode.d.ts +2 -1
- package/lib/view/node/BaseNode.js +30 -3
- package/lib/view/overlay/BezierAdjustOverlay.js +1 -1
- package/lib/view/overlay/CanvasOverlay.d.ts +12 -1
- package/lib/view/overlay/CanvasOverlay.js +94 -15
- package/lib/view/text/BaseText.d.ts +1 -1
- package/lib/view/text/BaseText.js +1 -1
- package/package.json +1 -1
- package/src/LogicFlow.tsx +9 -1
- package/src/constant/index.ts +2 -0
- package/src/model/EditConfigModel.ts +3 -0
- package/src/model/GraphModel.ts +37 -11
- package/src/model/edge/BaseEdgeModel.ts +32 -5
- package/src/model/node/BaseNodeModel.ts +30 -5
- package/src/tool/MultipleSelectTool.tsx +2 -2
- package/src/util/drag.ts +16 -12
- package/src/view/Anchor.tsx +32 -6
- package/src/view/Control.tsx +1 -1
- package/src/view/Rotate.tsx +1 -1
- package/src/view/behavior/dnd.ts +55 -16
- package/src/view/edge/AdjustPoint.tsx +2 -2
- package/src/view/edge/BaseEdge.tsx +23 -3
- package/src/view/edge/PolylineEdge.tsx +2 -2
- package/src/view/node/BaseNode.tsx +30 -4
- package/src/view/overlay/BezierAdjustOverlay.tsx +1 -1
- package/src/view/overlay/CanvasOverlay.tsx +110 -4
- package/src/view/text/BaseText.tsx +5 -2
- package/stats.html +1 -1
package/lib/model/GraphModel.js
CHANGED
|
@@ -119,6 +119,7 @@ var GraphModel = /** @class */ (function () {
|
|
|
119
119
|
this.edgeType = options.edgeType || 'polyline';
|
|
120
120
|
this.animation = (0, util_1.setupAnimation)(animation);
|
|
121
121
|
this.overlapMode = options.overlapMode || constant_1.OverlapMode.DEFAULT;
|
|
122
|
+
this.isMiniMap = options.isMiniMap || false;
|
|
122
123
|
this.width = (_a = options.width) !== null && _a !== void 0 ? _a : this.rootEl.getBoundingClientRect().width;
|
|
123
124
|
this.isContainerWidth = (0, lodash_es_1.isNil)(options.width);
|
|
124
125
|
this.height = (_b = options.height) !== null && _b !== void 0 ? _b : this.rootEl.getBoundingClientRect().height;
|
|
@@ -199,7 +200,11 @@ var GraphModel = /** @class */ (function () {
|
|
|
199
200
|
* todo: 性能优化
|
|
200
201
|
*/
|
|
201
202
|
get: function () {
|
|
202
|
-
var
|
|
203
|
+
var sortElement = function (list) {
|
|
204
|
+
return __spreadArray([], __read(list), false).sort(function (a, b) { return a.zIndex - b.zIndex; });
|
|
205
|
+
};
|
|
206
|
+
// 默认情况下节点与边按照 zIndex 排序
|
|
207
|
+
var elements = sortElement(__spreadArray(__spreadArray([], __read(this.nodes), false), __read(this.edges), false));
|
|
203
208
|
// 只显示可见区域的节点和边
|
|
204
209
|
var visibleElements = [];
|
|
205
210
|
// TODO: 缓存,优化计算效率 by xutao. So how?
|
|
@@ -643,6 +648,19 @@ var GraphModel = /** @class */ (function () {
|
|
|
643
648
|
return model.textMode || edgeTextMode || textMode || constant_1.TextMode.TEXT;
|
|
644
649
|
}
|
|
645
650
|
};
|
|
651
|
+
/**
|
|
652
|
+
* 内部保留方法,请勿直接使用
|
|
653
|
+
*/
|
|
654
|
+
/**
|
|
655
|
+
* 设置重叠模式
|
|
656
|
+
* @param mode 重叠模式
|
|
657
|
+
*/
|
|
658
|
+
GraphModel.prototype.setOverlapMode = function (mode) {
|
|
659
|
+
this.overlapMode = mode;
|
|
660
|
+
this.eventCenter.emit('overlap:change', {
|
|
661
|
+
overlapMode: mode,
|
|
662
|
+
});
|
|
663
|
+
};
|
|
646
664
|
/**
|
|
647
665
|
* 更新元素的文本模式
|
|
648
666
|
* @param mode
|
|
@@ -685,14 +703,19 @@ var GraphModel = /** @class */ (function () {
|
|
|
685
703
|
var _a, _b, _c;
|
|
686
704
|
var element = ((_a = this.nodesMap[id]) === null || _a === void 0 ? void 0 : _a.model) || ((_b = this.edgesMap[id]) === null || _b === void 0 ? void 0 : _b.model);
|
|
687
705
|
if (element) {
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
this.topElement = element;
|
|
706
|
+
// 静态模式toFront不做处理
|
|
707
|
+
if (this.overlapMode === constant_1.OverlapMode.STATIC) {
|
|
708
|
+
return;
|
|
692
709
|
}
|
|
710
|
+
// 递增模式下,将需指定元素zIndex设置为当前最大zIndex + 1
|
|
693
711
|
if (this.overlapMode === constant_1.OverlapMode.INCREASE) {
|
|
694
712
|
this.setElementZIndex(id, 'top');
|
|
713
|
+
return;
|
|
695
714
|
}
|
|
715
|
+
// 默认模式(节点在上)和边在上模式下,将原置顶元素重新恢复原有层级,将需指定元素zIndex设置为最大zIndex
|
|
716
|
+
(_c = this.topElement) === null || _c === void 0 ? void 0 : _c.setZIndex();
|
|
717
|
+
element.setZIndex(constant_1.ELEMENT_MAX_Z_INDEX);
|
|
718
|
+
this.topElement = element;
|
|
696
719
|
}
|
|
697
720
|
};
|
|
698
721
|
/**
|
|
@@ -1079,12 +1102,13 @@ var GraphModel = /** @class */ (function () {
|
|
|
1079
1102
|
var _a;
|
|
1080
1103
|
this.selectElements.forEach(function (element) {
|
|
1081
1104
|
element === null || element === void 0 ? void 0 : element.setSelected(false);
|
|
1105
|
+
element === null || element === void 0 ? void 0 : element.setHovered(false);
|
|
1082
1106
|
});
|
|
1083
1107
|
this.selectElements.clear();
|
|
1084
1108
|
/**
|
|
1085
1109
|
* 如果堆叠模式为默认模式,则将置顶元素重新恢复原有层级
|
|
1086
1110
|
*/
|
|
1087
|
-
if (
|
|
1111
|
+
if ([constant_1.OverlapMode.DEFAULT, constant_1.OverlapMode.EDGE_TOP].includes(this.overlapMode)) {
|
|
1088
1112
|
(_a = this.topElement) === null || _a === void 0 ? void 0 : _a.setZIndex();
|
|
1089
1113
|
}
|
|
1090
1114
|
};
|
|
@@ -1385,7 +1409,7 @@ var GraphModel = /** @class */ (function () {
|
|
|
1385
1409
|
this.elementsModelMap.clear();
|
|
1386
1410
|
};
|
|
1387
1411
|
/**
|
|
1388
|
-
*
|
|
1412
|
+
* 获取图形区域虚拟矩形的尺寸和中心坐标
|
|
1389
1413
|
* @returns
|
|
1390
1414
|
*/
|
|
1391
1415
|
GraphModel.prototype.getVirtualRectSize = function () {
|
|
@@ -1409,7 +1433,7 @@ var GraphModel = /** @class */ (function () {
|
|
|
1409
1433
|
var maxY = Math.max.apply(Math, __spreadArray([], __read(nodesY), false));
|
|
1410
1434
|
var virtualRectWidth = maxX - minX || 0;
|
|
1411
1435
|
var virtualRectHeight = maxY - minY || 0;
|
|
1412
|
-
//
|
|
1436
|
+
// 获取虚拟矩形的中心坐标
|
|
1413
1437
|
var virtualRectCenterPositionX = minX + virtualRectWidth / 2;
|
|
1414
1438
|
var virtualRectCenterPositionY = minY + virtualRectHeight / 2;
|
|
1415
1439
|
return {
|
|
@@ -1564,6 +1588,9 @@ var GraphModel = /** @class */ (function () {
|
|
|
1564
1588
|
__decorate([
|
|
1565
1589
|
mobx_1.computed
|
|
1566
1590
|
], GraphModel.prototype, "selectNodes", null);
|
|
1591
|
+
__decorate([
|
|
1592
|
+
mobx_1.action
|
|
1593
|
+
], GraphModel.prototype, "setOverlapMode", null);
|
|
1567
1594
|
__decorate([
|
|
1568
1595
|
mobx_1.action
|
|
1569
1596
|
], GraphModel.prototype, "setTextMode", null);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseNodeModel, GraphModel, Model } from '..';
|
|
2
2
|
import LogicFlow from '../../LogicFlow';
|
|
3
|
-
import { ElementState, ElementType, ModelType, TextMode } from '../../constant';
|
|
3
|
+
import { ElementState, ElementType, ModelType, OverlapMode, TextMode } from '../../constant';
|
|
4
4
|
import Point = LogicFlow.Point;
|
|
5
5
|
import EdgeData = LogicFlow.EdgeData;
|
|
6
6
|
import EdgeConfig = LogicFlow.EdgeConfig;
|
|
@@ -271,5 +271,6 @@ export declare class BaseEdgeModel<P extends PropertiesType = PropertiesType> im
|
|
|
271
271
|
getAdjustStart(): LogicFlow.Point;
|
|
272
272
|
getAdjustEnd(): LogicFlow.Point;
|
|
273
273
|
updateAfterAdjustStartAndEnd({ startPoint, endPoint, }: Record<'startPoint' | 'endPoint', Point>): void;
|
|
274
|
+
updateZIndexByOverlap(overlapMode: OverlapMode, defaultZIndex: any): void;
|
|
274
275
|
}
|
|
275
276
|
export default BaseEdgeModel;
|
|
@@ -76,6 +76,7 @@ var BaseEdgeModel = /** @class */ (function () {
|
|
|
76
76
|
* setAttributes除了初始化调用外,还会在properties发生变化后调用。
|
|
77
77
|
*/
|
|
78
78
|
BaseEdgeModel.prototype.initEdgeData = function (data) {
|
|
79
|
+
var _this = this;
|
|
79
80
|
if (!data.properties) {
|
|
80
81
|
data.properties = {};
|
|
81
82
|
}
|
|
@@ -91,10 +92,8 @@ var BaseEdgeModel = /** @class */ (function () {
|
|
|
91
92
|
var adjustEdgeStartAndEnd = this.graphModel.editConfigModel.adjustEdgeStartAndEnd;
|
|
92
93
|
this.isShowAdjustPoint = adjustEdgeStartAndEnd;
|
|
93
94
|
(0, lodash_es_1.assign)(this, (0, util_1.pickEdgeConfig)(data));
|
|
94
|
-
var
|
|
95
|
-
|
|
96
|
-
this.zIndex = data.zIndex || (0, util_1.getZIndex)();
|
|
97
|
-
}
|
|
95
|
+
var _a = this.graphModel, overlapMode = _a.overlapMode, eventCenter = _a.eventCenter;
|
|
96
|
+
this.updateZIndexByOverlap(overlapMode, data.zIndex || (0, util_1.getZIndex)());
|
|
98
97
|
// 设置边的 anchors,也就是边的两个端点
|
|
99
98
|
// 端点依赖于 edgeData 的 sourceNode 和 targetNode
|
|
100
99
|
this.setAnchors();
|
|
@@ -102,6 +101,10 @@ var BaseEdgeModel = /** @class */ (function () {
|
|
|
102
101
|
this.initPoints();
|
|
103
102
|
// 文本位置依赖于边上的所有拐点
|
|
104
103
|
this.formatText(data);
|
|
104
|
+
eventCenter.on('overlap:change', function (data) {
|
|
105
|
+
var newMode = data.overlapMode;
|
|
106
|
+
_this.updateZIndexByOverlap(newMode, _this.zIndex || (0, util_1.getZIndex)());
|
|
107
|
+
});
|
|
105
108
|
};
|
|
106
109
|
/**
|
|
107
110
|
* 设置model属性
|
|
@@ -325,7 +328,9 @@ var BaseEdgeModel = /** @class */ (function () {
|
|
|
325
328
|
startPoint: (0, lodash_es_1.assign)({}, this.startPoint),
|
|
326
329
|
endPoint: (0, lodash_es_1.assign)({}, this.endPoint),
|
|
327
330
|
};
|
|
328
|
-
|
|
331
|
+
// 因为默认模式和边在上模式下,对节点的zIndex要求不高(因为渲染的时候会按照模式对所有元素进行排序)
|
|
332
|
+
// 所以只在递增模式和静态模式下设置zIndex
|
|
333
|
+
if ([constant_1.OverlapMode.INCREASE, constant_1.OverlapMode.STATIC].includes(this.graphModel.overlapMode)) {
|
|
329
334
|
data.zIndex = this.zIndex;
|
|
330
335
|
}
|
|
331
336
|
var _a = this.text, x = _a.x, y = _a.y, value = _a.value;
|
|
@@ -589,6 +594,22 @@ var BaseEdgeModel = /** @class */ (function () {
|
|
|
589
594
|
this.updateStartPoint({ x: startPoint.x, y: startPoint.y });
|
|
590
595
|
this.updateEndPoint({ x: endPoint.x, y: endPoint.y });
|
|
591
596
|
};
|
|
597
|
+
// 堆叠模式变化时,更新zIndex
|
|
598
|
+
BaseEdgeModel.prototype.updateZIndexByOverlap = function (overlapMode, defaultZIndex) {
|
|
599
|
+
switch (overlapMode) {
|
|
600
|
+
case constant_1.OverlapMode.DEFAULT:
|
|
601
|
+
this.zIndex = 0;
|
|
602
|
+
break;
|
|
603
|
+
case constant_1.OverlapMode.EDGE_TOP:
|
|
604
|
+
this.zIndex = 1;
|
|
605
|
+
break;
|
|
606
|
+
case constant_1.OverlapMode.INCREASE:
|
|
607
|
+
this.zIndex = defaultZIndex;
|
|
608
|
+
break;
|
|
609
|
+
default:
|
|
610
|
+
break;
|
|
611
|
+
}
|
|
612
|
+
};
|
|
592
613
|
BaseEdgeModel.BaseType = constant_1.ElementType.EDGE;
|
|
593
614
|
__decorate([
|
|
594
615
|
mobx_1.observable
|
|
@@ -758,6 +779,9 @@ var BaseEdgeModel = /** @class */ (function () {
|
|
|
758
779
|
__decorate([
|
|
759
780
|
mobx_1.action
|
|
760
781
|
], BaseEdgeModel.prototype, "updateAfterAdjustStartAndEnd", null);
|
|
782
|
+
__decorate([
|
|
783
|
+
mobx_1.action
|
|
784
|
+
], BaseEdgeModel.prototype, "updateZIndexByOverlap", null);
|
|
761
785
|
return BaseEdgeModel;
|
|
762
786
|
}());
|
|
763
787
|
exports.BaseEdgeModel = BaseEdgeModel;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GraphModel, Model } from '..';
|
|
2
2
|
import LogicFlow from '../../LogicFlow';
|
|
3
|
-
import { ElementState, ElementType, ModelType, TextMode } from '../../constant';
|
|
3
|
+
import { ElementState, ElementType, ModelType, OverlapMode, TextMode } from '../../constant';
|
|
4
4
|
import { ResizeControl } from '../../view/Control';
|
|
5
5
|
import AnchorConfig = Model.AnchorConfig;
|
|
6
6
|
import GraphElements = LogicFlow.GraphElements;
|
|
@@ -288,6 +288,7 @@ export declare class BaseNodeModel<P extends PropertiesType = PropertiesType> im
|
|
|
288
288
|
updateStyles(styles: Record<string, any>): void;
|
|
289
289
|
setZIndex(zIndex?: number): void;
|
|
290
290
|
updateAttributes(attributes: any): void;
|
|
291
|
+
updateZIndexByOverlap(overlapMode: OverlapMode, defaultZIndex: any): void;
|
|
291
292
|
}
|
|
292
293
|
export declare namespace BaseNodeModel {
|
|
293
294
|
type PointTuple = [number, number];
|
|
@@ -175,6 +175,7 @@ var BaseNodeModel = /** @class */ (function () {
|
|
|
175
175
|
* setAttributes 除了初始化调用外,还会在 properties 发生变化了调用。
|
|
176
176
|
*/
|
|
177
177
|
BaseNodeModel.prototype.initNodeData = function (data) {
|
|
178
|
+
var _this = this;
|
|
178
179
|
if (!data.properties) {
|
|
179
180
|
data.properties = {};
|
|
180
181
|
}
|
|
@@ -189,10 +190,12 @@ var BaseNodeModel = /** @class */ (function () {
|
|
|
189
190
|
// 在下面又将 NodeConfig 中的数据赋值给了 this,应该会触发 setAttributes,确认是否符合预期
|
|
190
191
|
// TODO: 确认 constructor 中赋值 properties 是否必要,此处将 NodeConfig 中所有属性赋值给 this,包括 rotate、rotatable,resizable 等
|
|
191
192
|
(0, lodash_es_1.assign)(this, (0, util_1.pickNodeConfig)(data));
|
|
192
|
-
var
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
193
|
+
var _a = this.graphModel, overlapMode = _a.overlapMode, eventCenter = _a.eventCenter;
|
|
194
|
+
this.updateZIndexByOverlap(overlapMode, data.zIndex || (0, util_1.getZIndex)());
|
|
195
|
+
eventCenter.on('overlap:change', function (data) {
|
|
196
|
+
var newMode = data.overlapMode;
|
|
197
|
+
_this.updateZIndexByOverlap(newMode, _this.zIndex || (0, util_1.getZIndex)());
|
|
198
|
+
});
|
|
196
199
|
};
|
|
197
200
|
/**
|
|
198
201
|
* 设置model属性,每次properties发生变化会触发
|
|
@@ -305,7 +308,9 @@ var BaseNodeModel = /** @class */ (function () {
|
|
|
305
308
|
if (this.rotate) {
|
|
306
309
|
data.rotate = this.rotate;
|
|
307
310
|
}
|
|
308
|
-
|
|
311
|
+
// 因为默认模式和节点在上模式下,对边的zIndex要求不高(因为渲染的时候会按照模式对所有元素进行排序)
|
|
312
|
+
// 所以只在递增模式和静态模式下设置zIndex
|
|
313
|
+
if ([constant_1.OverlapMode.INCREASE, constant_1.OverlapMode.STATIC].includes(this.graphModel.overlapMode)) {
|
|
309
314
|
data.zIndex = this.zIndex;
|
|
310
315
|
}
|
|
311
316
|
if (value) {
|
|
@@ -794,6 +799,22 @@ var BaseNodeModel = /** @class */ (function () {
|
|
|
794
799
|
BaseNodeModel.prototype.updateAttributes = function (attributes) {
|
|
795
800
|
(0, lodash_es_1.assign)(this, attributes);
|
|
796
801
|
};
|
|
802
|
+
// 堆叠模式变化时,更新zIndex
|
|
803
|
+
BaseNodeModel.prototype.updateZIndexByOverlap = function (overlapMode, defaultZIndex) {
|
|
804
|
+
switch (overlapMode) {
|
|
805
|
+
case constant_1.OverlapMode.DEFAULT:
|
|
806
|
+
this.zIndex = 1;
|
|
807
|
+
break;
|
|
808
|
+
case constant_1.OverlapMode.EDGE_TOP:
|
|
809
|
+
this.zIndex = 0;
|
|
810
|
+
break;
|
|
811
|
+
case constant_1.OverlapMode.INCREASE:
|
|
812
|
+
this.zIndex = defaultZIndex;
|
|
813
|
+
break;
|
|
814
|
+
default:
|
|
815
|
+
break;
|
|
816
|
+
}
|
|
817
|
+
};
|
|
797
818
|
BaseNodeModel.BaseType = constant_1.ElementType.NODE;
|
|
798
819
|
__decorate([
|
|
799
820
|
mobx_1.observable
|
|
@@ -948,6 +969,9 @@ var BaseNodeModel = /** @class */ (function () {
|
|
|
948
969
|
__decorate([
|
|
949
970
|
mobx_1.action
|
|
950
971
|
], BaseNodeModel.prototype, "updateAttributes", null);
|
|
972
|
+
__decorate([
|
|
973
|
+
mobx_1.action
|
|
974
|
+
], BaseNodeModel.prototype, "updateZIndexByOverlap", null);
|
|
951
975
|
return BaseNodeModel;
|
|
952
976
|
}());
|
|
953
977
|
exports.BaseNodeModel = BaseNodeModel;
|
|
@@ -5,7 +5,7 @@ export default class MultipleSelect extends Component<IToolProps> {
|
|
|
5
5
|
static toolName: string;
|
|
6
6
|
stepDrag: StepDrag;
|
|
7
7
|
constructor(props: IToolProps);
|
|
8
|
-
handleMouseDown: (ev:
|
|
8
|
+
handleMouseDown: (ev: PointerEvent) => void;
|
|
9
9
|
handleWheelEvent: (ev: WheelEvent) => void;
|
|
10
10
|
onDragging: ({ deltaX, deltaY }: IDragParams) => void;
|
|
11
11
|
handleContextMenu: (ev: MouseEvent) => void;
|
|
@@ -149,7 +149,7 @@ var MultipleSelect = /** @class */ (function (_super) {
|
|
|
149
149
|
height: "".concat(y1 - y + 20 * SCALE_Y, "px"),
|
|
150
150
|
'border-width': "".concat(2 * SCALE_X, "px"),
|
|
151
151
|
};
|
|
152
|
-
return ((0, jsx_runtime_1.jsx)("div", { className: "lf-multiple-select", style: style,
|
|
152
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "lf-multiple-select", style: style, onPointerDown: this.handleMouseDown, onContextMenu: this.handleContextMenu, onWheel: this.handleWheelEvent }));
|
|
153
153
|
};
|
|
154
154
|
MultipleSelect.toolName = 'multiple-select-tool';
|
|
155
155
|
MultipleSelect = __decorate([
|
package/lib/util/drag.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import EventEmitter from '../event/eventEmitter';
|
|
|
3
3
|
export type IDragParams = {
|
|
4
4
|
deltaX: number;
|
|
5
5
|
deltaY: number;
|
|
6
|
-
event?:
|
|
6
|
+
event?: PointerEvent;
|
|
7
7
|
[key: string]: unknown;
|
|
8
8
|
};
|
|
9
9
|
export type ICreateDragParams = {
|
|
@@ -40,9 +40,9 @@ export declare class StepDrag {
|
|
|
40
40
|
constructor({ onDragStart, onDragging, onDragEnd, eventType, eventCenter, step, isStopPropagation, model, data, }: IStepperDragProps);
|
|
41
41
|
setStep(step: number): void;
|
|
42
42
|
setModel(model: Model.BaseModel): void;
|
|
43
|
-
handleMouseDown: (e:
|
|
44
|
-
handleMouseMove: (e:
|
|
45
|
-
handleMouseUp: (e:
|
|
43
|
+
handleMouseDown: (e: PointerEvent) => void;
|
|
44
|
+
handleMouseMove: (e: PointerEvent) => void;
|
|
45
|
+
handleMouseUp: (e: PointerEvent) => void;
|
|
46
46
|
cancelDrag: () => void;
|
|
47
47
|
destroy: () => void;
|
|
48
48
|
}
|
package/lib/util/drag.js
CHANGED
|
@@ -26,11 +26,12 @@ var StepDrag = /** @class */ (function () {
|
|
|
26
26
|
return;
|
|
27
27
|
if (_this.isStopPropagation)
|
|
28
28
|
e.stopPropagation();
|
|
29
|
+
e.preventDefault();
|
|
29
30
|
_this.isStartDragging = true;
|
|
30
31
|
_this.startX = e.clientX;
|
|
31
32
|
_this.startY = e.clientY;
|
|
32
|
-
DOC.addEventListener('
|
|
33
|
-
DOC.addEventListener('
|
|
33
|
+
DOC.addEventListener('pointermove', _this.handleMouseMove, false);
|
|
34
|
+
DOC.addEventListener('pointerup', _this.handleMouseUp, false);
|
|
34
35
|
var elementData = (_a = _this.model) === null || _a === void 0 ? void 0 : _a.getData();
|
|
35
36
|
(_b = _this.eventCenter) === null || _b === void 0 ? void 0 : _b.emit(constant_1.EventType["".concat(_this.eventType, "_MOUSEDOWN")], {
|
|
36
37
|
e: e,
|
|
@@ -42,6 +43,7 @@ var StepDrag = /** @class */ (function () {
|
|
|
42
43
|
var _a, _b;
|
|
43
44
|
if (_this.isStopPropagation)
|
|
44
45
|
e.stopPropagation();
|
|
46
|
+
e.preventDefault();
|
|
45
47
|
if (!_this.isStartDragging)
|
|
46
48
|
return;
|
|
47
49
|
_this.sumDeltaX += e.clientX - _this.startX;
|
|
@@ -97,11 +99,15 @@ var StepDrag = /** @class */ (function () {
|
|
|
97
99
|
_this.isStartDragging = false;
|
|
98
100
|
if (_this.isStopPropagation)
|
|
99
101
|
e.stopPropagation();
|
|
102
|
+
var target = e.target;
|
|
103
|
+
if (target && typeof target.releasePointerCapture === 'function') {
|
|
104
|
+
target.releasePointerCapture(e.pointerId);
|
|
105
|
+
}
|
|
100
106
|
// fix #568: 如果onDragging在下一个事件循环中触发,而drop在当前事件循环,会出现问题。
|
|
101
107
|
Promise.resolve().then(function () {
|
|
102
108
|
var _a, _b, _c;
|
|
103
|
-
DOC.removeEventListener('
|
|
104
|
-
DOC.removeEventListener('
|
|
109
|
+
DOC.removeEventListener('pointermove', _this.handleMouseMove, false);
|
|
110
|
+
DOC.removeEventListener('pointerup', _this.handleMouseUp, false);
|
|
105
111
|
var elementData = (_a = _this.model) === null || _a === void 0 ? void 0 : _a.getData();
|
|
106
112
|
(_b = _this.eventCenter) === null || _b === void 0 ? void 0 : _b.emit(constant_1.EventType["".concat(_this.eventType, "_MOUSEUP")], {
|
|
107
113
|
e: e,
|
|
@@ -119,8 +125,8 @@ var StepDrag = /** @class */ (function () {
|
|
|
119
125
|
};
|
|
120
126
|
this.cancelDrag = function () {
|
|
121
127
|
var DOC = window === null || window === void 0 ? void 0 : window.document;
|
|
122
|
-
DOC.removeEventListener('
|
|
123
|
-
DOC.removeEventListener('
|
|
128
|
+
DOC.removeEventListener('pointermove', _this.handleMouseMove, false);
|
|
129
|
+
DOC.removeEventListener('pointerup', _this.handleMouseUp, false);
|
|
124
130
|
_this.onDragEnd({ event: undefined });
|
|
125
131
|
_this.isDragging = false;
|
|
126
132
|
};
|
package/lib/view/Anchor.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ interface IProps {
|
|
|
13
13
|
anchorIndex: number;
|
|
14
14
|
graphModel: GraphModel;
|
|
15
15
|
nodeModel: BaseNodeModel;
|
|
16
|
-
setHoverOff: (e:
|
|
16
|
+
setHoverOff: (e: PointerEvent) => void;
|
|
17
17
|
}
|
|
18
18
|
interface IState {
|
|
19
19
|
startX: number;
|
|
@@ -38,8 +38,8 @@ declare class Anchor extends Component<IProps, IState> {
|
|
|
38
38
|
incomingEdgeList: import("../model").BaseEdgeModel<LogicFlow.PropertiesType>[];
|
|
39
39
|
outgoingEdgeList: import("../model").BaseEdgeModel<LogicFlow.PropertiesType>[];
|
|
40
40
|
};
|
|
41
|
-
checkEnd: (event:
|
|
42
|
-
moveAnchorEnd(endX: number, endY: number): void;
|
|
41
|
+
checkEnd: (event: PointerEvent | null | undefined) => import("../model").BaseEdgeModel<LogicFlow.PropertiesType> | null | undefined;
|
|
42
|
+
moveAnchorEnd(endX: number, endY: number, event?: PointerEvent): void;
|
|
43
43
|
isShowLine(): boolean;
|
|
44
44
|
render(): import("preact/compat").JSX.Element;
|
|
45
45
|
}
|
package/lib/view/Anchor.js
CHANGED
|
@@ -105,7 +105,7 @@ var Anchor = /** @class */ (function (_super) {
|
|
|
105
105
|
endY: y1,
|
|
106
106
|
dragging: true,
|
|
107
107
|
});
|
|
108
|
-
_this.moveAnchorEnd(x1, y1);
|
|
108
|
+
_this.moveAnchorEnd(x1, y1, event);
|
|
109
109
|
if (nearBoundary.length > 0 && !stopMoveGraph && autoExpand) {
|
|
110
110
|
_this.t = (0, util_1.createRaf)(function () {
|
|
111
111
|
var _a = __read(nearBoundary, 2), translateX = _a[0], translateY = _a[1];
|
|
@@ -115,7 +115,7 @@ var Anchor = /** @class */ (function (_super) {
|
|
|
115
115
|
endX: endX - translateX,
|
|
116
116
|
endY: endY - translateY,
|
|
117
117
|
});
|
|
118
|
-
_this.moveAnchorEnd(endX - translateX, endY - translateY);
|
|
118
|
+
_this.moveAnchorEnd(endX - translateX, endY - translateY, event);
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
eventCenter.emit(constant_1.EventType.ANCHOR_DRAG, {
|
|
@@ -141,6 +141,11 @@ var Anchor = /** @class */ (function (_super) {
|
|
|
141
141
|
_this.sourceRuleResults.clear();
|
|
142
142
|
_this.targetRuleResults.clear();
|
|
143
143
|
var _b = _this.props, graphModel = _b.graphModel, nodeModel = _b.nodeModel, anchorData = _b.anchorData;
|
|
144
|
+
// 拖拽结束清理:取消悬浮态
|
|
145
|
+
if (_this.preTargetNode) {
|
|
146
|
+
_this.preTargetNode.setHovered(false);
|
|
147
|
+
_this.preTargetNode = undefined;
|
|
148
|
+
}
|
|
144
149
|
graphModel.eventCenter.emit(constant_1.EventType.ANCHOR_DRAGEND, {
|
|
145
150
|
data: anchorData,
|
|
146
151
|
e: event,
|
|
@@ -244,7 +249,7 @@ var Anchor = /** @class */ (function (_super) {
|
|
|
244
249
|
enumerable: false,
|
|
245
250
|
configurable: true
|
|
246
251
|
});
|
|
247
|
-
Anchor.prototype.moveAnchorEnd = function (endX, endY) {
|
|
252
|
+
Anchor.prototype.moveAnchorEnd = function (endX, endY, event) {
|
|
248
253
|
var _a, _b;
|
|
249
254
|
var _c = this.props, graphModel = _c.graphModel, nodeModel = _c.nodeModel, anchorData = _c.anchorData;
|
|
250
255
|
var info = (0, util_1.targetNodeInfo)({
|
|
@@ -281,11 +286,32 @@ var Anchor = /** @class */ (function (_super) {
|
|
|
281
286
|
else {
|
|
282
287
|
targetNode.setElementState(constant_1.ElementState.NOT_ALLOW_CONNECT);
|
|
283
288
|
}
|
|
289
|
+
// 人工触发进入目标节点事件,同步设置 hovered 以驱动锚点显隐和样式
|
|
290
|
+
if (!targetNode.isHovered) {
|
|
291
|
+
var nodeData = targetNode.getData();
|
|
292
|
+
if (event) {
|
|
293
|
+
graphModel.eventCenter.emit(constant_1.EventType.NODE_MOUSEENTER, {
|
|
294
|
+
data: nodeData,
|
|
295
|
+
e: event,
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
targetNode.setHovered(true);
|
|
299
|
+
}
|
|
284
300
|
}
|
|
285
301
|
else if (this.preTargetNode &&
|
|
286
302
|
this.preTargetNode.state !== constant_1.ElementState.DEFAULT) {
|
|
287
303
|
// 为了保证鼠标离开的时候,将上一个节点状态重置为正常状态。
|
|
288
304
|
this.preTargetNode.setElementState(constant_1.ElementState.DEFAULT);
|
|
305
|
+
// 未命中任何节点:人工派发离开事件并取消悬浮,避免状态残留
|
|
306
|
+
var prevData = this.preTargetNode.getData();
|
|
307
|
+
if (event) {
|
|
308
|
+
graphModel.eventCenter.emit(constant_1.EventType.NODE_MOUSELEAVE, {
|
|
309
|
+
data: prevData,
|
|
310
|
+
e: event,
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
this.preTargetNode.setHovered(false);
|
|
314
|
+
this.preTargetNode = undefined;
|
|
289
315
|
}
|
|
290
316
|
};
|
|
291
317
|
Anchor.prototype.isShowLine = function () {
|
|
@@ -307,7 +333,7 @@ var Anchor = /** @class */ (function (_super) {
|
|
|
307
333
|
e: ev,
|
|
308
334
|
nodeModel: nodeModel,
|
|
309
335
|
});
|
|
310
|
-
},
|
|
336
|
+
}, onPointerDown: function (ev) {
|
|
311
337
|
graphModel.eventCenter.emit(constant_1.EventType.ANCHOR_MOUSEDOWN, {
|
|
312
338
|
data: anchorData,
|
|
313
339
|
e: ev,
|
package/lib/view/Control.js
CHANGED
|
@@ -349,7 +349,7 @@ var ResizeControl = /** @class */ (function (_super) {
|
|
|
349
349
|
ResizeControl.prototype.render = function () {
|
|
350
350
|
var _a = this.props, x = _a.x, y = _a.y, direction = _a.direction, model = _a.model;
|
|
351
351
|
var _b = model.getResizeControlStyle(), width = _b.width, height = _b.height, restStyle = __rest(_b, ["width", "height"]);
|
|
352
|
-
return ((0, jsx_runtime_1.jsxs)("g", { className: "lf-resize-control lf-resize-control-".concat(direction), children: [(0, jsx_runtime_1.jsx)(shape_1.Rect, __assign({ className: "lf-resize-control-content", x: x, y: y, width: width !== null && width !== void 0 ? width : 7, height: height !== null && height !== void 0 ? height : 7 }, restStyle)), (0, jsx_runtime_1.jsx)(shape_1.Rect, { className: "lf-resize-control-content", x: x, y: y, width: 25, height: 25, fill: "transparent", stroke: "transparent",
|
|
352
|
+
return ((0, jsx_runtime_1.jsxs)("g", { className: "lf-resize-control lf-resize-control-".concat(direction), children: [(0, jsx_runtime_1.jsx)(shape_1.Rect, __assign({ className: "lf-resize-control-content", x: x, y: y, width: width !== null && width !== void 0 ? width : 7, height: height !== null && height !== void 0 ? height : 7 }, restStyle)), (0, jsx_runtime_1.jsx)(shape_1.Rect, { className: "lf-resize-control-content", x: x, y: y, width: 25, height: 25, fill: "transparent", stroke: "transparent", onPointerDown: this.dragHandler.handleMouseDown })] }));
|
|
353
353
|
};
|
|
354
354
|
return ResizeControl;
|
|
355
355
|
}(compat_1.Component));
|
package/lib/view/Rotate.js
CHANGED
|
@@ -104,7 +104,7 @@ var RotateControlPoint = /** @class */ (function (_super) {
|
|
|
104
104
|
this.normal = new util_1.Vector(1, 0);
|
|
105
105
|
this.defaultAngle = this.normal.angle(new util_1.Vector(cx - x, cy - y));
|
|
106
106
|
nodeModel.defaultAngle = this.defaultAngle;
|
|
107
|
-
return ((0, jsx_runtime_1.jsx)("g", { className: "lf-rotate-control", children: (0, jsx_runtime_1.jsx)("g", {
|
|
107
|
+
return ((0, jsx_runtime_1.jsx)("g", { className: "lf-rotate-control", children: (0, jsx_runtime_1.jsx)("g", { onPointerDown: function (ev) {
|
|
108
108
|
_this.stepperDrag.handleMouseDown(ev);
|
|
109
109
|
}, children: (0, jsx_runtime_1.jsx)(Circle_1.default, __assign({}, this.style, { cx: cx, cy: cy })) }) }));
|
|
110
110
|
};
|
|
@@ -6,22 +6,18 @@ export declare class Dnd {
|
|
|
6
6
|
nodeConfig: OnDragNodeConfig | null;
|
|
7
7
|
lf: LogicFlow;
|
|
8
8
|
fakeNode: BaseNodeModel | null;
|
|
9
|
+
docPointerMove?: (e: PointerEvent) => void;
|
|
10
|
+
docPointerUp?: (e: PointerEvent) => void;
|
|
9
11
|
constructor(params: {
|
|
10
12
|
lf: LogicFlow;
|
|
11
13
|
});
|
|
12
14
|
clientToLocalPoint({ x, y }: Position): Position;
|
|
15
|
+
isInsideCanvas(e: PointerEvent): boolean;
|
|
13
16
|
startDrag(nodeConfig: OnDragNodeConfig): void;
|
|
14
17
|
stopDrag: () => void;
|
|
15
|
-
dragEnter: (e:
|
|
18
|
+
dragEnter: (e: PointerEvent) => void;
|
|
16
19
|
onDragOver: (e: MouseEvent) => boolean;
|
|
17
20
|
onDragLeave: () => void;
|
|
18
21
|
onDrop: (e: MouseEvent) => void;
|
|
19
|
-
eventMap(): {
|
|
20
|
-
onMouseEnter: (e: MouseEvent) => void;
|
|
21
|
-
onMouseOver: (e: MouseEvent) => void;
|
|
22
|
-
onMouseMove: (e: MouseEvent) => boolean;
|
|
23
|
-
onMouseLeave: () => void;
|
|
24
|
-
onMouseUp: (e: MouseEvent) => void;
|
|
25
|
-
};
|
|
26
22
|
}
|
|
27
23
|
export default Dnd;
|
package/lib/view/behavior/dnd.js
CHANGED
|
@@ -22,7 +22,12 @@ var Dnd = /** @class */ (function () {
|
|
|
22
22
|
this.fakeNode = null;
|
|
23
23
|
this.stopDrag = function () {
|
|
24
24
|
_this.nodeConfig = null;
|
|
25
|
-
|
|
25
|
+
if (_this.docPointerMove) {
|
|
26
|
+
window.document.removeEventListener('pointermove', _this.docPointerMove);
|
|
27
|
+
}
|
|
28
|
+
if (_this.docPointerUp) {
|
|
29
|
+
window.document.removeEventListener('pointerup', _this.docPointerUp);
|
|
30
|
+
}
|
|
26
31
|
};
|
|
27
32
|
this.dragEnter = function (e) {
|
|
28
33
|
if (!_this.nodeConfig || _this.fakeNode)
|
|
@@ -94,22 +99,53 @@ var Dnd = /** @class */ (function () {
|
|
|
94
99
|
y: (0, util_1.snapToGrid)(y1, gridSize, snapGrid),
|
|
95
100
|
};
|
|
96
101
|
};
|
|
102
|
+
Dnd.prototype.isInsideCanvas = function (e) {
|
|
103
|
+
var overlay = this.lf.graphModel.rootEl.querySelector('[name="canvas-overlay"]');
|
|
104
|
+
var topEl = window.document.elementFromPoint(e.clientX, e.clientY);
|
|
105
|
+
return (topEl === overlay ||
|
|
106
|
+
(topEl !== null && !!overlay && overlay.contains(topEl)));
|
|
107
|
+
};
|
|
97
108
|
Dnd.prototype.startDrag = function (nodeConfig) {
|
|
109
|
+
var _this = this;
|
|
98
110
|
var editConfigModel = this.lf.graphModel.editConfigModel;
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
if (editConfigModel === null || editConfigModel === void 0 ? void 0 : editConfigModel.isSilentMode)
|
|
112
|
+
return;
|
|
113
|
+
this.nodeConfig = nodeConfig;
|
|
114
|
+
// 指针移动:根据命中结果判断是否在画布覆盖层上,驱动假节点创建/移动或清理
|
|
115
|
+
this.docPointerMove = function (e) {
|
|
116
|
+
if (!_this.nodeConfig)
|
|
117
|
+
return;
|
|
118
|
+
// 离开画布:清理吸附线与假节点
|
|
119
|
+
if (!_this.isInsideCanvas(e)) {
|
|
120
|
+
_this.onDragLeave();
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
// 首次进入画布:创建假节点并初始化位置
|
|
124
|
+
if (!_this.fakeNode) {
|
|
125
|
+
_this.dragEnter(e);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
// 在画布内移动:更新假节点位置与吸附线
|
|
129
|
+
_this.onDragOver(e);
|
|
130
|
+
};
|
|
131
|
+
// 指针抬起:在画布内落点生成节点,否则清理假节点
|
|
132
|
+
this.docPointerUp = function (e) {
|
|
133
|
+
if (!_this.nodeConfig)
|
|
134
|
+
return;
|
|
135
|
+
if (_this.isInsideCanvas(e)) {
|
|
136
|
+
_this.onDrop(e);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
_this.onDragLeave();
|
|
140
|
+
}
|
|
141
|
+
// 阻止默认行为与冒泡,避免滚动/点击穿透
|
|
142
|
+
e.preventDefault();
|
|
143
|
+
e.stopPropagation();
|
|
144
|
+
// 结束拖拽并移除监听
|
|
145
|
+
_this.stopDrag();
|
|
112
146
|
};
|
|
147
|
+
window.document.addEventListener('pointermove', this.docPointerMove);
|
|
148
|
+
window.document.addEventListener('pointerup', this.docPointerUp);
|
|
113
149
|
};
|
|
114
150
|
return Dnd;
|
|
115
151
|
}());
|
|
@@ -34,7 +34,7 @@ export declare class AdjustPoint extends Component<IProps, IState> {
|
|
|
34
34
|
targetRuleResults: Map<any, any>;
|
|
35
35
|
sourceRuleResults: Map<any, any>;
|
|
36
36
|
constructor(props: IProps);
|
|
37
|
-
handleMouseDown: (ev:
|
|
37
|
+
handleMouseDown: (ev: PointerEvent) => void;
|
|
38
38
|
onDragStart: () => void;
|
|
39
39
|
onDragging: ({ deltaX, deltaY }: IDragParams) => void;
|
|
40
40
|
onDragEnd: ({ event }: Partial<IDragParams>) => void;
|
|
@@ -351,7 +351,7 @@ var AdjustPoint = /** @class */ (function (_super) {
|
|
|
351
351
|
AdjustPoint.prototype.render = function () {
|
|
352
352
|
var _a = this.props, x = _a.x, y = _a.y, getAdjustPointShape = _a.getAdjustPointShape, edgeModel = _a.edgeModel;
|
|
353
353
|
var dragging = this.state.dragging;
|
|
354
|
-
return ((0, jsx_runtime_1.jsx)("g", { pointerEvents: dragging ? 'none' : '',
|
|
354
|
+
return ((0, jsx_runtime_1.jsx)("g", { pointerEvents: dragging ? 'none' : '', onPointerDown: this.handleMouseDown, children: !dragging ? getAdjustPointShape(x, y, edgeModel) : '' }));
|
|
355
355
|
};
|
|
356
356
|
return AdjustPoint;
|
|
357
357
|
}(compat_1.Component));
|
|
@@ -17,6 +17,7 @@ export declare abstract class BaseEdge<P extends IProps> extends Component<P, IE
|
|
|
17
17
|
startTime?: number;
|
|
18
18
|
contextMenuTime?: number;
|
|
19
19
|
clickTimer?: number;
|
|
20
|
+
longPressTimer?: number;
|
|
20
21
|
textRef: import("preact").RefObject<any>;
|
|
21
22
|
constructor();
|
|
22
23
|
/**
|
|
@@ -131,7 +132,7 @@ export declare abstract class BaseEdge<P extends IProps> extends Component<P, IE
|
|
|
131
132
|
/**
|
|
132
133
|
* 不支持重写
|
|
133
134
|
*/
|
|
134
|
-
handleMouseDown: (e:
|
|
135
|
+
handleMouseDown: (e: PointerEvent) => void;
|
|
135
136
|
handleMouseUp: () => void;
|
|
136
137
|
/**
|
|
137
138
|
* 不支持重写
|