@logicflow/core 1.2.0-alpha.8 → 1.2.0-next.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.
@@ -7043,7 +7043,7 @@ $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PR
7043
7043
  var $ = __webpack_require__(14);
7044
7044
  var getBuiltIn = __webpack_require__(43);
7045
7045
  var apply = __webpack_require__(73);
7046
- var bind = __webpack_require__(194);
7046
+ var bind = __webpack_require__(195);
7047
7047
  var aConstructor = __webpack_require__(153);
7048
7048
  var anObject = __webpack_require__(30);
7049
7049
  var isObject = __webpack_require__(31);
@@ -7455,7 +7455,7 @@ module.exports = function (argument) {
7455
7455
  /***/ (function(module, exports, __webpack_require__) {
7456
7456
 
7457
7457
  var $ = __webpack_require__(14);
7458
- var assign = __webpack_require__(196);
7458
+ var assign = __webpack_require__(194);
7459
7459
 
7460
7460
  // `Object.assign` method
7461
7461
  // https://tc39.es/ecma262/#sec-object.assign
@@ -7820,7 +7820,7 @@ var $ = __webpack_require__(14);
7820
7820
  var call = __webpack_require__(33);
7821
7821
  var isObject = __webpack_require__(31);
7822
7822
  var anObject = __webpack_require__(30);
7823
- var isDataDescriptor = __webpack_require__(195);
7823
+ var isDataDescriptor = __webpack_require__(196);
7824
7824
  var getOwnPropertyDescriptorModule = __webpack_require__(48);
7825
7825
  var getPrototypeOf = __webpack_require__(92);
7826
7826
 
@@ -11337,7 +11337,7 @@ module.exports.f = function (C) {
11337
11337
  /* 161 */
11338
11338
  /***/ (function(module) {
11339
11339
 
11340
- module.exports = JSON.parse("{\"a\":\"1.2.0-alpha.8\"}");
11340
+ module.exports = JSON.parse("{\"a\":\"1.2.0-alpha.16\"}");
11341
11341
 
11342
11342
  /***/ }),
11343
11343
  /* 162 */
@@ -13447,57 +13447,6 @@ module.exports = function (matched, str, position, captures, namedCaptures, repl
13447
13447
 
13448
13448
  "use strict";
13449
13449
 
13450
- var global = __webpack_require__(5);
13451
- var uncurryThis = __webpack_require__(13);
13452
- var aCallable = __webpack_require__(52);
13453
- var isObject = __webpack_require__(31);
13454
- var hasOwn = __webpack_require__(32);
13455
- var arraySlice = __webpack_require__(97);
13456
-
13457
- var Function = global.Function;
13458
- var concat = uncurryThis([].concat);
13459
- var join = uncurryThis([].join);
13460
- var factories = {};
13461
-
13462
- var construct = function (C, argsLength, args) {
13463
- if (!hasOwn(factories, argsLength)) {
13464
- for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';
13465
- factories[argsLength] = Function('C,a', 'return new C(' + join(list, ',') + ')');
13466
- } return factories[argsLength](C, args);
13467
- };
13468
-
13469
- // `Function.prototype.bind` method implementation
13470
- // https://tc39.es/ecma262/#sec-function.prototype.bind
13471
- module.exports = Function.bind || function bind(that /* , ...args */) {
13472
- var F = aCallable(this);
13473
- var Prototype = F.prototype;
13474
- var partArgs = arraySlice(arguments, 1);
13475
- var boundFunction = function bound(/* args... */) {
13476
- var args = concat(partArgs, arraySlice(arguments));
13477
- return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);
13478
- };
13479
- if (isObject(Prototype)) boundFunction.prototype = Prototype;
13480
- return boundFunction;
13481
- };
13482
-
13483
-
13484
- /***/ }),
13485
- /* 195 */
13486
- /***/ (function(module, exports, __webpack_require__) {
13487
-
13488
- var hasOwn = __webpack_require__(32);
13489
-
13490
- module.exports = function (descriptor) {
13491
- return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));
13492
- };
13493
-
13494
-
13495
- /***/ }),
13496
- /* 196 */
13497
- /***/ (function(module, exports, __webpack_require__) {
13498
-
13499
- "use strict";
13500
-
13501
13450
  var DESCRIPTORS = __webpack_require__(34);
13502
13451
  var uncurryThis = __webpack_require__(13);
13503
13452
  var call = __webpack_require__(33);
@@ -13556,6 +13505,57 @@ module.exports = !$assign || fails(function () {
13556
13505
  } : $assign;
13557
13506
 
13558
13507
 
13508
+ /***/ }),
13509
+ /* 195 */
13510
+ /***/ (function(module, exports, __webpack_require__) {
13511
+
13512
+ "use strict";
13513
+
13514
+ var global = __webpack_require__(5);
13515
+ var uncurryThis = __webpack_require__(13);
13516
+ var aCallable = __webpack_require__(52);
13517
+ var isObject = __webpack_require__(31);
13518
+ var hasOwn = __webpack_require__(32);
13519
+ var arraySlice = __webpack_require__(97);
13520
+
13521
+ var Function = global.Function;
13522
+ var concat = uncurryThis([].concat);
13523
+ var join = uncurryThis([].join);
13524
+ var factories = {};
13525
+
13526
+ var construct = function (C, argsLength, args) {
13527
+ if (!hasOwn(factories, argsLength)) {
13528
+ for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';
13529
+ factories[argsLength] = Function('C,a', 'return new C(' + join(list, ',') + ')');
13530
+ } return factories[argsLength](C, args);
13531
+ };
13532
+
13533
+ // `Function.prototype.bind` method implementation
13534
+ // https://tc39.es/ecma262/#sec-function.prototype.bind
13535
+ module.exports = Function.bind || function bind(that /* , ...args */) {
13536
+ var F = aCallable(this);
13537
+ var Prototype = F.prototype;
13538
+ var partArgs = arraySlice(arguments, 1);
13539
+ var boundFunction = function bound(/* args... */) {
13540
+ var args = concat(partArgs, arraySlice(arguments));
13541
+ return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);
13542
+ };
13543
+ if (isObject(Prototype)) boundFunction.prototype = Prototype;
13544
+ return boundFunction;
13545
+ };
13546
+
13547
+
13548
+ /***/ }),
13549
+ /* 196 */
13550
+ /***/ (function(module, exports, __webpack_require__) {
13551
+
13552
+ var hasOwn = __webpack_require__(32);
13553
+
13554
+ module.exports = function (descriptor) {
13555
+ return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));
13556
+ };
13557
+
13558
+
13559
13559
  /***/ }),
13560
13560
  /* 197 */
