@logicflow/core 2.0.0-beta.2 → 2.0.0-beta.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.
Files changed (275) hide show
  1. package/.turbo/turbo-build$colon$dev.log +2 -2
  2. package/.turbo/turbo-build.log +14 -8
  3. package/dist/index.min.js +9 -3
  4. package/es/LogicFlow.d.ts +8 -3
  5. package/es/LogicFlow.js +5 -4
  6. package/es/LogicFlow.js.map +1 -1
  7. package/es/common/drag.d.ts +51 -0
  8. package/es/common/drag.js +145 -0
  9. package/es/common/drag.js.map +1 -0
  10. package/es/common/history.d.ts +28 -0
  11. package/es/common/history.js +92 -0
  12. package/es/common/history.js.map +1 -0
  13. package/es/common/index.d.ts +5 -0
  14. package/es/common/index.js +6 -0
  15. package/es/common/index.js.map +1 -0
  16. package/es/common/keyboard.d.ts +34 -0
  17. package/es/common/keyboard.js +80 -0
  18. package/es/common/keyboard.js.map +1 -0
  19. package/es/common/matrix.d.ts +30 -0
  20. package/es/common/matrix.js +155 -0
  21. package/es/common/matrix.js.map +1 -0
  22. package/es/common/vector.d.ts +23 -0
  23. package/es/common/vector.js +97 -0
  24. package/es/common/vector.js.map +1 -0
  25. package/es/constant/index.d.ts +2 -1
  26. package/es/constant/index.js +1 -0
  27. package/es/constant/index.js.map +1 -1
  28. package/es/event/eventArgs.d.ts +6 -0
  29. package/es/event/eventEmitter.js +0 -1
  30. package/es/event/eventEmitter.js.map +1 -1
  31. package/es/index.d.ts +1 -1
  32. package/es/index.js +1 -1
  33. package/es/index.js.map +1 -1
  34. package/es/model/GraphModel.d.ts +12 -1
  35. package/es/model/GraphModel.js +21 -2
  36. package/es/model/GraphModel.js.map +1 -1
  37. package/es/model/SnaplineModel.d.ts +2 -0
  38. package/es/model/edge/BaseEdgeModel.d.ts +5 -9
  39. package/es/model/edge/BaseEdgeModel.js +26 -23
  40. package/es/model/edge/BaseEdgeModel.js.map +1 -1
  41. package/es/model/edge/BezierEdgeModel.d.ts +2 -0
  42. package/es/model/edge/LineEdgeModel.d.ts +2 -0
  43. package/es/model/edge/PolylineEdgeModel.d.ts +2 -0
  44. package/es/model/node/BaseNodeModel.js +22 -21
  45. package/es/model/node/BaseNodeModel.js.map +1 -1
  46. package/es/model/node/CircleNodeModel.d.ts +2 -0
  47. package/es/model/node/CircleNodeModel.js +2 -2
  48. package/es/model/node/CircleNodeModel.js.map +1 -1
  49. package/es/model/node/DiamondNodeModel.d.ts +2 -0
  50. package/es/model/node/DiamondNodeModel.js +2 -1
  51. package/es/model/node/DiamondNodeModel.js.map +1 -1
  52. package/es/model/node/EllipseNodeModel.d.ts +2 -0
  53. package/es/model/node/EllipseNodeModel.js +2 -1
  54. package/es/model/node/EllipseNodeModel.js.map +1 -1
  55. package/es/model/node/HtmlNodeModel.d.ts +2 -2
  56. package/es/model/node/HtmlNodeModel.js.map +1 -1
  57. package/es/model/node/PolygonNodeModel.d.ts +2 -0
  58. package/es/model/node/PolygonNodeModel.js +2 -2
  59. package/es/model/node/PolygonNodeModel.js.map +1 -1
  60. package/es/model/node/RectNodeModel.d.ts +3 -0
  61. package/es/model/node/RectNodeModel.js +8 -2
  62. package/es/model/node/RectNodeModel.js.map +1 -1
  63. package/es/model/node/TextNodeModel.d.ts +4 -2
  64. package/es/options.js +2 -11
  65. package/es/options.js.map +1 -1
  66. package/es/tool/tool.js.map +1 -1
  67. package/es/util/edge.d.ts +6 -0
  68. package/es/util/edge.js +15 -1
  69. package/es/util/edge.js.map +1 -1
  70. package/es/util/node.d.ts +6 -2
  71. package/es/util/node.js +22 -7
  72. package/es/util/node.js.map +1 -1
  73. package/es/view/Anchor.d.ts +1 -1
  74. package/es/view/Anchor.js +3 -3
  75. package/es/view/Anchor.js.map +1 -1
  76. package/es/view/Control.js +14 -2
  77. package/es/view/Control.js.map +1 -1
  78. package/es/view/Graph.d.ts +4 -0
  79. package/es/view/Graph.js +42 -3
  80. package/es/view/Graph.js.map +1 -1
  81. package/es/view/edge/AdjustPoint.js +3 -3
  82. package/es/view/edge/AdjustPoint.js.map +1 -1
  83. package/es/view/edge/BaseEdge.d.ts +2 -2
  84. package/es/view/edge/BaseEdge.js +5 -5
  85. package/es/view/node/BaseNode.d.ts +2 -2
  86. package/es/view/node/BaseNode.js +5 -5
  87. package/es/view/node/TextNode.js +1 -1
  88. package/es/view/node/TextNode.js.map +1 -1
  89. package/es/view/shape/Circle.d.ts +9 -1
  90. package/es/view/shape/Circle.js +5 -5
  91. package/es/view/shape/Circle.js.map +1 -1
  92. package/es/view/shape/Ellipse.d.ts +10 -1
  93. package/es/view/shape/Ellipse.js +5 -5
  94. package/es/view/shape/Ellipse.js.map +1 -1
  95. package/es/view/shape/Line.d.ts +14 -1
  96. package/es/view/shape/Line.js +5 -7
  97. package/es/view/shape/Line.js.map +1 -1
  98. package/es/view/shape/Path.d.ts +3 -2
  99. package/es/view/shape/Path.js +3 -3
  100. package/es/view/shape/Path.js.map +1 -1
  101. package/es/view/shape/Polygon.d.ts +5 -3
  102. package/es/view/shape/Polygon.js +6 -6
  103. package/es/view/shape/Polygon.js.map +1 -1
  104. package/es/view/shape/Polyline.d.ts +7 -1
  105. package/es/view/shape/Polyline.js +8 -6
  106. package/es/view/shape/Polyline.js.map +1 -1
  107. package/es/view/shape/Rect.d.ts +11 -13
  108. package/es/view/shape/Rect.js +6 -9
  109. package/es/view/shape/Rect.js.map +1 -1
  110. package/es/view/shape/Text.d.ts +19 -1
  111. package/es/view/shape/Text.js +28 -21
  112. package/es/view/shape/Text.js.map +1 -1
  113. package/es/view/text/BaseText.d.ts +12 -15
  114. package/es/view/text/BaseText.js +37 -27
  115. package/es/view/text/BaseText.js.map +1 -1
  116. package/es/view/text/LineText.d.ts +19 -7
  117. package/es/view/text/LineText.js +62 -54
  118. package/es/view/text/LineText.js.map +1 -1
  119. package/lib/LogicFlow.d.ts +8 -3
  120. package/lib/LogicFlow.js +5 -4
  121. package/lib/LogicFlow.js.map +1 -1
  122. package/lib/common/drag.d.ts +51 -0
  123. package/lib/common/drag.js +148 -0
  124. package/lib/common/drag.js.map +1 -0
  125. package/lib/common/history.d.ts +28 -0
  126. package/lib/common/history.js +95 -0
  127. package/lib/common/history.js.map +1 -0
  128. package/lib/common/index.d.ts +5 -0
  129. package/lib/common/index.js +22 -0
  130. package/lib/common/index.js.map +1 -0
  131. package/lib/common/keyboard.d.ts +34 -0
  132. package/lib/common/keyboard.js +86 -0
  133. package/lib/common/keyboard.js.map +1 -0
  134. package/lib/common/matrix.d.ts +30 -0
  135. package/lib/common/matrix.js +158 -0
  136. package/lib/common/matrix.js.map +1 -0
  137. package/lib/common/vector.d.ts +23 -0
  138. package/lib/common/vector.js +101 -0
  139. package/lib/common/vector.js.map +1 -0
  140. package/lib/constant/index.d.ts +2 -1
  141. package/lib/constant/index.js +1 -0
  142. package/lib/constant/index.js.map +1 -1
  143. package/lib/event/eventArgs.d.ts +6 -0
  144. package/lib/event/eventEmitter.js +0 -1
  145. package/lib/event/eventEmitter.js.map +1 -1
  146. package/lib/index.d.ts +1 -1
  147. package/lib/index.js +2 -2
  148. package/lib/index.js.map +1 -1
  149. package/lib/model/GraphModel.d.ts +12 -1
  150. package/lib/model/GraphModel.js +21 -2
  151. package/lib/model/GraphModel.js.map +1 -1
  152. package/lib/model/SnaplineModel.d.ts +2 -0
  153. package/lib/model/edge/BaseEdgeModel.d.ts +5 -9
  154. package/lib/model/edge/BaseEdgeModel.js +25 -22
  155. package/lib/model/edge/BaseEdgeModel.js.map +1 -1
  156. package/lib/model/edge/BezierEdgeModel.d.ts +2 -0
  157. package/lib/model/edge/LineEdgeModel.d.ts +2 -0
  158. package/lib/model/edge/PolylineEdgeModel.d.ts +2 -0
  159. package/lib/model/node/BaseNodeModel.js +21 -20
  160. package/lib/model/node/BaseNodeModel.js.map +1 -1
  161. package/lib/model/node/CircleNodeModel.d.ts +2 -0
  162. package/lib/model/node/CircleNodeModel.js +2 -2
  163. package/lib/model/node/CircleNodeModel.js.map +1 -1
  164. package/lib/model/node/DiamondNodeModel.d.ts +2 -0
  165. package/lib/model/node/DiamondNodeModel.js +2 -1
  166. package/lib/model/node/DiamondNodeModel.js.map +1 -1
  167. package/lib/model/node/EllipseNodeModel.d.ts +2 -0
  168. package/lib/model/node/EllipseNodeModel.js +2 -1
  169. package/lib/model/node/EllipseNodeModel.js.map +1 -1
  170. package/lib/model/node/HtmlNodeModel.d.ts +2 -2
  171. package/lib/model/node/HtmlNodeModel.js.map +1 -1
  172. package/lib/model/node/PolygonNodeModel.d.ts +2 -0
  173. package/lib/model/node/PolygonNodeModel.js +2 -2
  174. package/lib/model/node/PolygonNodeModel.js.map +1 -1
  175. package/lib/model/node/RectNodeModel.d.ts +3 -0
  176. package/lib/model/node/RectNodeModel.js +8 -2
  177. package/lib/model/node/RectNodeModel.js.map +1 -1
  178. package/lib/model/node/TextNodeModel.d.ts +4 -2
  179. package/lib/options.js +2 -11
  180. package/lib/options.js.map +1 -1
  181. package/lib/tool/tool.js.map +1 -1
  182. package/lib/util/edge.d.ts +6 -0
  183. package/lib/util/edge.js +16 -1
  184. package/lib/util/edge.js.map +1 -1
  185. package/lib/util/node.d.ts +6 -2
  186. package/lib/util/node.js +24 -9
  187. package/lib/util/node.js.map +1 -1
  188. package/lib/view/Anchor.d.ts +1 -1
  189. package/lib/view/Anchor.js +2 -2
  190. package/lib/view/Anchor.js.map +1 -1
  191. package/lib/view/Control.js +14 -2
  192. package/lib/view/Control.js.map +1 -1
  193. package/lib/view/Graph.d.ts +4 -0
  194. package/lib/view/Graph.js +41 -2
  195. package/lib/view/Graph.js.map +1 -1
  196. package/lib/view/edge/AdjustPoint.js +2 -2
  197. package/lib/view/edge/AdjustPoint.js.map +1 -1
  198. package/lib/view/edge/BaseEdge.d.ts +2 -2
  199. package/lib/view/edge/BaseEdge.js +5 -5
  200. package/lib/view/node/BaseNode.d.ts +2 -2
  201. package/lib/view/node/BaseNode.js +5 -5
  202. package/lib/view/node/TextNode.js +1 -1
  203. package/lib/view/node/TextNode.js.map +1 -1
  204. package/lib/view/shape/Circle.d.ts +9 -1
  205. package/lib/view/shape/Circle.js +5 -5
  206. package/lib/view/shape/Circle.js.map +1 -1
  207. package/lib/view/shape/Ellipse.d.ts +10 -1
  208. package/lib/view/shape/Ellipse.js +5 -5
  209. package/lib/view/shape/Ellipse.js.map +1 -1
  210. package/lib/view/shape/Line.d.ts +14 -1
  211. package/lib/view/shape/Line.js +5 -7
  212. package/lib/view/shape/Line.js.map +1 -1
  213. package/lib/view/shape/Path.d.ts +3 -2
  214. package/lib/view/shape/Path.js +3 -3
  215. package/lib/view/shape/Path.js.map +1 -1
  216. package/lib/view/shape/Polygon.d.ts +5 -3
  217. package/lib/view/shape/Polygon.js +6 -6
  218. package/lib/view/shape/Polygon.js.map +1 -1
  219. package/lib/view/shape/Polyline.d.ts +7 -1
  220. package/lib/view/shape/Polyline.js +8 -6
  221. package/lib/view/shape/Polyline.js.map +1 -1
  222. package/lib/view/shape/Rect.d.ts +11 -13
  223. package/lib/view/shape/Rect.js +6 -9
  224. package/lib/view/shape/Rect.js.map +1 -1
  225. package/lib/view/shape/Text.d.ts +19 -1
  226. package/lib/view/shape/Text.js +29 -21
  227. package/lib/view/shape/Text.js.map +1 -1
  228. package/lib/view/text/BaseText.d.ts +12 -15
  229. package/lib/view/text/BaseText.js +40 -27
  230. package/lib/view/text/BaseText.js.map +1 -1
  231. package/lib/view/text/LineText.d.ts +19 -7
  232. package/lib/view/text/LineText.js +62 -57
  233. package/lib/view/text/LineText.js.map +1 -1
  234. package/package.json +2 -1
  235. package/src/LogicFlow.tsx +19 -7
  236. package/src/common/drag.ts +205 -0
  237. package/src/common/history.ts +108 -0
  238. package/src/common/index.ts +6 -0
  239. package/src/common/keyboard.ts +108 -0
  240. package/src/common/matrix.ts +122 -0
  241. package/src/common/vector.ts +93 -0
  242. package/src/constant/index.ts +1 -0
  243. package/src/event/eventArgs.ts +6 -0
  244. package/src/event/eventEmitter.ts +1 -2
  245. package/src/index.ts +1 -1
  246. package/src/model/GraphModel.ts +22 -2
  247. package/src/model/edge/BaseEdgeModel.ts +31 -21
  248. package/src/model/node/BaseNodeModel.ts +27 -19
  249. package/src/model/node/CircleNodeModel.ts +2 -2
  250. package/src/model/node/DiamondNodeModel.ts +2 -0
  251. package/src/model/node/EllipseNodeModel.ts +2 -0
  252. package/src/model/node/HtmlNodeModel.ts +2 -2
  253. package/src/model/node/PolygonNodeModel.ts +2 -2
  254. package/src/model/node/RectNodeModel.ts +9 -2
  255. package/src/options.ts +3 -12
  256. package/src/tool/tool.ts +1 -1
  257. package/src/util/edge.ts +26 -1
  258. package/src/util/node.ts +29 -8
  259. package/src/view/Anchor.tsx +4 -4
  260. package/src/view/Control.tsx +5 -2
  261. package/src/view/Graph.tsx +19 -3
  262. package/src/view/edge/AdjustPoint.tsx +3 -3
  263. package/src/view/edge/BaseEdge.tsx +7 -7
  264. package/src/view/node/BaseNode.tsx +7 -7
  265. package/src/view/node/TextNode.tsx +1 -1
  266. package/src/view/shape/Circle.tsx +21 -7
  267. package/src/view/shape/Ellipse.tsx +20 -6
  268. package/src/view/shape/Line.tsx +24 -9
  269. package/src/view/shape/Path.tsx +9 -6
  270. package/src/view/shape/Polygon.tsx +13 -10
  271. package/src/view/shape/Polyline.tsx +20 -8
  272. package/src/view/shape/Rect.tsx +19 -19
  273. package/src/view/shape/Text.tsx +64 -33
  274. package/src/view/text/BaseText.tsx +67 -41
  275. package/src/view/text/LineText.tsx +94 -80
