@logicflow/core 1.2.0-next.2 → 1.2.0-next.4

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.
@@ -20659,7 +20659,7 @@ var EditConfigModel_EditConfigModel = (_class = /*#__PURE__*/function () {
20659
20659
  enumerable: true,
20660
20660
  writable: true,
20661
20661
  initializer: function initializer() {
20662
- return true;
20662
+ return false;
20663
20663
  }
20664
20664
  }), _applyDecoratedDescriptor(_class.prototype, "updateEditConfig", [mobx_module["k" /* action */]], Object.getOwnPropertyDescriptor(_class.prototype, "updateEditConfig"), _class.prototype)), _class);
20665
20665
 
@@ -27305,18 +27305,10 @@ var GraphModel_GraphModel = (GraphModel_class = /*#__PURE__*/function () {
27305
27305
  var nodeAsTarget = this.edges[i].targetNodeId === nodeId;
27306
27306
 
27307
27307
  if (nodeAsSource) {
27308
- // edgeModel.updateStartPoint({
27309
- // x: edgeModel.startPoint.x + deltaX,
27310
- // y: edgeModel.startPoint.y + deltaY,
27311
- // });
27312
27308
  edgeModel.moveStartPoint(deltaX, deltaY);
27313
27309
  }
27314
27310
 
27315
27311
  if (nodeAsTarget) {
27316
- // edgeModel.updateEndPoint({
27317
- // x: edgeModel.endPoint.x + deltaX,
27318
- // y: edgeModel.endPoint.y + deltaY,
27319
- // });
27320
27312
  edgeModel.moveEndPoint(deltaX, deltaY);
27321
27313
  } // 如果有文案了,当节点移动引起文案位置修改时,找出当前文案位置与最新边距离最短距离的点
27322
27314
  // 最大程度保持节点位置不变且在边上
@@ -27552,9 +27544,43 @@ var GraphModel_GraphModel = (GraphModel_class = /*#__PURE__*/function () {
27552
27544
  var _this2 = this;
27553
27545
 
27554
27546
  var isIgnoreRule = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
27555
- nodeIds.forEach(function (nodeId) {
27556
- return _this2.moveNode(nodeId, deltaX, deltaY, isIgnoreRule);
27557
- });
27547
+ // FIX: https://github.com/didi/LogicFlow/issues/1015
27548
+ // 如果节点之间存在连线,则只移动连线一次。
27549
+ var nodeIdMap = nodeIds.reduce(function (acc, cur) {
27550
+ var nodeModel = _this2.nodesMap[cur].model;
27551
+ var moveDistance = nodeModel.getMoveDistance(deltaX, deltaY, isIgnoreRule);
27552
+ acc[cur] = moveDistance;
27553
+ return acc;
27554
+ }, {});
27555
+
27556
+ for (var i = 0; i < this.edges.length; i++) {
27557
+ var edgeModel = this.edges[i];
27558
+ var sourceMoveDistance = nodeIdMap[edgeModel.sourceNodeId];
27559
+ var textDistanceX = void 0;
27560
+ var textDistanceY = void 0;
27561
+
27562
+ if (sourceMoveDistance) {
27563
+ var _sourceMoveDistance = GraphModel_slicedToArray(sourceMoveDistance, 2);
27564
+
27565
+ textDistanceX = _sourceMoveDistance[0];
27566
+ textDistanceY = _sourceMoveDistance[1];
27567
+ edgeModel.moveStartPoint(textDistanceX, textDistanceY);
27568
+ }
27569
+
27570
+ var targetMoveDistance = nodeIdMap[edgeModel.sourceNodeId];
27571
+
27572
+ if (targetMoveDistance) {
27573
+ var _targetMoveDistance = GraphModel_slicedToArray(targetMoveDistance, 2);
27574
+
27575
+ textDistanceX = _targetMoveDistance[0];
27576
+ textDistanceY = _targetMoveDistance[1];
27577
+ edgeModel.moveEndPoint(textDistanceX, textDistanceY);
27578
+ }
27579
+
27580
+ if (sourceMoveDistance || targetMoveDistance) {
27581
+ edgeModel.moveText(textDistanceX, textDistanceY);
27582
+ }
27583
+ }
27558
27584
  }
27559
27585
  /**
27560
27586
  * 添加节点移动限制规则,在节点移动的时候触发。
@@ -33486,7 +33512,9 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
33486
33512
  var eventOptions = {
33487
33513
  data: nodeData,
33488
33514
  e: e,
33489
- position: position
33515
+ position: position,
33516
+ isSelected: false,
33517
+ isMultiple: false
33490
33518
  };
33491
33519
  var isRightClick = e.button === 2; // 这里 IE 11不能正确显示
33492
33520
 
@@ -33495,10 +33523,15 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
33495
33523
  if (isRightClick) return;
33496
33524
  var editConfigModel = graphModel.editConfigModel; // 在multipleSelect tool禁用的情况下,允许取消选中节点
33497
33525
 
33498
- if (model.isSelected && !isDoubleClick && isMultipleSelect(e, editConfigModel)) {
33526
+ var isMultiple = isMultipleSelect(e, editConfigModel);
33527
+ eventOptions.isMultiple = isMultiple;
33528
+
33529
+ if (model.isSelected && !isDoubleClick && isMultiple) {
33530
+ eventOptions.isSelected = false;
33499
33531
  model.setSelected(false);
33500
33532
  } else {
33501
- graphModel.selectNodeById(model.id, isMultipleSelect(e, editConfigModel));
33533
+ graphModel.selectNodeById(model.id, isMultiple);
33534
+ eventOptions.isSelected = true;
33502
33535
 
33503
33536
  _this.toFront();
33504
33537
  } // 不是双击的,默认都是单击
@@ -34867,9 +34900,9 @@ var AdjustPoint_AdjustPoint = /*#__PURE__*/function (_Component) {
34867
34900
  endX: x,
34868
34901
  endY: y,
34869
34902
  dragging: true
34870
- });
34903
+ }); // 拖拽AdjustPoint时不修改edgeModel.isHitable,避免偶尔会出现边不能点击问题(https://github.com/didi/LogicFlow/issues/974)
34904
+ // edgeModel.isHitable = false;
34871
34905
 