13561
13561
  /***/ (function(module, exports, __webpack_require__) {
@@ -20004,6 +20004,7 @@ var EventType;
20004
20004
  EventType["ANCHOR_DRAGSTART"] = "anchor:dragstart";
20005
20005
  EventType["ANCHOR_DRAG"] = "anchor:drag";
20006
20006
  EventType["ANCHOR_DROP"] = "anchor:drop";
20007
+ EventType["ANCHOR_DRAGEND"] = "anchor:dragend";
20007
20008
  EventType["BLANK_MOUSEDOWN"] = "blank:mousedown";
20008
20009
  EventType["BLANK_DRAGSTART"] = "blank:dragstart";
20009
20010
  EventType["BLANK_DRAG"] = "blank:drag";
@@ -21633,7 +21634,7 @@ var defaultTheme = {
21633
21634
  stroke: 'red',
21634
21635
  strokeDasharray: '10 10',
21635
21636
  strokeDashoffset: '100%',
21636
- animationName: 'dash',
21637
+ animationName: 'lf-dash',
21637
21638
  animationDuration: '20s',
21638
21639
  animationIterationCount: 'infinite',
21639
21640
  animationTimingFunction: 'linear',
@@ -21951,6 +21952,9 @@ var es_string_replace = __webpack_require__(122);
21951
21952
  // EXTERNAL MODULE: /Users/didi/niu-workspace/LogicFlow/node_modules/core-js/modules/es.number.max-safe-integer.js
21952
21953
  var es_number_max_safe_integer = __webpack_require__(77);
21953
21954
 
21955
+ // EXTERNAL MODULE: /Users/didi/niu-workspace/LogicFlow/node_modules/core-js/modules/es.object.assign.js
21956
+ var es_object_assign = __webpack_require__(27);
21957
+
21954
21958
  // EXTERNAL MODULE: /Users/didi/niu-workspace/LogicFlow/node_modules/core-js/modules/es.object.set-prototype-of.js
21955
21959
  var es_object_set_prototype_of = __webpack_require__(10);
21956
21960
 
@@ -21963,9 +21967,6 @@ var es_reflect_construct = __webpack_require__(12);
21963
21967
  // EXTERNAL MODULE: /Users/didi/niu-workspace/LogicFlow/node_modules/core-js/modules/es.reflect.get.js
21964
21968
  var es_reflect_get = __webpack_require__(44);
21965
21969
 
21966
- // EXTERNAL MODULE: /Users/didi/niu-workspace/LogicFlow/node_modules/core-js/modules/es.object.assign.js
21967
- var es_object_assign = __webpack_require__(27);
21968
-
21969
21970
  // CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/rng.js
21970
21971
  // Unique ID creation requires a high quality random # generator. In the browser we therefore
21971
21972
  // require the crypto API and do not support built-in fallback to lower quality random number
@@ -22497,7 +22498,8 @@ var node_getCrossPointWithPolygon = function getCrossPointWithPolygon(point, dir
22497
22498
  }; // 规范节点初始化数据
22498
22499
 
22499
22500
  var node_pickNodeConfig = function pickNodeConfig(data) {
22500
- var nodeData = lodash_es_pick(data, ['id', 'type', 'x', 'y', 'text', 'properties']);
22501
+ var nodeData = lodash_es_pick(data, ['id', 'type', 'x', 'y', 'text', 'properties', 'virtual' // 区域节点是否为dnd添加的虚拟节点
22502
+ ]);
22501
22503
  return nodeData;
22502
22504
  };
22503
22505
  /**
@@ -22824,6 +22826,15 @@ var BaseEdgeModel_BaseEdgeModel = /*#__PURE__*/function () {
22824
22826
  if (overlapMode === OverlapMode.INCREASE) {
22825
22827
  this.zIndex = data.zIndex || getZIndex();
22826
22828
  }
22829
+
22830
+ this.arrowConfig.markerEnd = "url(#marker-end-".concat(this.id, ")"); // 设置边的 anchors,也就是边的两个端点
22831
+ // 端点依赖于 edgeData 的 sourceNode 和 targetNode
22832
+
22833
+ this.setAnchors(); // 边的拐点依赖于两个端点
22834
+
22835
+ this.initPoints(); // 文本位置依赖于边上的所有拐点
22836
+
22837
+ this.formatText(data);
22827
22838
  }
22828
22839
  /**
22829
22840
  * 设置model属性,每次properties发生变化会触发
@@ -23048,6 +23059,12 @@ var BaseEdgeModel_BaseEdgeModel = /*#__PURE__*/function () {
23048
23059
  });
23049
23060
  this.setAttributes();
23050
23061
  }
23062
+ }, {
23063
+ key: "deleteProperty",
23064
+ value: function deleteProperty(key) {
23065
+ delete this.properties[key];
23066
+ this.setAttributes();
23067
+ }
23051
23068
  }, {
23052
23069
  key: "setProperties",
23053
23070
  value: function setProperties(properties) {
@@ -23057,6 +23074,23 @@ var BaseEdgeModel_BaseEdgeModel = /*#__PURE__*/function () {
23057
23074
  data: properties
23058
23075
  });
23059
23076
  this.setAttributes();
23077
+ }
23078
+ }, {
23079
+ key: "changeEdgeId",
23080
+ value: function changeEdgeId(id) {
23081
+ var _this$arrowConfig = this.arrowConfig,
23082
+ markerEnd = _this$arrowConfig.markerEnd,
23083
+ markerStart = _this$arrowConfig.markerStart;
23084
+
23085
+ if (markerStart && markerStart === "url(#marker-start-".concat(this.id, ")")) {
23086
+ this.arrowConfig.markerStart = "url(#marker-start-".concat(id, ")");
23087
+ }
23088
+
23089
+ if (markerEnd && markerEnd === "url(#marker-end-".concat(this.id, ")")) {
23090
+ this.arrowConfig.markerEnd = "url(#marker-end-".concat(id, ")");
23091
+ }
23092
+
23093
+ this.id = id;
23060
23094
  } // 设置样式
23061
23095
 
23062
23096
  }, {
@@ -23217,6 +23251,10 @@ var BaseEdgeModel_BaseEdgeModel = /*#__PURE__*/function () {
23217
23251
  value: function setSelected() {
23218
23252
  var flag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
23219
23253
  this.isSelected = flag;
23254
+
23255
+ if (this.graphModel.overlapMode === OverlapMode.DEFAULT) {
23256
+ this.zIndex = flag ? ElementMaxZIndex : 0;
23257
+ }
23220
23258
  }
23221
23259
  }, {
23222
23260
  key: "setHovered",
@@ -24000,7 +24038,6 @@ var PolylineEdgeModel_PolylineEdgeModel = /*#__PURE__*/function (_BaseEdgeModel)
24000
24038
  }
24001
24039
  }
24002
24040
 
24003
- draggingPointList = pointFilter(draggingPointList);
24004
24041
  this.updatePointsAfterDrag(draggingPointList); // step3: 调整到对应外框的位置后,执行updatePointsAfterDrag,找到当前线段和图形的准确交点
24005
24042
 
24006
24043
  this.draggingPointList = draggingPointList;
@@ -24029,7 +24066,7 @@ var PolylineEdgeModel_PolylineEdgeModel = /*#__PURE__*/function (_BaseEdgeModel)
24029
24066
  var _inNode2 = isInNode(_startPosition, this.sourceNode);
24030
24067
 
24031
24068
  if (!_inNode2) {
24032
- // FIXME: 如果某一条边上没有任何锚点,会有问题
24069
+ // FIXME: 如果某一节点上没有任何锚点,会有问题
24033
24070
  var _anchorList3 = this.sourceNode.anchors;
24034
24071
  _draggingPointList = this.getDraggingPoints(direction, 'start', _startPosition, _anchorList3, _draggingPointList);
24035
24072
  }
@@ -24049,7 +24086,6 @@ var PolylineEdgeModel_PolylineEdgeModel = /*#__PURE__*/function (_BaseEdgeModel)
24049
24086
  }
24050
24087
  }
24051
24088
 
24052
- _draggingPointList = pointFilter(_draggingPointList);
24053
24089
  this.updatePointsAfterDrag(_draggingPointList);
24054
24090
  this.draggingPointList = _draggingPointList;
24055
24091
  }
@@ -24067,7 +24103,7 @@ var PolylineEdgeModel_PolylineEdgeModel = /*#__PURE__*/function (_BaseEdgeModel)
24067
24103
  key: "dragAppendEnd",