@@ -41,24 +41,38 @@ var __read = (this && this.__read) || function (o, n) {
41
41
  }
42
42
  return ar;
43
43
  };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
44
47
  Object.defineProperty(exports, "__esModule", { value: true });
45
48
  exports.BaseText = void 0;
46
49
  var jsx_runtime_1 = require("preact/jsx-runtime");
50
+ var classnames_1 = __importDefault(require("classnames"));
47
51
  var compat_1 = require("preact/compat");
52
+ var constant_1 = require("../../constant");
48
53
  var shape_1 = require("../shape");
49
54
  var util_1 = require("../../util");
50
- var constant_1 = require("../../constant");
51
55
  var BaseText = /** @class */ (function (_super) {
52
56
  __extends(BaseText, _super);
53
- function BaseText(config) {
57
+ function BaseText(props) {
54
58
  var _this = _super.call(this) || this;
59
+ _this.mouseDownHandler = function (e) {
60
+ var _a = _this.props, draggable = _a.draggable, model = _a.model, graphModel = _a.graphModel;
61
+ var nodeTextDraggable = graphModel.editConfigModel.nodeTextDraggable;
62
+ if (draggable || nodeTextDraggable) {
63
+ _this.stepperDrag.model = model;
64
+ _this.stepperDrag.handleMouseDown(e);
65
+ }
66
+ };
55
67
  _this.onDragging = function (_a) {
56
68
  var deltaX = _a.deltaX, deltaY = _a.deltaY;
57
69
  var _b = _this.props, model = _b.model, transformModel = _b.graphModel.transformModel;
58
- var _c = __read(transformModel.fixDeltaXY(deltaX, deltaY), 2), curDeltaX = _c[0], curDeltaY = _c[1];
59
- model.moveText(curDeltaX, curDeltaY);
70
+ if (deltaX && deltaY) {
71
+ var _c = __read(transformModel.fixDeltaXY(deltaX, deltaY), 2), curDeltaX = _c[0], curDeltaY = _c[1];
72
+ model.moveText(curDeltaX, curDeltaY);
73
+ }
60
74
  };
61
- _this.dblClickHandler = function () {
75
+ _this.dbClickHandler = function () {
62
76
  // 静默模式下,双击不更改状态,不可编辑
63
77
  var editable = _this.props.editable;
64
78
  if (editable) {
@@ -66,48 +80,47 @@ var BaseText = /** @class */ (function (_super) {
66
80
  model.setElementState(constant_1.ElementState.TEXT_EDIT);
67
81
  }
68
82
  };
69
- _this.mouseDownHandle = function (ev) {
70
- var _a = _this.props, draggable = _a.draggable, model = _a.model, nodeTextDraggable = _a.graphModel.editConfigModel.nodeTextDraggable;
71
- if (draggable || nodeTextDraggable) {
72
- _this.stepDrag.model = model;
73
- _this.stepDrag.handleMouseDown(ev);
74
- }
75
- };
76
- var draggable = config.draggable;
77
- _this.stepDrag = new util_1.StepDrag({
83
+ var draggable = props.draggable;
84
+ // TODO: 确认为什么不在 new 的时候传入 model,而在下面使用的时候赋值
85
+ _this.stepperDrag = new util_1.StepDrag({
78
86
  onDragging: _this.onDragging,
79
87
  step: 1,
88
+ // model,
80
89
  isStopPropagation: draggable,
81
90
  });
82
91
  return _this;
83
92
  }
84
93
  BaseText.prototype.getShape = function () {
85
94
  var _a = this.props, model = _a.model, graphModel = _a.graphModel;
86
- var text = model.text;
87
95
  var editConfigModel = graphModel.editConfigModel;
88
- var value = text.value, x = text.x, y = text.y, editable = text.editable, draggable = text.draggable;
96
+ var _b = model.text, value = _b.value, x = _b.x, y = _b.y, editable = _b.editable, draggable = _b.draggable;
89
97
  var attr = {
90
98
  x: x,
91
99
  y: y,
92
100
  className: '',
93
101
  value: value,
94
102
  };
95
- if (editable) {
96
- attr.className = 'lf-element-text';
97
- }
98
- else if (draggable || editConfigModel.nodeTextDraggable) {
99
- attr.className = 'lf-text-draggable';
100
- }
101
- else {
102
- attr.className = 'lf-text-disabled';
103
- }
103
+ // DONE: 代码优化,看是否可以引入 classnames
104
+ // TODO: 确认下面逻辑是否正确,确认正确后删除下面注释
105
+ // if (editable) {
106
+ // attr.className = 'lf-element-text';
107
+ // } else if (draggable || editConfigModel.nodeTextDraggable) {
108
+ // attr.className = 'lf-text-draggable';
109
+ // } else {
110
+ // attr.className = 'lf-text-disabled';
111
+ // }
104
112
  var style = model.getTextStyle();
105
- return (0, jsx_runtime_1.jsx)(shape_1.Text, __assign({}, attr, style, { model: model }));
113
+ var isDraggable = editConfigModel.nodeTextDraggable || draggable;
114
+ return ((0, jsx_runtime_1.jsx)(shape_1.Text, __assign({}, attr, style, { className: (0, classnames_1.default)({
115
+ 'lf-element-text': editable,
116
+ 'lf-text-draggable': !editable && isDraggable,
117
+ 'lf-text-disabled': !editable && !isDraggable,
118
+ }), model: model })));
106
119
  };
107
120
  BaseText.prototype.render = function () {
108
121
  var text = this.props.model.text;
109
122
  if (text) {
110
- return ((0, jsx_runtime_1.jsx)("g", { onMouseDown: this.mouseDownHandle, onDblClick: this.dblClickHandler, children: this.getShape() }));
123
+ return ((0, jsx_runtime_1.jsx)("g", { onMouseDown: this.mouseDownHandler, onDblClick: this.dbClickHandler, children: this.getShape() }));
111
124
  }
112
125
  };
113
126
  return BaseText;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseText.js","sourceRoot":"","sources":["../../../src/view/text/BaseText.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseText.js","sourceRoot":"","sources":["../../../src/view/text/BaseText.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,21 @@
1
- import BaseText from './BaseText';
2
- export declare class LineText extends BaseText {
3
- constructor(config: any);
4
- getBackground(): import("preact").JSX.Element | undefined;
5
- setHoverON: () => void;
6
- setHoverOFF: () => void;
7
- getShape(): import("preact").JSX.Element | null;
1
+ import { createElement as h } from 'preact/compat';
2
+ import { BaseText } from '.';
3
+ import { BaseEdgeModel, GraphModel } from '../../model';
4
+ export type ILineTextProps = {
5
+ model: BaseEdgeModel;
6
+ graphModel: GraphModel;
7
+ draggable: boolean;
8
+ editable: boolean;
9
+ [key: string]: unknown;
10
+ };
11
+ export type ILineTextState = {
12
+ isHovered: boolean;
13
+ };
14
+ export declare class LineText extends BaseText<ILineTextProps, ILineTextState> {
15
+ constructor(props: ILineTextProps);
16
+ setHoverOn: () => void;
17
+ setHoverOff: () => void;
18
+ getBackground(): h.JSX.Element | null;
19
+ getShape(): h.JSX.Element | null;
8
20
  }
9
21
  export default LineText;
@@ -25,26 +25,39 @@ var __assign = (this && this.__assign) || function () {
25
25
  };
26
26
  return __assign.apply(this, arguments);
27
27
  };
28
- var __importDefault = (this && this.__importDefault) || function (mod) {
29
- return (mod && mod.__esModule) ? mod : { "default": mod };
28
+ var __read = (this && this.__read) || function (o, n) {
29
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
30
+ if (!m) return o;
31
+ var i = m.call(o), r, ar = [], e;
32
+ try {
33
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
34
+ }
35
+ catch (error) { e = { error: error }; }
36
+ finally {
37
+ try {
38
+ if (r && !r.done && (m = i["return"])) m.call(i);
39
+ }
40
+ finally { if (e) throw e.error; }
41
+ }
42
+ return ar;
30
43
  };
31
44
  Object.defineProperty(exports, "__esModule", { value: true });
32
45
  exports.LineText = void 0;
33
46
  var jsx_runtime_1 = require("preact/jsx-runtime");
34
- var Text_1 = __importDefault(require("../shape/Text"));
35
- var Rect_1 = __importDefault(require("../shape/Rect"));
36
- var BaseText_1 = __importDefault(require("./BaseText"));
47
+ var __1 = require("..");
48
+ var _1 = require(".");
37
49
  var util_1 = require("../../util");
38
50
  var LineText = /** @class */ (function (_super) {
39
51
  __extends(LineText, _super);
40
- function LineText(config) {
41
- var _this = _super.call(this, config) || this;
42
- _this.setHoverON = function () {
52
+ function LineText(props) {
53
+ var _this = _super.call(this, props) || this;
54
+ // Hover 状态相关
55
+ _this.setHoverOn = function () {
43
56
  _this.setState({
44
57
  isHovered: true,
45
58
  });
46
59
  };
47
- _this.setHoverOFF = function () {
60
+ _this.setHoverOff = function () {
48
61
  _this.setState({
49
62
  isHovered: false,
50
63
  });
@@ -55,23 +68,22 @@ var LineText = /** @class */ (function (_super) {
55
68
  return _this;
56
69
  }
57
70
  LineText.prototype.getBackground = function () {
71
+ var isHovered = this.state.isHovered;
58
72
  var model = this.props.model;
73
+ var text = model.text;
59
74
  var style = model.getTextStyle();
60
- var text = model.text, modelWidth = model.width;
61
75
  var backgroundStyle = style.background || {};
62
- var isHovered = this.state.isHovered;
63
- if (isHovered && (style === null || style === void 0 ? void 0 : style.hover) && (style === null || style === void 0 ? void 0 : style.hover.background)) {
64
- backgroundStyle = __assign(__assign({}, backgroundStyle), style === null || style === void 0 ? void 0 : style.hover.background);
76
+ if (isHovered && style.hover && style.hover.background) {
77
+ backgroundStyle = __assign(__assign({}, backgroundStyle), style.hover.background);
65
78
  }
66
- // 存在文本并且文本背景不为透明时计算背景框
67
- if (text && text.value && backgroundStyle.fill !== 'transparent') {
68
- var _a = style !== null && style !== void 0 ? style : {}, fontSize = _a.fontSize, overflowMode = _a.overflowMode, lineHeight = _a.lineHeight, wrapPadding = _a.wrapPadding, textWidth = _a.textWidth;
69
- var value = text.value;
70
- var x = text.x, y = text.y;
71
- var rows = String(value).split(/[\r\n]/g);
72
- // 计算行数
79
+ // 当存在文本并且文本背景不为透明时,计算背景框
80
+ if ((text === null || text === void 0 ? void 0 : text.value) && (backgroundStyle === null || backgroundStyle === void 0 ? void 0 : backgroundStyle.fill) !== 'transparent') {
81
+ var fontSize = style.fontSize, textWidth = style.textWidth, lineHeight = style.lineHeight, overflowMode = style.overflowMode;
82
+ var wrapPadding = backgroundStyle.wrapPadding;
83
+ var rows = text === null || text === void 0 ? void 0 : text.value.split(/[\r\n]/g);
73
84
  var rowsLength = rows.length;
74
- var rectAttr = void 0;
85
+ var x = text.x, y = text.y;
86
+ var rectAttr = {};
75
87
  if (overflowMode === 'autoWrap' && textWidth) {
76
88
  var textHeight = (0, util_1.getHtmlTextHeight)({
77
89
  rows: rows,
@@ -84,72 +96,65 @@ var LineText = /** @class */ (function (_super) {
84
96
  rowsLength: rowsLength,
85
97
  className: 'lf-get-text-height',
86
98
  });
87
- rectAttr = __assign(__assign({}, backgroundStyle), { x: x - 1, y: y - 1, width: textWidth, height: textHeight });
99
+ rectAttr = __assign(__assign({}, backgroundStyle), { x: x, y: y, width: textWidth, height: textHeight });
88
100
  }
89
101
  else {
90
- // 计算文本中最长的一行的字节数
91
- var longestBytes_1 = 0;
92
- rows &&
93
- rows.forEach(function (item) {
94
- var rowByteLength = (0, util_1.getBytesLength)(item);
95
- longestBytes_1 =
96
- rowByteLength > longestBytes_1 ? rowByteLength : longestBytes_1;
97
- });
98
- // 背景框宽度,最长一行字节数/2 * fontsize + 2
99
- // 背景框宽度, 行数 * fontsize + 2
100
- var _b = (0, util_1.getSvgTextWidthHeight)({
101
- rows: rows,
102
- fontSize: fontSize,
103
- rowsLength: rowsLength,
104
- }), width = _b.width, height = _b.height;
102
+ // 背景框宽度,最长一行字节数 / 2 * fontSize + 2
103
+ // 背景框宽度,行数 * fontSize + 2
104
+ var _a = (0, util_1.getSvgTextSize)({ rows: rows, rowsLength: rowsLength, fontSize: fontSize }), width = _a.width, height = _a.height;
105
105
  if (overflowMode === 'ellipsis') {
106
106
  // https://github.com/didi/LogicFlow/issues/1151
107
107
  // 边上的文字过长(使用"ellipsis"模式)出现省略号,背景也需要进行宽度的重新计算
108
108
  // 跟Text.tsx保持同样的计算逻辑(overflowMode === 'ellipsis')
109
109
  // Text.tsx使用textRealWidth=textWidth || width
110
110
  // Text.tsx使用foreignObjectHeight = fontSize + 2;
111
- width = textWidth || modelWidth;
111
+ width = textWidth;
112
112
  height = fontSize + 2;
113
113
  }
114
- // 根据设置的padding调整width, height, x, y的值
114
+ // 根据设置的 padding 调整 width, height, x, y 的值
115
+ // TODO: 下面方法感觉可以提取成工具方法
115
116
  if (typeof backgroundStyle.wrapPadding === 'string') {
116
- var paddings = backgroundStyle.wrapPadding
117
+ var padding = backgroundStyle.wrapPadding
117
118
  .split(',')
118
119
  .filter(function (padding) { return padding.trim(); })
119
120
  .map(function (padding) { return parseFloat(padding.trim()); });
120
- if (paddings.length > 0 && paddings.length <= 4) {
121
- if (paddings.length === 1) {
122
- paddings = [paddings[0], paddings[0], paddings[0], paddings[0]];
121
+ if (padding.length > 0 && padding.length <= 4) {
122
+ if (padding.length === 1) {
123
+ var _b = __read(padding, 1), allSides = _b[0];
124
+ padding = [allSides, allSides, allSides, allSides];
123
125
  }
124
- else if (paddings.length === 2) {
125
- paddings = [paddings[0], paddings[1], paddings[0], paddings[1]];
126
+ else if (padding.length === 2) {
127
+ var _c = __read(padding, 2), vertical = _c[0], horizontal = _c[1];
128
+ padding = [vertical, horizontal, vertical, horizontal];
126
129
  }
127
- else if (paddings.length === 3) {
128
- paddings = [paddings[0], paddings[1], paddings[2], paddings[1]];
130
+ else if (padding.length === 3) {
131
+ var _d = __read(padding, 3), top_1 = _d[0], horizontal = _d[1], bottom_1 = _d[2];
132
+ padding = [top_1, horizontal, bottom_1, horizontal];
129
133
  }
130
- width += paddings[1] + paddings[3];
131
- height += paddings[0] + paddings[2];
132
- x = x + (paddings[1] - paddings[3]) / 2;
133
- y = y + (paddings[2] - paddings[0]) / 2;
134
+ var _e = __read(padding, 4), top_2 = _e[0], right = _e[1], bottom = _e[2], left = _e[3];
135
+ width += right + left;
136
+ height += top_2 + bottom;
137
+ x = x + (right - left) / 2;
138
+ y = y + (bottom - top_2) / 2;
134
139
  }
135
140
  }
136
141
  rectAttr = __assign(__assign({}, backgroundStyle), { x: x - 1, y: y - 1, width: width, height: height });
137
142
  }
138
- return (0, jsx_runtime_1.jsx)(Rect_1.default, __assign({}, rectAttr));
143
+ return (0, jsx_runtime_1.jsx)(__1.Rect, __assign({}, rectAttr));
139
144
  }
145
+ return null;
140
146
  };
141
147
  LineText.prototype.getShape = function () {
142
148
  var model = this.props.model;
143
- var text = model.text;
144
- var value = text.value, x = text.x, y = text.y;
149
+ var _a = model.text, x = _a.x, y = _a.y, value = _a.value;
145
150
  if (!value)
146
151
  return null;
147
152
  var style = model.getTextStyle();
148
- var attr = __assign({ x: x, y: y, className: 'lf-element-text', value: value }, style);
149
- return ((0, jsx_runtime_1.jsxs)("g", { className: "lf-line-text", onMouseEnter: this.setHoverON, onMouseLeave: this.setHoverOFF, children: [this.getBackground(), (0, jsx_runtime_1.jsx)(Text_1.default, __assign({}, attr, { model: model }))] }));
153
+ var attrs = __assign({ x: x, y: y, value: value, model: model, className: 'lf-element-text' }, style);
154
+ return ((0, jsx_runtime_1.jsxs)("g", { className: "lf-line-text", onMouseEnter: this.setHoverOn, onMouseLeave: this.setHoverOff, children: [this.getBackground(), (0, jsx_runtime_1.jsx)(__1.Text, __assign({}, attrs))] }));
150
155
  };
151
156
  return LineText;
152
- }(BaseText_1.default));
157
+ }(_1.BaseText));
153
158
  exports.LineText = LineText;
154
159
  exports.default = LineText;
155
160
  //# sourceMappingURL=LineText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LineText.js","sourceRoot":"","sources":["../../../src/view/text/LineText.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LineText.js","sourceRoot":"","sources":["../../../src/view/text/LineText.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logicflow/core",
3
- "version": "2.0.0-beta.2",
3
+ "version": "2.0.0-beta.4",
4
4
  "description": "LogicFlow, help you quickly create flowcharts",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -24,6 +24,7 @@
24
24
  "author": "Logicflow-Team",
25
25
  "license": "Apache-2.0",
26
26
  "dependencies": {
27
+ "lodash-es": "^4.17.21",
27
28
  "classnames": "^2.3.2",
28
29
  "mobx": "^5.15.7",
29
30
  "mobx-preact": "^3.0.0",
package/src/LogicFlow.tsx CHANGED
@@ -81,19 +81,23 @@ export class LogicFlow {
81
81
  * 包括 adapterIn 和 adapterOut 两个方法
82
82
  */
83
83
  // TODO: 如何让用户执行时定义下面方法参数和返回值的类型
84
- private adapterIn?: (data: unknown) => GraphData
85
- private adapterOut?: (data: GraphData, ...rest: any) => unknown;
84
+ adapterIn?: (data: unknown) => GraphData
85
+ adapterOut?: (data: GraphData, ...rest: any) => unknown;
86
86
 
87
87
  // 支持插件在 LogicFlow 实例上增加自定义方法
88
88
  [propName: string]: any
89
89
 
90
- private initContainer(container: HTMLElement | HTMLDivElement) {
90
+ private initContainer(
91
+ container: HTMLElement | HTMLDivElement,
92
+ width?: number,
93
+ height?: number,
94
+ ) {
91
95
  // TODO: 确认是否需要,后续是否只要返回 container 即可(下面方法是为了解决事件绑定问题的)
92
96
  // fix: destroy keyboard events while destroy LogicFlow.(#1110)
93
97
  const lfContainer = document.createElement('div')
94
98
  lfContainer.style.position = 'relative'
95
- lfContainer.style.width = '100%'
96
- lfContainer.style.height = '100%'
99
+ lfContainer.style.width = width ? `${width}px` : '100%'
100
+ lfContainer.style.height = height ? `${height}px` : '100%'
97
101
  container.innerHTML = ''
98
102
  container.appendChild(lfContainer)
99
103
  return lfContainer
@@ -105,8 +109,9 @@ export class LogicFlow {
105
109
 
106
110
  constructor(options: LFOptions.Common) {
107
111
  const initOptions = LFOptions.get(options)
112
+ const { container, width, height } = initOptions
108
113
  this.options = initOptions
109
- this.container = this.initContainer(initOptions.container)
114
+ this.container = this.initContainer(container, width, height)
110
115
  this.graphModel = new GraphModel({
111
116
  ...initOptions,
112
117
  container: this.container, // TODO:测试该部分是否会有问题
@@ -1433,9 +1438,12 @@ export namespace LogicFlow {
1433
1438
  }
1434
1439
  export type TextConfig = {
1435
1440
  value: string
1441
+ x: number
1442
+ y: number
1436
1443
  editable?: boolean
1437
1444
  draggable?: boolean
1438
- } & Position
1445
+ // overflowMode?: 'default' | 'autoWrap' | 'ellipsis'
1446
+ }
1439
1447
 
1440
1448
  export type AppendConfig = {
1441
1449
  startIndex: number
@@ -1566,6 +1574,8 @@ export namespace LogicFlow {
1566
1574
  radius?: number
1567
1575
  rx?: number
1568
1576
  ry?: number
1577
+ width?: number
1578
+ height?: number
1569
1579
  path?: string
1570
1580
  [key: string]: unknown
1571
1581
  }
@@ -1649,6 +1659,7 @@ export namespace LogicFlow {
1649
1659
  * ellipsis: 超出省略
1650
1660
  */
1651
1661
  overflowMode?: 'default' | 'autoWrap' | 'ellipsis'
1662
+ textWidth?: number
1652
1663
  background?: RectTheme
1653
1664
  /**
1654
1665
  * 背景区域 padding
@@ -1656,6 +1667,7 @@ export namespace LogicFlow {
1656
1667
  */
1657
1668
  wrapPadding?: string
1658
1669
  } & TextTheme
1670
+
1659
1671
  // 边上文本样式
1660
1672
  export type EdgeTextTheme = {
1661
1673
  textWidth: number