34872
- edgeModel.isHitable = false;
34873
34906
  });
34874
34907
 
34875
34908
  AdjustPoint_defineProperty(AdjustPoint_assertThisInitialized(_this), "onDragging", function (_ref) {
@@ -34970,8 +35003,9 @@ var AdjustPoint_AdjustPoint = /*#__PURE__*/function (_Component) {
34970
35003
  var _this$props3 = _this.props,
34971
35004
  graphModel = _this$props3.graphModel,
34972
35005
  edgeModel = _this$props3.edgeModel,
34973
- type = _this$props3.type;
34974
- edgeModel.isHitable = true;
35006
+ type = _this$props3.type; // 拖拽AdjustPoint时不修改edgeModel.isHitable,避免偶尔会出现边不能点击问题(https://github.com/didi/LogicFlow/issues/974)
35007
+ // edgeModel.isHitable = true;
35008
+
34975
35009
  var _this$state2 = _this.state,
34976
35010
  endX = _this$state2.endX,
34977
35011
  endY = _this$state2.endY,
@@ -35279,6 +35313,8 @@ var BaseEdge_BaseEdge = /*#__PURE__*/function (_Component) {
35279
35313
 
35280
35314
  BaseEdge_defineProperty(BaseEdge_assertThisInitialized(_this), "clickTimer", void 0);
35281
35315
 
35316
+ BaseEdge_defineProperty(BaseEdge_assertThisInitialized(_this), "textRef", Object(preact_module["f" /* createRef */])());
35317
+
35282
35318
  BaseEdge_defineProperty(BaseEdge_assertThisInitialized(_this), "handleHover", function (hovered, ev) {
35283
35319
  var _this$props = _this.props,
35284
35320
  model = _this$props.model,
@@ -35296,11 +35332,16 @@ var BaseEdge_BaseEdge = /*#__PURE__*/function (_Component) {
35296
35332
  // ! hover多次触发, onMouseOver + onMouseEnter
35297
35333
  var isHovered = _this.props.model.isHovered;
35298
35334
  if (isHovered) return;
35335
+ _this.textRef && _this.textRef.current.setHoverON();
35299
35336
 
35300
35337
  _this.handleHover(true, ev);
35301
35338
  });
35302
35339
 
35303
35340
  BaseEdge_defineProperty(BaseEdge_assertThisInitialized(_this), "setHoverOFF", function (ev) {
35341
+ var isHovered = _this.props.model.isHovered;
35342
+ if (!isHovered) return;
35343
+ _this.textRef && _this.textRef.current.setHoverOFF();
35344
+
35304
35345
  _this.handleHover(false, ev);
35305
35346
  });
35306
35347
 
@@ -35452,6 +35493,7 @@ var BaseEdge_BaseEdge = /*#__PURE__*/function (_Component) {
35452
35493
  }
35453
35494
 
35454
35495
  return Object(preact_module["g" /* h */])(LineText_LineText, {
35496
+ ref: this.textRef,
35455
35497
  editable: editConfigModel.edgeTextEdit && model.text.editable,
35456
35498
  model: model,
35457
35499
  graphModel: graphModel,