24068
24104
  value: function dragAppendEnd() {
24069
24105
  if (this.draggingPointList) {
24070
- var pointsList = points2PointsList(this.points); // draggingPointList清空
24106
+ var pointsList = pointFilter(points2PointsList(this.points)); // draggingPointList清空
24071
24107
 
24072
24108
  this.draggingPointList = []; // 更新起终点
24073
24109
 
@@ -24194,6 +24230,27 @@ var getVerticalPointOfLine = function getVerticalPointOfLine(config) {
24194
24230
 
24195
24231
  return pointPosition;
24196
24232
  };
24233
+ // CONCATENATED MODULE: ./src/util/vector.ts
24234
+ var getDirectionVector = function getDirectionVector(point1, point2) {
24235
+ var a = point2.x - point1.x;
24236
+ var b = point2.y - point1.y;
24237
+
24238
+ if (a !== 0) {
24239
+ a = a / Math.abs(a);
24240
+ }
24241
+
24242
+ if (b !== 0) {
24243
+ b = b / Math.abs(b);
24244
+ }
24245
+
24246
+ return [a, b];
24247
+ };
24248
+ var isSameDirection = function isSameDirection(v1, v2) {
24249
+ return v1[0] === v2[0] && v1[1] === v2[1];
24250
+ };
24251
+ var isContraryDirection = function isContraryDirection(v1, v2) {
24252
+ return !(v1[0] + v2[0] || v1[1] + v2[1]);
24253
+ };
24197
24254
  // CONCATENATED MODULE: ./src/util/edge.ts
24198
24255
  function edge_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
24199
24256
 
@@ -24250,6 +24307,8 @@ function edge_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
24250
24307
 
24251
24308
 
24252
24309
 
24310
+
24311
+
24253
24312
 
24254
24313
 
24255
24314
 
@@ -24326,16 +24385,21 @@ var getExpandedBBox = function getExpandedBBox(bbox, offset) {
24326
24385
  */
24327
24386
 
24328
24387
  var edge_pointDirection = function pointDirection(point, node) {
24329
- var yDistance = point.y - node.y;
24330
- var xDistance = point.x - node.x;
24331
- if (yDistance === 0) return SegmentDirection.HORIZONTAL;
24332
- if (xDistance === 0) return SegmentDirection.VERTICAL;
24388
+ var dx = Math.abs(point.x - node.x);
24389
+ var dy = Math.abs(point.y - node.y);
24390
+ var width = node.width,
24391
+ height = node.height;
24392
+ var hDistance = width / 2 - dx; // 锚点距离节点左右两边的最小距离,值大于0表示在minX与maxX之间
24333
24393
 
24334
- if (point.x > node.x - node.width / 2 && point.x < node.x + node.width / 2) {
24335
- return SegmentDirection.VERTICAL;
24336
- }
24394
+ var vDistance = height / 2 - dy; // 锚点距离节点上下两边的最小距离,值大于0表示在minY与maxY之间
24395
+
24396
+ if (hDistance > 0 && vDistance > 0) {
24397
+ // 锚点在节点内部,寻找与锚点距离最近的边的方向
24398
+ return hDistance < vDistance ? SegmentDirection.HORIZONTAL : SegmentDirection.VERTICAL;
24399
+ } // 锚点在节点边上或者节点外部,比较锚点斜率(dy/dx)与节点斜率(height/width)
24337
24400
 
24338
- return SegmentDirection.HORIZONTAL;
24401
+
24402
+ return dx / node.width > dy / node.height ? SegmentDirection.HORIZONTAL : SegmentDirection.VERTICAL;
24339
24403
  };
24340
24404
  /* 获取扩展图形上的点,即起始终点相邻的点,上一个或者下一个节点 */
24341
24405
 
@@ -24985,14 +25049,58 @@ var edge_getBezierControlPoints = function getBezierControlPoints(_ref) {
24985
25049
  sourceNode = _ref.sourceNode,
24986
25050
  targetNode = _ref.targetNode,
24987
25051
  offset = _ref.offset;
25052
+ var nodeDistance = Math.max(Math.abs(sourceNode.x - targetNode.x), Math.abs(sourceNode.y - targetNode.y));
25053
+ offset = offset || nodeDistance / 4;
24988
25054
  var sBBox = getNodeBBox(sourceNode);
24989
25055
  var tBBox = getNodeBBox(targetNode);
24990
25056
  var sExpendBBox = getExpandedBBox(sBBox, offset);
24991
25057
  var tExpendBBox = getExpandedBBox(tBBox, offset);
24992
25058
  var sDirection = edge_pointDirection(start, sourceNode);
25059
+ var tDirection = edge_pointDirection(end, targetNode); // 1. 避免两个节点连出的多个连线重合。
25060
+ // 2. 避免开始节点和结束节点方向相同时成为一个穿过节点的直线。
25061
+
24993
25062
  var sNext = edge_getExpandedBBoxPoint(sExpendBBox, start, sDirection);
24994
- var tDirection = edge_pointDirection(end, targetNode);
24995
- var ePre = edge_getExpandedBBoxPoint(tExpendBBox, end, tDirection);
25063
+ var ePre = edge_getExpandedBBoxPoint(tExpendBBox, end, tDirection); // 如果两个节点水平或垂直并且连线在两个节点最近的锚点之间,则不产生偏移,保证连线看起来像是直线
25064
+
25065
+ var vector1 = getDirectionVector(sourceNode, start);
25066
+ var vector2 = getDirectionVector(targetNode, end);
25067
+ var vector3 = getDirectionVector(sourceNode, targetNode); // 当开始节点控制连线的方向和连线方向相同,并且结束节点控制连线相反的时候,则意味这两个节点直接相连。此时不需要对控制点进行偏移调整
25068
+
25069
+ if (isSameDirection(vector1, vector3) && isContraryDirection(vector2, vector3)) {
25070
+ return {
25071
+ sNext: sNext,
25072
+ ePre: ePre
25073
+ };
25074
+ } // 当开始节点控制连线方向和连线方向相反的时候或者结束节点控制连线形同的时候,增大偏移量,实现更美观的效果。
25075
+
25076
+
25077
+ if (isSameDirection(vector2, vector3) || isContraryDirection(vector1, vector3)) {
25078
+ offset = offset * 2;
25079
+ } // 计算起点的调整点是否需要偏移
25080
+ // 如果起点的调整点方向和连线方向相反,则添加偏移量
25081
+ // 如果终点的调整点方向与连线方向
25082
+
25083
+
25084
+ var randomNumberX = Math.ceil((Math.random() + 0.5) * offset);
25085
+ var randomNumberY = Math.ceil((Math.random() + 0.5) * offset); // 如果是调整点在节点水平方向,那么调整的点Y需要向着另一个节点的方向进行一定随机量的偏移。
25086
+ // 如果是调整点在节点垂直方向,那么调整的点X需要向着另一个节点的方向进行一定随机量的偏移。
25087
+
25088
+ if (sDirection === SegmentDirection.HORIZONTAL) {
25089
+ sNext.y += sourceNode.y >= targetNode.y ? randomNumberY : -randomNumberY;
25090
+ }
25091
+
25092
+ if (sDirection === SegmentDirection.VERTICAL) {
25093
+ sNext.x += sourceNode.x >= targetNode.x ? randomNumberX : -randomNumberX;
25094
+ }
25095
+
25096
+ if (tDirection === SegmentDirection.HORIZONTAL) {
25097
+ ePre.y += sourceNode.y > targetNode.y ? randomNumberY : -randomNumberY;
25098
+ }
25099
+
25100
+ if (tDirection === SegmentDirection.VERTICAL) {
25101
+ ePre.x += sourceNode.x > targetNode.x ? randomNumberX : -randomNumberX;
25102
+ }
25103
+
24996
25104
  return {
24997
25105
  sNext: sNext,
24998
25106
  ePre: ePre
@@ -25113,6 +25221,39 @@ var twoPointDistance = function twoPointDistance(source, target) {
25113
25221
  // };
25114
25222
  return Math.sqrt(Math.pow(source.x - target.x, 2) + Math.pow(source.y - target.y, 2));
25115
25223
  };
25224
+ /**
25225
+ * 包装边生成函数
25226
+ * @param graphModel graph model
25227
+ * @param generator 用户自定义的边生成函数
25228
+ */
25229
+
25230
+ function createEdgeGenerator(graphModel, generator) {
25231
+ if (typeof generator !== 'function') {
25232
+ return function (sourceNode, targetNode, currentEdge) {
25233
+ return Object.assign({
25234
+ type: graphModel.edgeType
25235
+ }, currentEdge);
25236
+ };
25237
+ }
25238
+
25239
+ return function (sourceNode, targetNode, currentEdge) {
25240
+ var result = generator(sourceNode, targetNode, currentEdge); // 无结果使用默认类型
25241
+
25242
+ if (!result) return {
25243
+ type: graphModel.edgeType
25244
+ };
25245
+
25246
+ if (typeof result === 'string') {
25247
+ return Object.assign({}, currentEdge, {
25248
+ type: result
25249
+ });
25250
+ }
25251
+
25252
+ return Object.assign({
25253
+ type: result
25254
+ }, currentEdge);
25255
+ };
25256
+ }
25116
25257
  // EXTERNAL MODULE: /Users/didi/niu-workspace/LogicFlow/node_modules/core-js/modules/es.promise.js
25117
25258
  var es_promise = __webpack_require__(200);
25118
25259
 
@@ -25386,6 +25527,10 @@ var drag_StepDrag = /*#__PURE__*/function () {
25386
25527
  DOC.removeEventListener('mousemove', _this.handleMouseMove, false);
25387
25528
  DOC.removeEventListener('mouseup', _this.handleMouseUp, false);
25388
25529
  _this.isDragging = false;
25530
+
25531
+ _this.onDragEnd({
25532
+ event: null
25533
+ });
25389
25534
  });
25390
25535
 
25391
25536
  this.onDragStart = onDragStart;
@@ -25526,6 +25671,8 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
25526
25671
 
25527
25672
  GraphModel_defineProperty(this, "idGenerator", void 0);
25528
25673
 
25674
+ GraphModel_defineProperty(this, "edgeGenerator", void 0);
25675
+
25529
25676
  GraphModel_defineProperty(this, "nodeMoveRules", []);
25530
25677
 
25531
25678
  GraphModel_defineProperty(this, "edgeType", void 0);
@@ -25610,6 +25757,7 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
25610
25757
  background = _options$background === void 0 ? {} : _options$background,
25611
25758
  grid = options.grid,
25612
25759
  idGenerator = options.idGenerator,
25760
+ edgeGenerator = options.edgeGenerator,
25613
25761
  animation = options.animation;
25614
25762
  this.background = background;
25615
25763
 
@@ -25632,8 +25780,8 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
25632
25780
  options.height = container.getBoundingClientRect().height;
25633
25781
  }
25634
25782
 
25635
- if (!options.width || !options.height) {
25636
- console.warn('画布初始化确实宽高');
25783
+ if ((!options.width || !options.height) && options.autoExpand) {
25784
+ console.warn('画布初始化缺少宽高,可能会出现节点无法拖动的情况');
25637
25785
  }
25638
25786
 
25639
25787
  this.width = options.width;
@@ -25642,6 +25790,9 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
25642
25790
  this.partial = options.partial;
25643
25791
  this.overlapMode = options.overlapMode || 0;
25644
25792
  this.idGenerator = idGenerator;
25793
+ this.edgeGenerator = createEdgeGenerator(this, edgeGenerator);
25794
+ this.width = options.width || this.rootEl.getBoundingClientRect().width;
25795
+ this.height = options.height || this.rootEl.getBoundingClientRect().height;
25645
25796
  }
25646
25797
 
25647
25798
  GraphModel_createClass(GraphModel, [{
@@ -25693,8 +25844,7 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
25693
25844
  return a.zIndex - b.zIndex;
25694
25845
  }); // 只显示可见区域的节点和边
25695
25846
 
25696
- var showElements = [];
25697
- var topElementIdx = -1; // todo: 缓存, 优化计算效率
25847
+ var showElements = []; // todo: 缓存, 优化计算效率
25698
25848
 
25699
25849
  var visibleLt = [-VisibleMoreSpace, -VisibleMoreSpace];
25700
25850
  var visibleRb = [this.width + VisibleMoreSpace, this.height + VisibleMoreSpace];
@@ -25703,20 +25853,10 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
25703
25853
  var currentItem = elements[i]; // 如果节点不在可见区域,且不是全元素显示模式,则隐藏节点。
25704
25854
 
25705
25855
  if (currentItem.visible && (!this.partial || currentItem.isSelected || this.isElementInArea(currentItem, visibleLt, visibleRb, false, false))) {
25706
- if (currentItem.zIndex === ElementMaxZIndex) {
25707
- topElementIdx = showElements.length;
25708
- }
25709
-
25710
25856
  showElements.push(currentItem);
25711
25857
  }
25712
25858
  }
25713
25859
 
25714
- if (topElementIdx !== -1) {
25715
- var lastElement = showElements[showElements.length - 1];
25716
- showElements[showElements.length - 1] = showElements[topElementIdx];
25717
- showElements[topElementIdx] = lastElement;
25718
- }
25719
-
25720
25860
  return showElements;
25721
25861
  }
25722
25862
  /**
@@ -25760,6 +25900,7 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
25760
25900
  * @param rightBottomPoint 表示区域右下角的点
25761
25901
  * @param wholeEdge 是否要整个边都在区域内部
25762
25902
  * @param wholeNode 是否要整个节点都在区域内部
25903
+ * @param ignoreHideElement 是否忽略隐藏的节点
25763
25904
  */
25764
25905
 
25765
25906
  }, {
@@ -25767,6 +25908,7 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
25767
25908
  value: function getAreaElement(leftTopPoint, rightBottomPoint) {
25768
25909
  var wholeEdge = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
25769
25910
  var wholeNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
25911
+ var ignoreHideElement = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
25770
25912
  var areaElements = [];
25771
25913
  var elements = [];
25772
25914
  this.nodes.forEach(function (node) {
@@ -25779,7 +25921,7 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
25779
25921
  for (var i = 0; i < elements.length; i++) {
25780
25922
  var currentItem = elements[i];
25781
25923
 
25782
- if (this.isElementInArea(currentItem, leftTopPoint, rightBottomPoint, wholeEdge, wholeNode)) {
25924
+ if ((!ignoreHideElement || currentItem.visible) && this.isElementInArea(currentItem, leftTopPoint, rightBottomPoint, wholeEdge, wholeNode)) {
25783
25925
  areaElements.push(currentItem);
25784
25926
  }
25785
25927
  }
@@ -25925,6 +26067,10 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
25925
26067
  value: function graphDataToModel(graphData) {
25926
26068
  var _this = this;
25927
26069
 
26070
+ if (!this.width || !this.height) {
26071
+ this.resize();
26072
+ }
26073
+
25928
26074
  this.nodes = lodash_es_map(graphData.nodes, function (node) {
25929
26075
  var Model = _this.getModel(node.type);
25930
26076
 
@@ -26179,7 +26325,8 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
26179
26325
 
26180
26326
  this.edges.forEach(function (edge) {
26181
26327
  if (edge.id === oldId) {
26182
- edge.id = newId;
26328
+ // edge.id = newId;
26329
+ edge.changeEdgeId(newId);
26183
26330
  }
26184
26331
  });
26185
26332
  return newId;
@@ -26307,9 +26454,10 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
26307
26454
 
26308
26455
  if (!Model) {
26309
26456
  throw new Error("\u627E\u4E0D\u5230".concat(nodeOriginData.type, "\u5BF9\u5E94\u7684\u8282\u70B9\uFF0C\u8BF7\u786E\u8BA4\u662F\u5426\u5DF2\u6CE8\u518C\u6B64\u7C7B\u578B\u8282\u70B9\u3002"));
26310
- } // TODO 元素的 model 不应该直接可以操作 graphModel 的属性,但可以调方法
26311
-
26457
+ }
26312
26458
 
26459
+ nodeOriginData.x = snapToGrid(nodeOriginData.x, this.gridSize);
26460
+ nodeOriginData.y = snapToGrid(nodeOriginData.y, this.gridSize);
26313
26461
  var nodeModel = new Model(nodeOriginData, this);
26314
26462
  nodeModel.init();
26315
26463
  this.nodes.push(nodeModel);
@@ -26364,9 +26512,15 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
26364
26512
  }
26365
26513
 
26366
26514
  var nodeModel = node.model;
26367
- var r = nodeModel.move(deltaX, deltaY, isIgnoreRule); // 2) 移动边
26368
26515
 
26369
- r && this.moveEdge(nodeId, deltaX, deltaY);
26516
+ var _nodeModel$getMoveDis = nodeModel.getMoveDistance(deltaX, deltaY, isIgnoreRule);
26517
+
26518
+ var _nodeModel$getMoveDis2 = GraphModel_slicedToArray(_nodeModel$getMoveDis, 2);
26519
+
26520
+ deltaX = _nodeModel$getMoveDis2[0];
26521
+ deltaY = _nodeModel$getMoveDis2[1];
26522
+ // 2) 移动边
26523
+ this.moveEdge(nodeId, deltaX, deltaY);
26370
26524
  }
26371
26525
  /**
26372
26526
  * 移动节点-绝对位置
@@ -26899,8 +27053,12 @@ var GraphModel_GraphModel = /*#__PURE__*/function () {
26899
27053
  }, {
26900
27054
  key: "resize",
26901
27055
  value: function resize(width, height) {
26902
- this.width = width !== null && width !== void 0 ? width : this.width;
26903
- this.height = height !== null && height !== void 0 ? height : this.height;
27056
+ this.width = width || this.rootEl.getBoundingClientRect().width;
27057
+ this.height = height || this.rootEl.getBoundingClientRect().height;
27058
+
27059
+ if (!this.width || !this.height) {
27060
+ console.warn('渲染画布的时候无法获取画布宽高,请确认在container已挂载到DOM。@see https://github.com/didi/LogicFlow/issues/675');
27061
+ }
26904
27062
  }
26905
27063
  /**
26906
27064
  * 清空画布
@@ -28961,7 +29119,7 @@ var BezierEdgeModel_BezierEdgeModel = /*#__PURE__*/function (_BaseEdgeModel) {
28961
29119
  BezierEdgeModel_createClass(BezierEdgeModel, [{
28962
29120
  key: "initEdgeData",
28963
29121
  value: function initEdgeData(data) {
28964
- this.offset = 100;
29122
+ this.offset = 0;
28965
29123
 
28966
29124
  BezierEdgeModel_get(BezierEdgeModel_getPrototypeOf(BezierEdgeModel.prototype), "initEdgeData", this).call(this, data);
28967
29125
  }
@@ -29298,6 +29456,8 @@ var BaseNodeModel_BaseNodeModel = /*#__PURE__*/function () {
29298
29456
 
29299
29457
  BaseNodeModel_defineProperty(this, "isHitable", true);
29300
29458
 
29459
+ BaseNodeModel_defineProperty(this, "isShowAnchor", false);
29460
+
29301
29461
  BaseNodeModel_defineProperty(this, "draggable", true);
29302
29462
 
29303
29463
  BaseNodeModel_defineProperty(this, "visible", true);
@@ -29614,7 +29774,7 @@ var BaseNodeModel_BaseNodeModel = /*#__PURE__*/function () {
29614
29774
 
29615
29775
  }, {
29616
29776
  key: "getAnchorLineStyle",
29617
- value: function getAnchorLineStyle() {
29777
+ value: function getAnchorLineStyle(anchorInfo) {
29618
29778
  var anchorLine = this.graphModel.theme.anchorLine;
29619
29779
  return lodash_es_cloneDeep(anchorLine);
29620
29780
  }
@@ -29866,13 +30026,61 @@ var BaseNodeModel_BaseNodeModel = /*#__PURE__*/function () {
29866
30026
 
29867
30027
  return isAllowMoveX || isAllowMoveY;
29868
30028
  }
30029
+ }, {
30030
+ key: "getMoveDistance",
30031
+ value: function getMoveDistance(deltaX, deltaY) {
30032
+ var isIgnoreRule = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
30033
+ var isAllowMoveX = false;
30034
+ var isAllowMoveY = false;
30035
+ var moveX = 0;
30036
+ var moveY = 0;
30037
+
30038
+ if (isIgnoreRule) {
30039
+ isAllowMoveX = true;
30040
+ isAllowMoveY = true;
30041
+ } else {
30042
+ var r = this.isAllowMoveNode(deltaX, deltaY);
30043
+
30044
+ if (typeof r === 'boolean') {
30045
+ isAllowMoveX = r;
30046
+ isAllowMoveY = r;
30047
+ } else {
30048
+ isAllowMoveX = r.x;
30049
+ isAllowMoveY = r.y;
30050
+ }
30051
+ }
30052
+
30053
+ if (isAllowMoveX && deltaX) {
30054
+ var targetX = this.x + deltaX;
30055
+ this.x = targetX;
30056
+ this.text && this.moveText(deltaX, 0);
30057
+ moveX = deltaX;
30058
+ }
30059
+
30060
+ if (isAllowMoveY && deltaY) {
30061
+ var targetY = this.y + deltaY;
30062
+ this.y = targetY;
30063
+ this.text && this.moveText(0, deltaY);
30064
+ moveY = deltaY;
30065
+ }
30066
+
30067
+ return [moveX, moveY];
30068
+ }
29869
30069
  }, {
29870
30070
  key: "moveTo",
29871
30071
  value: function moveTo(x, y) {
29872
30072
  var isIgnoreRule = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
29873
30073
  var deltaX = x - this.x;
29874
30074
  var deltaY = y - this.y;
29875
- return this.move(deltaX, deltaY, isIgnoreRule);
30075
+ if (!isIgnoreRule && !this.isAllowMoveNode(deltaX, deltaY)) return false;
30076
+
30077
+ if (this.text) {
30078
+ this.text && this.moveText(deltaX, deltaY);
30079
+ }
30080
+
30081
+ this.x = x;
30082
+ this.y = y;
30083
+ return true;
29876
30084
  }
29877
30085
  }, {
29878
30086
  key: "moveText",
@@ -29908,12 +30116,23 @@ var BaseNodeModel_BaseNodeModel = /*#__PURE__*/function () {
29908
30116
  value: function setSelected() {
29909
30117
  var flag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
29910
30118
  this.isSelected = flag;
30119
+
30120
+ if (this.graphModel.overlapMode === OverlapMode.DEFAULT) {
30121
+ this.zIndex = flag ? ElementMaxZIndex : 1;
30122
+ }
29911
30123
  }
29912
30124
  }, {
29913
30125
  key: "setHovered",
29914
30126
  value: function setHovered() {
29915
30127
  var flag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
29916
30128
  this.isHovered = flag;
30129
+ this.setIsShowAnchor(flag);
30130
+ }
30131
+ }, {
30132
+ key: "setIsShowAnchor",
30133
+ value: function setIsShowAnchor() {
30134
+ var flag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
30135
+ this.isShowAnchor = flag;
29917
30136
  }
29918
30137
  }, {
29919
30138
  key: "setHitable",
@@ -29947,6 +30166,12 @@ var BaseNodeModel_BaseNodeModel = /*#__PURE__*/function () {
29947
30166
  data: properties
29948
30167
  });
29949
30168
  }
30169
+ }, {
30170
+ key: "deleteProperty",
30171
+ value: function deleteProperty(key) {
30172
+ delete this.properties[key];
30173
+ this.setAttributes();
30174
+ }
29950
30175
  }, {
29951
30176
  key: "setStyle",
29952
30177
  value: function setStyle(key, val) {
@@ -31263,6 +31488,39 @@ var SnaplineModel_SnaplineModel = /*#__PURE__*/function () {
31263
31488
 
31264
31489
 
31265
31490
 
31491
+ // CONCATENATED MODULE: ./src/util/raf.ts
31492
+
31493
+
31494
+
31495
+
31496
+
31497
+
31498
+ var rafIdMap = new Map();
31499
+ var raf_createRaf = function createRaf(callback) {
31500
+ var rafId = uuid_createUuid();
31501
+
31502
+ function run() {
31503
+ callback();
31504
+ var eId = rafIdMap.get(rafId);
31505
+
31506
+ if (eId) {
31507
+ var nId = window.requestAnimationFrame(run);
31508
+ rafIdMap.set(rafId, nId);
31509
+ }
31510
+ }
31511
+
31512
+ var id = window.requestAnimationFrame(run);
31513
+ rafIdMap.set(rafId, id);
31514
+ return rafId;
31515
+ };
31516
+ var cancelRaf = function cancelRaf(rafId) {
31517
+ var eId = rafIdMap.get(rafId);
31518
+
31519
+ if (eId) {
31520
+ window.cancelAnimationFrame(eId);
31521
+ rafIdMap.delete(rafId);
31522
+ }
31523
+ };
31266
31524
  // CONCATENATED MODULE: ./src/view/Anchor.tsx
31267
31525
  function Anchor_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { Anchor_typeof = function _typeof(obj) { return typeof obj; }; } else { Anchor_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return Anchor_typeof(obj); }
31268
31526
 
@@ -31337,6 +31595,7 @@ function Anchor_defineProperty(obj, key, value) { if (key in obj) { Object.defin
31337
31595
 
31338
31596
 
31339
31597
 
31598
+
31340
31599
  var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31341
31600
  Anchor_inherits(Anchor, _Component);
31342
31601
 
@@ -31399,7 +31658,9 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31399
31658
  eventCenter = graphModel.eventCenter,
31400
31659
  width = graphModel.width,
31401
31660
  height = graphModel.height,
31402
- editConfigModel = graphModel.editConfigModel;
31661
+ _graphModel$editConfi = graphModel.editConfigModel,
31662
+ autoExpand = _graphModel$editConfi.autoExpand,
31663
+ stopMoveGraph = _graphModel$editConfi.stopMoveGraph;
31403
31664
  var clientX = event.clientX,
31404
31665
  clientY = event.clientY;
31405
31666
 
@@ -31415,7 +31676,7 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31415
31676
  y1 = _graphModel$getPointB3.y;
31416
31677
 
31417
31678
  if (_this.t) {
31418
- clearInterval(_this.t);
31679
+ cancelRaf(_this.t);
31419
31680
  }
31420
31681
 
31421
31682
  var nearBoundary = [];
@@ -31439,8 +31700,8 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31439
31700
 
31440
31701
  _this.moveAnchorEnd(x1, y1);
31441
31702
 
31442
- if (nearBoundary.length > 0 && !editConfigModel.stopMoveGraph) {
31443
- _this.t = setInterval(function () {
31703
+ if (nearBoundary.length > 0 && !stopMoveGraph && autoExpand) {
31704
+ _this.t = raf_createRaf(function () {
31444
31705
  var _nearBoundary = nearBoundary,
31445
31706
  _nearBoundary2 = Anchor_slicedToArray(_nearBoundary, 2),
31446
31707
  translateX = _nearBoundary2[0],
@@ -31457,7 +31718,7 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31457
31718
  });
31458
31719
 
31459
31720
  _this.moveAnchorEnd(endX - translateX, endY - translateY);
31460
- }, 50);
31721
+ });
31461
31722
  }
31462
31723
 
31463
31724
  eventCenter.emit(EventType.ANCHOR_DRAG, {
@@ -31469,7 +31730,7 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31469
31730
 
31470
31731
  Anchor_defineProperty(Anchor_assertThisInitialized(_this), "onDragEnd", function (event) {
31471
31732
  if (_this.t) {
31472
- clearInterval(_this.t);
31733
+ cancelRaf(_this.t);
31473
31734
  }
31474
31735
 
31475
31736
  _this.checkEnd(event);
@@ -31486,16 +31747,26 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31486
31747
  _this.sourceRuleResults.clear();
31487
31748
 
31488
31749
  _this.targetRuleResults.clear();
31489
- });
31490
31750
 
31491
- Anchor_defineProperty(Anchor_assertThisInitialized(_this), "checkEnd", function (event) {
31492
31751
  var _this$props3 = _this.props,
31493
31752
  graphModel = _this$props3.graphModel,
31494
31753
  nodeModel = _this$props3.nodeModel,
31495
- _this$props3$anchorDa = _this$props3.anchorData,
31496
- x = _this$props3$anchorDa.x,
31497
- y = _this$props3$anchorDa.y,
31498
- id = _this$props3$anchorDa.id; // nodeModel.setSelected(false);
31754
+ anchorData = _this$props3.anchorData;
31755
+ graphModel.eventCenter.emit(EventType.ANCHOR_DRAGEND, {
31756
+ data: anchorData,
31757
+ e: event,
31758
+ nodeModel: nodeModel
31759
+ });
31760
+ });
31761
+
31762
+ Anchor_defineProperty(Anchor_assertThisInitialized(_this), "checkEnd", function (event) {
31763
+ var _this$props4 = _this.props,
31764
+ graphModel = _this$props4.graphModel,
31765
+ nodeModel = _this$props4.nodeModel,
31766
+ _this$props4$anchorDa = _this$props4.anchorData,
31767
+ x = _this$props4$anchorDa.x,
31768
+ y = _this$props4$anchorDa.y,
31769
+ id = _this$props4$anchorDa.id; // nodeModel.setSelected(false);
31499
31770
 
31500
31771
  /* 创建边 */
31501
31772
 
@@ -31531,8 +31802,8 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31531
31802
 
31532
31803
  if (isSourcePass && isTargetPass) {
31533
31804
  targetNode.setElementState(ElementState.DEFAULT);
31534
- var edgeModel = graphModel.addEdge({
31535
- type: edgeType,
31805
+ var edgeData = graphModel.edgeGenerator(nodeModel.getData(), graphModel.getNodeModelById(info.node.id).getData());
31806
+ var edgeModel = graphModel.addEdge(Anchor_objectSpread(Anchor_objectSpread({}, edgeData), {}, {
31536
31807
  sourceNodeId: nodeModel.id,
31537
31808
  sourceAnchorId: id,
31538
31809
  startPoint: {
@@ -31545,7 +31816,7 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31545
31816
  x: info.anchor.x,
31546
31817
  y: info.anchor.y
31547
31818
  }
31548
- });
31819
+ }));
31549
31820
  var anchorData = _this.props.anchorData;
31550
31821
  graphModel.eventCenter.emit(EventType.ANCHOR_DROP, {
31551
31822
  data: anchorData,
@@ -31583,10 +31854,10 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31583
31854
  Anchor_createClass(Anchor, [{
31584
31855
  key: "getAnchorShape",
31585
31856
  value: function getAnchorShape() {
31586
- var _this$props4 = this.props,
31587
- anchorData = _this$props4.anchorData,
31588
- style = _this$props4.style,
31589
- node = _this$props4.node;
31857
+ var _this$props5 = this.props,
31858
+ anchorData = _this$props5.anchorData,
31859
+ style = _this$props5.style,
31860
+ node = _this$props5.node;
31590
31861
  var anchorShape = node.getAnchorShape(anchorData);
31591
31862
  if (anchorShape) return anchorShape;
31592
31863
  var x = anchorData.x,
@@ -31609,10 +31880,10 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31609
31880
  }, {
31610
31881
  key: "moveAnchorEnd",
31611
31882
  value: function moveAnchorEnd(endX, endY) {
31612
- var _this$props5 = this.props,
31613
- graphModel = _this$props5.graphModel,
31614
- nodeModel = _this$props5.nodeModel,
31615
- anchorData = _this$props5.anchorData;
31883
+ var _this$props6 = this.props,
31884
+ graphModel = _this$props6.graphModel,
31885
+ nodeModel = _this$props6.nodeModel,
31886
+ anchorData = _this$props6.anchorData;
31616
31887
  var info = targetNodeInfo({
31617
31888
  x: endX,
31618
31889
  y: endY
@@ -31681,9 +31952,9 @@ var Anchor_Anchor = /*#__PURE__*/function (_Component) {
31681
31952
  startY = _this$state4.startY,
31682
31953
  endX = _this$state4.endX,
31683
31954
  endY = _this$state4.endY;
31684
- var _this$props6 = this.props,
31685
- edgeAddable = _this$props6.anchorData.edgeAddable,
31686
- edgeStyle = _this$props6.edgeStyle;
31955
+ var _this$props7 = this.props,
31956
+ edgeAddable = _this$props7.anchorData.edgeAddable,
31957
+ edgeStyle = _this$props7.edgeStyle;
31687
31958
  return (// className="lf-anchor" 作为下载时,需要将锚点删除的依据,不要修改类名
31688
31959
  preact_module_v("g", {
31689
31960
  className: "lf-anchor"
@@ -32075,39 +32346,6 @@ var BaseText_BaseText = /*#__PURE__*/function (_Component) {
32075
32346
 
32076
32347
 
32077
32348
  var isIe = window.navigator.userAgent.match(/MSIE|Trident/) !== null;
32078
- // CONCATENATED MODULE: ./src/util/raf.ts
32079
-
32080
-
32081
-
32082
-
32083
-
32084
-
32085
- var rafIdMap = new Map();
32086
- var raf_createRaf = function createRaf(callback) {
32087
- var rafId = uuid_createUuid();
32088
-
32089
- function run() {
32090
- callback();
32091
- var eId = rafIdMap.get(rafId);
32092
-
32093
- if (eId) {
32094
- var nId = window.requestAnimationFrame(run);
32095
- rafIdMap.set(rafId, nId);
32096
- }
32097
- }
32098
-
32099
- var id = window.requestAnimationFrame(run);
32100
- rafIdMap.set(rafId, id);
32101
- return rafId;
32102
- };
32103
- var cancelRaf = function cancelRaf(rafId) {
32104
- var eId = rafIdMap.get(rafId);
32105
-
32106
- if (eId) {
32107
- window.cancelAnimationFrame(eId);
32108
- rafIdMap.delete(rafId);
32109
- }
32110
- };
32111
32349
  // CONCATENATED MODULE: ./src/view/node/BaseNode.tsx
32112
32350
  function BaseNode_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { BaseNode_typeof = function _typeof(obj) { return typeof obj; }; } else { BaseNode_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return BaseNode_typeof(obj); }
32113
32351
 
@@ -32223,7 +32461,9 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32223
32461
  model = _this$props2.model,
32224
32462
  graphModel = _this$props2.graphModel; // const { isDragging } = model;
32225
32463
 
32226
- var editConfigModel = graphModel.editConfigModel,
32464
+ var _graphModel$editConfi = graphModel.editConfigModel,
32465
+ stopMoveGraph = _graphModel$editConfi.stopMoveGraph,
32466
+ autoExpand = _graphModel$editConfi.autoExpand,
32227
32467
  transformModel = graphModel.transformModel,
32228
32468
  width = graphModel.width,
32229
32469
  height = graphModel.height,
@@ -32245,7 +32485,7 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32245
32485
  x1 = _transformModel$Canva2[0],
32246
32486
  y1 = _transformModel$Canva2[1];
32247
32487
 
32248
- if (x1 < 0 || y1 < 0 || x1 > width || y1 > height) {
32488
+ if (autoExpand && !stopMoveGraph && (x1 < 0 || y1 < 0 || x1 > width || y1 > height)) {
32249
32489
  // 鼠标超出画布后的拖动,不处理,而是让上一次setInterval持续滚动画布
32250
32490
  return;
32251
32491
  } // 1. 考虑画布被缩放
@@ -32256,7 +32496,20 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32256
32496
  y = y + _this.moveOffset.y; // 将x, y移动到grid上
32257
32497
 
32258
32498
  x = snapToGrid(x, gridSize);
32259
- y = snapToGrid(y, gridSize); // 取节点左上角和右下角,计算节点移动是否超出范围
32499
+ y = snapToGrid(y, gridSize);
32500
+
32501
+ if (!width || !height) {
32502
+ graphModel.moveNode2Coordinate(model.id, x, y);
32503
+ return;
32504
+ }
32505
+
32506
+ var isOutCanvas = x1 < 0 || y1 < 0 || x1 > width || y1 > height;
32507
+
32508
+ if (autoExpand && !stopMoveGraph && isOutCanvas) {
32509
+ // 鼠标超出画布后的拖动,不处理,而是让上一次setInterval持续滚动画布
32510
+ return;
32511
+ } // 取节点左上角和右下角,计算节点移动是否超出范围
32512
+
32260
32513
 
32261
32514
  var _transformModel$Canva3 = transformModel.CanvasPointToHtmlPoint([x - model.width / 2, y - model.height / 2]),
32262
32515
  _transformModel$Canva4 = BaseNode_slicedToArray(_transformModel$Canva3, 2),
@@ -32285,7 +32538,7 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32285
32538
  cancelRaf(_this.t);
32286
32539
  }
32287
32540
 
32288
- if (nearBoundary.length > 0 && !editConfigModel.stopMoveGraph && editConfigModel.autoExpand) {
32541
+ if (nearBoundary.length > 0 && !stopMoveGraph && autoExpand) {
32289
32542
  _this.t = raf_createRaf(function () {
32290
32543
  var _nearBoundary = nearBoundary,
32291
32544
  _nearBoundary2 = BaseNode_slicedToArray(_nearBoundary, 2),
@@ -32316,7 +32569,7 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32316
32569
 
32317
32570
  var time = new Date().getTime() - _this.startTime;
32318
32571
 
32319
- if (time > 200) return; // 事件大于200ms,认为是拖拽。
32572
+ if (time > 200) return; // 事件大于200ms,认为是拖拽, 不触发click事件。
32320
32573
 
32321
32574
  var _this$props3 = _this.props,
32322
32575
  model = _this$props3.model,
@@ -32382,9 +32635,6 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32382
32635
  var _this$props5 = _this.props,
32383
32636
  model = _this$props5.model,
32384
32637
  graphModel = _this$props5.graphModel;
32385
-
32386
- _this.toFront();
32387
-
32388
32638
  _this.startTime = new Date().getTime();
32389
32639
  var editConfigModel = graphModel.editConfigModel;
32390
32640
 
@@ -32394,16 +32644,10 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32394
32644
  });
32395
32645
 
32396
32646
  BaseNode_defineProperty(BaseNode_assertThisInitialized(_this), "setHoverON", function (ev) {
32397
- var isHovered = _this.state.isHovered;
32398
- if (isHovered) return;
32399
-
32400
- _this.setState({
32401
- isHovered: true
32402
- });
32403
-
32404
32647
  var _this$props6 = _this.props,
32405
32648
  model = _this$props6.model,
32406
32649
  graphModel = _this$props6.graphModel;
32650
+ if (model.isHovered) return;
32407
32651
  var nodeData = model.getData();
32408
32652
  model.setHovered(true);
32409
32653
  graphModel.eventCenter.emit(EventType.NODE_MOUSEENTER, {
@@ -32413,14 +32657,11 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32413
32657
  });
32414
32658
 
32415
32659
  BaseNode_defineProperty(BaseNode_assertThisInitialized(_this), "setHoverOFF", function (ev) {
32416
- _this.setState({
32417
- isHovered: false
32418
- });
32419
-
32420
32660
  var _this$props7 = _this.props,
32421
32661
  model = _this$props7.model,
32422
32662
  graphModel = _this$props7.graphModel;
32423
32663
  var nodeData = model.getData();
32664
+ if (!model.isHovered) return;
32424
32665
  model.setHovered(false);
32425
32666
  graphModel.eventCenter.emit(EventType.NODE_MOUSELEAVE, {
32426
32667
  data: nodeData,
@@ -32449,9 +32690,6 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32449
32690
  eventCenter: eventCenter,
32450
32691
  model: _model
32451
32692
  });
32452
- _this.state = {
32453
- isHovered: false
32454
- };
32455
32693
  return _this;
32456
32694
  }
32457
32695
 
@@ -32470,12 +32708,12 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32470
32708
  graphModel = _this$props8.graphModel;
32471
32709
  var isSelected = model.isSelected,
32472
32710
  isHitable = model.isHitable,
32473
- isDragging = model.isDragging;
32474
- var isHovered = this.state.isHovered;
32711
+ isDragging = model.isDragging,
32712
+ isShowAnchor = model.isShowAnchor;
32475
32713
 
32476
- if (isHitable && (isSelected || isHovered) && !isDragging) {
32477
- var edgeStyle = model.getAnchorLineStyle();
32714
+ if (isHitable && (isSelected || isShowAnchor) && !isDragging) {
32478
32715
  return lodash_es_map(model.anchors, function (anchor, index) {
32716
+ var edgeStyle = model.getAnchorLineStyle(anchor);
32479
32717
  var style = model.getAnchorStyle(anchor);
32480
32718
  return preact_module_v(view_Anchor, {
32481
32719
  anchorData: anchor,
@@ -32574,9 +32812,9 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32574
32812
  var _this$props11 = this.props,
32575
32813
  model = _this$props11.model,
32576
32814
  graphModel = _this$props11.graphModel;
32577
- var _graphModel$editConfi = graphModel.editConfigModel,
32578
- hideAnchors = _graphModel$editConfi.hideAnchors,
32579
- adjustNodePosition = _graphModel$editConfi.adjustNodePosition,
32815
+ var _graphModel$editConfi2 = graphModel.editConfigModel,
32816
+ hideAnchors = _graphModel$editConfi2.hideAnchors,
32817
+ adjustNodePosition = _graphModel$editConfi2.adjustNodePosition,
32580
32818
  gridSize = graphModel.gridSize,
32581
32819
  SCALE_X = graphModel.transformModel.SCALE_X;
32582
32820
  var isHitable = model.isHitable,
@@ -32598,7 +32836,7 @@ var BaseNode_BaseNode = /*#__PURE__*/function (_Component) {
32598
32836
  nodeShape = preact_module_v("g", {
32599
32837
  className: this.getStateClassName(),
32600
32838
  onMouseDown: this.handleMouseDown,
32601
- onMouseUp: this.handleClick,
32839
+ onClick: this.handleClick,
32602
32840
  onMouseEnter: this.setHoverON,
32603
32841
  onMouseOver: this.setHoverON,
32604
32842
  onMouseLeave: this.setHoverOFF,
@@ -33345,6 +33583,7 @@ var HtmlNode_HtmlNode = /*#__PURE__*/function (_BaseNode) {
33345
33583
  width = model.width;
33346
33584
  this.currentProperties = JSON.stringify(model.properties);
33347
33585
  var style = model.getNodeStyle();
33586
+ this.currentProperties = JSON.stringify(model.properties);
33348
33587
  return preact_module_v("foreignObject", HtmlNode_extends({}, style, {
33349
33588
  x: x - width / 2,
33350
33589
  y: y - height / 2,
@@ -33830,7 +34069,8 @@ var AdjustPoint_AdjustPoint = /*#__PURE__*/function (_Component) {
33830
34069
 
33831
34070
 
33832
34071
  if (type === AdjustType.SOURCE) {
33833
- createEdgeInfo = AdjustPoint_objectSpread(AdjustPoint_objectSpread({}, createEdgeInfo), {}, {
34072
+ var edgeInfo = graphModel.edgeGenerator(graphModel.getNodeModelById(info.node.id).getData(), graphModel.getNodeModelById(edgeModel.targetNodeId).getData(), createEdgeInfo);
34073
+ createEdgeInfo = AdjustPoint_objectSpread(AdjustPoint_objectSpread({}, edgeInfo), {}, {
33834
34074
  sourceNodeId: info.node.id,
33835
34075
  sourceAnchorId: info.anchor.id,
33836
34076
  startPoint: {
@@ -33841,7 +34081,9 @@ var AdjustPoint_AdjustPoint = /*#__PURE__*/function (_Component) {
33841
34081
  endPoint: AdjustPoint_objectSpread({}, edgeModel.endPoint)
33842
34082
  });
33843
34083
  } else if (type === AdjustType.TARGET) {
33844
- createEdgeInfo = AdjustPoint_objectSpread(AdjustPoint_objectSpread({}, createEdgeInfo), {}, {
34084
+ var _edgeInfo = graphModel.edgeGenerator(graphModel.getNodeModelById(edgeModel.sourceNodeId).getData(), graphModel.getNodeModelById(info.node.id).getData(), createEdgeInfo);
34085
+
34086
+ createEdgeInfo = AdjustPoint_objectSpread(AdjustPoint_objectSpread({}, _edgeInfo), {}, {
33845
34087
  sourceNodeId: edgeModel.sourceNodeId,
33846
34088
  startPoint: AdjustPoint_objectSpread({}, edgeModel.startPoint),
33847
34089
  targetNodeId: info.node.id,
@@ -34216,7 +34458,7 @@ var BaseEdge_BaseEdge = /*#__PURE__*/function (_Component) {
34216
34458
  _this.toFront();
34217
34459
  });
34218
34460
 
34219
- BaseEdge_defineProperty(BaseEdge_assertThisInitialized(_this), "getIsDraging", function () {
34461
+ BaseEdge_defineProperty(BaseEdge_assertThisInitialized(_this), "getIsDragging", function () {
34220
34462
  return false;
34221
34463
  });
34222
34464
 
@@ -34226,6 +34468,13 @@ var BaseEdge_BaseEdge = /*#__PURE__*/function (_Component) {
34226
34468
  BaseEdge_createClass(BaseEdge, [{
34227
34469
  key: "getShape",
34228
34470
  value: function getShape() {}
34471
+ /**
34472
+ * 支持重写此方法来实现在连线上定义额外内容。
34473
+ */
34474
+
34475
+ }, {
34476
+ key: "getExtraShape",
34477
+ value: function getExtraShape() {}
34229
34478
  }, {
34230
34479
  key: "getTextStyle",
34231
34480
  value: function getTextStyle() {}
@@ -34288,72 +34537,70 @@ var BaseEdge_BaseEdge = /*#__PURE__*/function (_Component) {
34288
34537
  }, {
34289
34538
  key: "getArrow",
34290
34539
  value: function getArrow() {
34291
- return preact_module_v("g", null, preact_module_v("defs", null, this.getStartArrow(), this.getEndArrow()));
34292
- }
34293
- }, {
34294
- key: "getStartArrow",
34295
- value: function getStartArrow() {
34296
- var _this$props6 = this.props,
34297
- model = _this$props6.model,
34298
- graphModel = _this$props6.graphModel;
34299
- var id = model.id;
34300
- var arrow = graphModel.theme.arrow;
34301
- var offset = arrow.offset,
34302
- verticalLength = arrow.verticalLength;
34540
+ var id = this.props.model.id;
34303
34541
 
34304
34542
  var _this$getArrowStyle = this.getArrowStyle(),
34305
- stroke = _this$getArrowStyle.stroke,
34306
- strokeWidth = _this$getArrowStyle.strokeWidth;
34543
+ _this$getArrowStyle$r = _this$getArrowStyle.refY,
34544
+ refY = _this$getArrowStyle$r === void 0 ? 0 : _this$getArrowStyle$r,
34545
+ _this$getArrowStyle$r2 = _this$getArrowStyle.refX,
34546
+ refX = _this$getArrowStyle$r2 === void 0 ? 2 : _this$getArrowStyle$r2;
34307
34547
 
34308
- return preact_module_v("marker", {
34548
+ return preact_module_v("g", null, preact_module_v("defs", null, preact_module_v("marker", {
34309
34549
  id: "marker-start-".concat(id),
34310
- refX: "-1",
34550
+ refX: refX,
34551
+ refY: refY,
34311
34552
  overflow: "visible",
34312
34553
  orient: "auto",
34313
34554
  markerUnits: "userSpaceOnUse"
34314
- }, preact_module_v("path", {
34555
+ }, this.getStartArrow()), preact_module_v("marker", {
34556
+ id: "marker-end-".concat(id),
34557
+ refX: refX,
34558
+ refY: refY,
34559
+ overflow: "visible",
34560
+ orient: "auto",
34561
+ markerUnits: "userSpaceOnUse"
34562
+ }, this.getEndArrow())));
34563
+ }
34564
+ }, {
34565
+ key: "getStartArrow",
34566
+ value: function getStartArrow() {
34567
+ var _this$getArrowStyle2 = this.getArrowStyle(),
34568
+ stroke = _this$getArrowStyle2.stroke,
34569
+ strokeWidth = _this$getArrowStyle2.strokeWidth,
34570
+ offset = _this$getArrowStyle2.offset,
34571
+ verticalLength = _this$getArrowStyle2.verticalLength;
34572
+
34573
+ return preact_module_v("path", {
34315
34574
  stroke: stroke,
34316
34575
  fill: stroke,
34317
34576
  strokeWidth: strokeWidth,
34318
34577
  d: "M 0 0 L ".concat(offset, " -").concat(verticalLength, " L ").concat(offset, " ").concat(verticalLength, " Z")
34319
- }));
34578
+ });
34320
34579
  }
34321
34580
  }, {
34322
34581
  key: "getEndArrow",
34323
34582
  value: function getEndArrow() {
34324
- var _this$props7 = this.props,
34325
- model = _this$props7.model,
34326
- graphModel = _this$props7.graphModel;
34327
- var id = model.id;
34328
- var arrow = graphModel.theme.arrow;
34329
- var offset = arrow.offset,
34330
- verticalLength = arrow.verticalLength;
34331
-
34332
- var _this$getArrowStyle2 = this.getArrowStyle(),
34333
- stroke = _this$getArrowStyle2.stroke,
34334
- strokeWidth = _this$getArrowStyle2.strokeWidth;
34583
+ var _this$getArrowStyle3 = this.getArrowStyle(),
34584
+ stroke = _this$getArrowStyle3.stroke,
34585
+ strokeWidth = _this$getArrowStyle3.strokeWidth,
34586
+ offset = _this$getArrowStyle3.offset,
34587
+ verticalLength = _this$getArrowStyle3.verticalLength;
34335
34588
 
34336
- return preact_module_v("marker", {
34337
- id: "marker-end-".concat(id),
34338
- refX: "-1",
34339
- overflow: "visible",
34340
- orient: "auto",
34341
- markerUnits: "userSpaceOnUse"
34342
- }, preact_module_v("path", {
34589
+ return preact_module_v("path", {
34343
34590
  stroke: stroke,
34344
34591
  fill: stroke,
34345
34592
  strokeWidth: strokeWidth,
34346
34593
  transform: "rotate(180)",
34347
34594
  d: "M 0 0 L ".concat(offset, " -").concat(verticalLength, " L ").concat(offset, " ").concat(verticalLength, " Z")
34348
- }));
34595
+ });
34349
34596
  } // 起点终点,可以修改起点/终点为其他节点
34350
34597
 
34351
34598
  }, {
34352
34599
  key: "getAdjustPoints",
34353
34600
  value: function getAdjustPoints() {
34354
- var _this$props8 = this.props,
34355
- model = _this$props8.model,
34356
- graphModel = _this$props8.graphModel;
34601
+ var _this$props6 = this.props,
34602
+ model = _this$props6.model,
34603
+ graphModel = _this$props6.graphModel;
34357
34604
  var start = model.getAdjustStart();
34358
34605
  var end = model.getAdjustEnd();
34359
34606
  return preact_module_v("g", null, preact_module_v(AdjustPoint_AdjustPoint, BaseEdge_extends({
@@ -34386,9 +34633,9 @@ var BaseEdge_BaseEdge = /*#__PURE__*/function (_Component) {
34386
34633
  }, {
34387
34634
  key: "toFront",
34388
34635
  value: function toFront() {
34389
- var _this$props9 = this.props,
34390
- graphModel = _this$props9.graphModel,
34391
- model = _this$props9.model;
34636
+ var _this$props7 = this.props,
34637
+ graphModel = _this$props7.graphModel,
34638
+ model = _this$props7.model;
34392
34639
  var overlapMode = graphModel.overlapMode;
34393
34640
 
34394
34641
  if (overlapMode !== OverlapMode.INCREASE) {
@@ -34398,12 +34645,12 @@ var BaseEdge_BaseEdge = /*#__PURE__*/function (_Component) {
34398
34645
  }, {
34399
34646
  key: "render",
34400
34647
  value: function render() {
34401
- var _this$props10 = this.props,
34402
- _this$props10$model = _this$props10.model,
34403
- isSelected = _this$props10$model.isSelected,
34404
- isHitable = _this$props10$model.isHitable,
34405
- graphModel = _this$props10.graphModel;
34406
- var isDragging = this.getIsDraging();
34648
+ var _this$props8 = this.props,
34649
+ _this$props8$model = _this$props8.model,
34650
+ isSelected = _this$props8$model.isSelected,
34651
+ isHitable = _this$props8$model.isHitable,
34652
+ graphModel = _this$props8.graphModel;
34653
+ var isDragging = this.getIsDragging();
34407
34654
  var adjustEdgeStartAndEnd = graphModel.editConfigModel.adjustEdgeStartAndEnd,
34408
34655
  animation = graphModel.animation; // performance 只允许出现一条edge有动画
34409
34656
 
@@ -34837,7 +35084,7 @@ var PolylineEdge_PolylineEdge = /*#__PURE__*/function (_BaseEdge) {
34837
35084
  _this.appendInfo = appendInfo;
34838
35085
  });
34839
35086
 
34840
- PolylineEdge_defineProperty(PolylineEdge_assertThisInitialized(_this), "getIsDraging", function () {
35087
+ PolylineEdge_defineProperty(PolylineEdge_assertThisInitialized(_this), "getIsDragging", function () {
34841
35088
  return _this.isDragging;
34842
35089
  });
34843
35090
 
@@ -35472,7 +35719,11 @@ var History_History = /*#__PURE__*/function () {
35472
35719
 
35473
35720
  this.eventCenter = graphModel.eventCenter;
35474
35721
  var NODE_ADD = EventType.NODE_ADD,
35722
+ NODE_DELETE = EventType.NODE_DELETE,
35723
+ NODE_DND_ADD = EventType.NODE_DND_ADD,
35475
35724
  EDGE_ADD = EventType.EDGE_ADD,
35725
+ EDGE_DELETE = EventType.EDGE_DELETE,
35726
+ TEXT_UPDATE = EventType.TEXT_UPDATE,
35476
35727
  NODE_DROP = EventType.NODE_DROP,
35477
35728
  EDGE_ADJUST = EventType.EDGE_ADJUST,
35478
35729
  SELECTION_DROP = EventType.SELECTION_DROP,
@@ -35483,7 +35734,7 @@ var History_History = /*#__PURE__*/function () {
35483
35734
  NODE_PROPERTY_UPDATE = EventType.NODE_PROPERTY_UPDATE,
35484
35735
  EDGE_PROPERTY_UPDATE = EventType.EDGE_PROPERTY_UPDATE,
35485
35736
  HISTORY_INSERT = EventType.HISTORY_INSERT;
35486
- var historyChangeKeys = "\n ".concat(NODE_ADD, ",\n ").concat(EDGE_ADD, ",\n ").concat(NODE_DROP, ",\n ").concat(EDGE_ADJUST, ",\n ").concat(SELECTION_DROP, ",\n ").concat(TEXT_DROP, ",\n ").concat(NODE_TEXT_UPDATE, ",\n ").concat(EDGE_TEXT_UPDATE, ",\n ").concat(GRAPH_RENDERED, "\n ");
35737
+ var historyChangeKeys = "\n ".concat(NODE_ADD, ",\n ").concat(EDGE_ADD, ",\n ").concat(NODE_DELETE, ",\n ").concat(NODE_DND_ADD, ",\n ").concat(EDGE_DELETE, ",\n ").concat(TEXT_UPDATE, ",\n ").concat(NODE_DROP, ",\n ").concat(EDGE_ADJUST, ",\n ").concat(SELECTION_DROP, ",\n ").concat(TEXT_DROP, ",\n ").concat(NODE_TEXT_UPDATE, ",\n ").concat(EDGE_TEXT_UPDATE, ",\n ").concat(GRAPH_RENDERED, "\n ");
35487
35738
 
35488
35739
  if (isPropertiesChangeHistory) {
35489
35740
  historyChangeKeys += ",".concat(NODE_PROPERTY_UPDATE, ",").concat(EDGE_PROPERTY_UPDATE);
@@ -35657,7 +35908,7 @@ var TextEditTool_TextEdit = stateUtil_observer(TextEditTool_class = (_temp = _cl
35657
35908
  });
35658
35909
 
35659
35910
  TextEditTool_defineProperty(TextEditTool_assertThisInitialized(_this), "keyupHandler", function (ev) {
35660
- var textEditElement = _this.props.graphModel.textEditElement;
35911
+ var textEditElement = _this.props.graphModel.textEditElement; // 按下alt+enter表示输入完成
35661
35912
 
35662
35913
  if (ev.key === 'Enter' && ev.altKey) {
35663
35914
  textEditElement.setElementState(0);
@@ -35760,6 +36011,7 @@ var TextEditTool_TextEdit = stateUtil_observer(TextEditTool_class = (_temp = _cl
35760
36011
  key: textEditElement.id,
35761
36012
  onKeyUp: this.keyupHandler,
35762
36013
  onKeyDown: this.keydownHandler,
36014
+ onKeyPress: this.keydownHandler,
35763
36015
  onInput: this.inputHandler
35764
36016
  }, (_textEditElement$text = textEditElement.text) === null || _textEditElement$text === void 0 ? void 0 : _textEditElement$text.value) : null;
35765
36017
  }
@@ -35846,11 +36098,12 @@ var TextEditTool_TextEdit = stateUtil_observer(TextEditTool_class = (_temp = _cl
35846
36098
  left = _transformModel$Canva2[0],
35847
36099
  top = _transformModel$Canva2[1];
35848
36100
 
36101
+ var textStyle = textEditElement.getTextStyle();
35849
36102
  return {
35850
- style: TextEditTool_objectSpread({
36103
+ style: TextEditTool_objectSpread(TextEditTool_objectSpread({
35851
36104
  left: left,
35852
36105
  top: top
35853
- }, autoStyle)
36106
+ }, autoStyle), textStyle)
35854
36107
  };
35855
36108
  }
35856
36109
  }
@@ -36534,10 +36787,6 @@ var LogicFlow_LogicFlow = /*#__PURE__*/function () {
36534
36787
 
36535
36788
  LogicFlow_defineProperty(this, "container", void 0);
36536
36789
 
36537
- LogicFlow_defineProperty(this, "width", void 0);
36538
-
36539
- LogicFlow_defineProperty(this, "height", void 0);
36540
-
36541
36790
  LogicFlow_defineProperty(this, "graphModel", void 0);
36542
36791
 
36543
36792
  LogicFlow_defineProperty(this, "history", void 0);
@@ -36855,14 +37104,15 @@ var LogicFlow_LogicFlow = /*#__PURE__*/function () {
36855
37104
  }
36856
37105
  /**
36857
37106
  * 重新设置画布的宽高
37107
+ * 不传会自动计算画布宽高
36858
37108
  */
36859
37109
 
36860
37110
  }, {
36861
37111
  key: "resize",
36862
37112
  value: function resize(width, height) {
36863
- this.options.width = width !== null && width !== void 0 ? width : this.options.width;
36864
- this.options.height = height !== null && height !== void 0 ? height : this.options.height;
36865
37113
  this.graphModel.resize(width, height);
37114
+ this.options.width = this.graphModel.width;
37115
+ this.options.height = this.graphModel.height;
36866
37116
  }
36867
37117
  /**
36868
37118
  * 设置默认的边类型。
@@ -37256,6 +37506,13 @@ var LogicFlow_LogicFlow = /*#__PURE__*/function () {
37256
37506
 
37257
37507
  (_this$graphModel$getE = this.graphModel.getElement(id)) === null || _this$graphModel$getE === void 0 ? void 0 : _this$graphModel$getE.setProperties(compatible_formatData(properties));
37258
37508
  }
37509
+ }, {
37510
+ key: "deleteProperty",
37511
+ value: function deleteProperty(id, key) {
37512
+ var _this$graphModel$getE2;
37513
+
37514
+ (_this$graphModel$getE2 = this.graphModel.getElement(id)) === null || _this$graphModel$getE2 === void 0 ? void 0 : _this$graphModel$getE2.deleteProperty(key);
37515
+ }
37259
37516
  /**
37260
37517
  * 获取元素的自定义属性
37261
37518
  * @param id 元素的id
@@ -37265,9 +37522,9 @@ var LogicFlow_LogicFlow = /*#__PURE__*/function () {
37265
37522
  }, {
37266
37523
  key: "getProperties",
37267
37524
  value: function getProperties(id) {
37268
- var _this$graphModel$getE2;
37525
+ var _this$graphModel$getE3;
37269
37526
 
37270
- return (_this$graphModel$getE2 = this.graphModel.getElement(id)) === null || _this$graphModel$getE2 === void 0 ? void 0 : _this$graphModel$getE2.getProperties();
37527
+ return (_this$graphModel$getE3 = this.graphModel.getElement(id)) === null || _this$graphModel$getE3 === void 0 ? void 0 : _this$graphModel$getE3.getProperties();
37271
37528
  }
37272
37529
  /**
37273
37530
  * 将某个元素放置到顶部。
@@ -37346,7 +37603,8 @@ var LogicFlow_LogicFlow = /*#__PURE__*/function () {
37346
37603
  value: function getAreaElement(leftTopPoint, rightBottomPoint) {
37347
37604
  var wholeEdge = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
37348
37605
  var wholeNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
37349
- return this.graphModel.getAreaElement(leftTopPoint, rightBottomPoint, wholeEdge, wholeNode).map(function (element) {
37606
+ var ignoreHideElement = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
37607
+ return this.graphModel.getAreaElement(leftTopPoint, rightBottomPoint, wholeEdge, wholeNode, ignoreHideElement).map(function (element) {
37350
37608
  return element.getData();
37351
37609
  });
37352
37610
  }