@logicflow/core 2.0.0 → 2.0.2

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 (450) hide show
  1. package/.turbo/turbo-build$colon$dev.log +2 -2
  2. package/.turbo/turbo-build.log +7 -10
  3. package/CHANGELOG.md +131 -71
  4. package/dist/index.min.js +1 -31
  5. package/dist/index.min.js.map +1 -1
  6. package/es/LogicFlow.js +0 -1
  7. package/es/algorithm/edge.js +0 -1
  8. package/es/algorithm/index.js +0 -1
  9. package/es/algorithm/outline.js +0 -1
  10. package/es/common/drag.js +0 -1
  11. package/es/common/history.js +0 -1
  12. package/es/common/index.js +0 -1
  13. package/es/common/keyboard.js +0 -1
  14. package/es/common/matrix.js +0 -1
  15. package/es/common/vector.js +0 -1
  16. package/es/constant/index.js +0 -1
  17. package/es/event/eventArgs.js +0 -1
  18. package/es/event/eventEmitter.js +0 -1
  19. package/es/history/index.js +0 -1
  20. package/es/index.js +0 -1
  21. package/es/keyboard/index.js +0 -1
  22. package/es/keyboard/shortcut.js +0 -1
  23. package/es/model/BaseModel.js +0 -1
  24. package/es/model/EditConfigModel.js +0 -1
  25. package/es/model/GraphModel.d.ts +5 -11
  26. package/es/model/GraphModel.js +24 -9
  27. package/es/model/SnaplineModel.js +0 -1
  28. package/es/model/TransformModel.js +0 -1
  29. package/es/model/edge/BaseEdgeModel.js +6 -6
  30. package/es/model/edge/BezierEdgeModel.js +0 -1
  31. package/es/model/edge/LineEdgeModel.js +0 -1
  32. package/es/model/edge/PolylineEdgeModel.js +0 -1
  33. package/es/model/edge/index.js +0 -1
  34. package/es/model/index.js +0 -1
  35. package/es/model/node/BaseNodeModel.d.ts +1 -0
  36. package/es/model/node/BaseNodeModel.js +13 -16
  37. package/es/model/node/CircleNodeModel.js +1 -1
  38. package/es/model/node/DiamondNodeModel.js +1 -1
  39. package/es/model/node/EllipseNodeModel.js +1 -1
  40. package/es/model/node/HtmlNodeModel.js +0 -1
  41. package/es/model/node/PolygonNodeModel.js +1 -1
  42. package/es/model/node/RectNodeModel.js +5 -5
  43. package/es/model/node/TextNodeModel.js +0 -1
  44. package/es/model/node/index.js +0 -1
  45. package/es/options.js +0 -1
  46. package/es/style/raw.js +0 -1
  47. package/es/tool/MultipleSelectTool.js +0 -1
  48. package/es/tool/TextEditTool.js +0 -1
  49. package/es/tool/index.js +0 -1
  50. package/es/util/animation.js +0 -1
  51. package/es/util/browser.js +0 -1
  52. package/es/util/compatible.js +0 -1
  53. package/es/util/drag.js +2 -1
  54. package/es/util/edge.js +0 -1
  55. package/es/util/geometry.js +0 -1
  56. package/es/util/graph.js +0 -1
  57. package/es/util/index.js +0 -1
  58. package/es/util/matrix.js +0 -1
  59. package/es/util/mobx.js +0 -1
  60. package/es/util/node.js +0 -1
  61. package/es/util/raf.js +0 -1
  62. package/es/util/resize.js +0 -1
  63. package/es/util/sampling.js +0 -1
  64. package/es/util/theme.js +0 -1
  65. package/es/util/uuid.js +0 -1
  66. package/es/util/vector.js +0 -1
  67. package/es/util/zIndex.js +0 -1
  68. package/es/view/Anchor.d.ts +1 -1
  69. package/es/view/Anchor.js +2 -3
  70. package/es/view/Control.js +0 -1
  71. package/es/view/Graph.d.ts +2 -1
  72. package/es/view/Graph.js +3 -3
  73. package/es/view/Rotate.js +0 -1
  74. package/es/view/behavior/dnd.js +0 -1
  75. package/es/view/behavior/index.js +0 -1
  76. package/es/view/behavior/snapline.js +0 -1
  77. package/es/view/edge/AdjustPoint.js +0 -1
  78. package/es/view/edge/Arrow.js +0 -1
  79. package/es/view/edge/BaseEdge.js +0 -1
  80. package/es/view/edge/BezierEdge.js +0 -1
  81. package/es/view/edge/LineEdge.js +0 -1
  82. package/es/view/edge/PolylineEdge.js +0 -1
  83. package/es/view/edge/index.js +0 -1
  84. package/es/view/index.js +0 -1
  85. package/es/view/node/BaseNode.js +0 -1
  86. package/es/view/node/CircleNode.js +0 -1
  87. package/es/view/node/DiamondNode.js +0 -1
  88. package/es/view/node/EllipseNode.js +0 -1
  89. package/es/view/node/HtmlNode.js +0 -1
  90. package/es/view/node/PolygonNode.js +0 -1
  91. package/es/view/node/RectNode.js +0 -1
  92. package/es/view/node/TextNode.js +0 -1
  93. package/es/view/node/index.js +0 -1
  94. package/es/view/overlay/BackgroundOverlay.js +0 -1
  95. package/es/view/overlay/BezierAdjustOverlay.js +0 -1
  96. package/es/view/overlay/CanvasOverlay.js +0 -1
  97. package/es/view/overlay/Grid.js +0 -1
  98. package/es/view/overlay/ModificationOverlay.js +0 -1
  99. package/es/view/overlay/OutlineOverlay.js +0 -1
  100. package/es/view/overlay/SnaplineOverlay.js +0 -1
  101. package/es/view/overlay/ToolOverlay.js +0 -1
  102. package/es/view/overlay/getTransformHoc.js +0 -1
  103. package/es/view/overlay/index.js +0 -1
  104. package/es/view/shape/Circle.js +0 -1
  105. package/es/view/shape/Ellipse.js +0 -1
  106. package/es/view/shape/Line.js +0 -1
  107. package/es/view/shape/Path.js +0 -1
  108. package/es/view/shape/Polygon.js +0 -1
  109. package/es/view/shape/Polyline.js +0 -1
  110. package/es/view/shape/Rect.js +0 -1
  111. package/es/view/shape/Text.js +0 -1
  112. package/es/view/shape/index.js +0 -1
  113. package/es/view/text/BaseText.js +0 -1
  114. package/es/view/text/LineText.js +0 -1
  115. package/es/view/text/index.js +0 -1
  116. package/lib/LogicFlow.js +0 -1
  117. package/lib/algorithm/edge.js +0 -1
  118. package/lib/algorithm/index.js +0 -1
  119. package/lib/algorithm/outline.js +0 -1
  120. package/lib/common/drag.js +0 -1
  121. package/lib/common/history.js +0 -1
  122. package/lib/common/index.js +0 -1
  123. package/lib/common/keyboard.js +0 -1
  124. package/lib/common/matrix.js +0 -1
  125. package/lib/common/vector.js +0 -1
  126. package/lib/constant/index.js +0 -1
  127. package/lib/event/eventArgs.js +0 -1
  128. package/lib/event/eventEmitter.js +0 -1
  129. package/lib/history/index.js +0 -1
  130. package/lib/index.js +0 -1
  131. package/lib/keyboard/index.js +0 -1
  132. package/lib/keyboard/shortcut.js +0 -1
  133. package/lib/model/BaseModel.js +0 -1
  134. package/lib/model/EditConfigModel.js +0 -1
  135. package/lib/model/GraphModel.d.ts +5 -11
  136. package/lib/model/GraphModel.js +24 -9
  137. package/lib/model/SnaplineModel.js +0 -1
  138. package/lib/model/TransformModel.js +0 -1
  139. package/lib/model/edge/BaseEdgeModel.js +5 -5
  140. package/lib/model/edge/BezierEdgeModel.js +0 -1
  141. package/lib/model/edge/LineEdgeModel.js +0 -1
  142. package/lib/model/edge/PolylineEdgeModel.js +0 -1
  143. package/lib/model/edge/index.js +0 -1
  144. package/lib/model/index.js +0 -1
  145. package/lib/model/node/BaseNodeModel.d.ts +1 -0
  146. package/lib/model/node/BaseNodeModel.js +12 -15
  147. package/lib/model/node/CircleNodeModel.js +1 -1
  148. package/lib/model/node/DiamondNodeModel.js +1 -1
  149. package/lib/model/node/EllipseNodeModel.js +1 -1
  150. package/lib/model/node/HtmlNodeModel.js +0 -1
  151. package/lib/model/node/PolygonNodeModel.js +1 -1
  152. package/lib/model/node/RectNodeModel.js +4 -4
  153. package/lib/model/node/TextNodeModel.js +0 -1
  154. package/lib/model/node/index.js +0 -1
  155. package/lib/options.js +0 -1
  156. package/lib/style/raw.js +0 -1
  157. package/lib/tool/MultipleSelectTool.js +0 -1
  158. package/lib/tool/TextEditTool.js +0 -1
  159. package/lib/tool/index.js +0 -1
  160. package/lib/util/animation.js +0 -1
  161. package/lib/util/browser.js +0 -1
  162. package/lib/util/compatible.js +0 -1
  163. package/lib/util/drag.js +2 -1
  164. package/lib/util/edge.js +0 -1
  165. package/lib/util/geometry.js +0 -1
  166. package/lib/util/graph.js +0 -1
  167. package/lib/util/index.js +0 -1
  168. package/lib/util/matrix.js +0 -1
  169. package/lib/util/mobx.js +0 -1
  170. package/lib/util/node.js +0 -1
  171. package/lib/util/raf.js +0 -1
  172. package/lib/util/resize.js +0 -1
  173. package/lib/util/sampling.js +0 -1
  174. package/lib/util/theme.js +0 -1
  175. package/lib/util/uuid.js +0 -1
  176. package/lib/util/vector.js +0 -1
  177. package/lib/util/zIndex.js +0 -1
  178. package/lib/view/Anchor.d.ts +1 -1
  179. package/lib/view/Anchor.js +2 -3
  180. package/lib/view/Control.js +0 -1
  181. package/lib/view/Graph.d.ts +2 -1
  182. package/lib/view/Graph.js +3 -3
  183. package/lib/view/Rotate.js +0 -1
  184. package/lib/view/behavior/dnd.js +0 -1
  185. package/lib/view/behavior/index.js +0 -1
  186. package/lib/view/behavior/snapline.js +0 -1
  187. package/lib/view/edge/AdjustPoint.js +0 -1
  188. package/lib/view/edge/Arrow.js +0 -1
  189. package/lib/view/edge/BaseEdge.js +0 -1
  190. package/lib/view/edge/BezierEdge.js +0 -1
  191. package/lib/view/edge/LineEdge.js +0 -1
  192. package/lib/view/edge/PolylineEdge.js +0 -1
  193. package/lib/view/edge/index.js +0 -1
  194. package/lib/view/index.js +0 -1
  195. package/lib/view/node/BaseNode.js +0 -1
  196. package/lib/view/node/CircleNode.js +0 -1
  197. package/lib/view/node/DiamondNode.js +0 -1
  198. package/lib/view/node/EllipseNode.js +0 -1
  199. package/lib/view/node/HtmlNode.js +0 -1
  200. package/lib/view/node/PolygonNode.js +0 -1
  201. package/lib/view/node/RectNode.js +0 -1
  202. package/lib/view/node/TextNode.js +0 -1
  203. package/lib/view/node/index.js +0 -1
  204. package/lib/view/overlay/BackgroundOverlay.js +0 -1
  205. package/lib/view/overlay/BezierAdjustOverlay.js +0 -1
  206. package/lib/view/overlay/CanvasOverlay.js +0 -1
  207. package/lib/view/overlay/Grid.js +0 -1
  208. package/lib/view/overlay/ModificationOverlay.js +0 -1
  209. package/lib/view/overlay/OutlineOverlay.js +0 -1
  210. package/lib/view/overlay/SnaplineOverlay.js +0 -1
  211. package/lib/view/overlay/ToolOverlay.js +0 -1
  212. package/lib/view/overlay/getTransformHoc.js +0 -1
  213. package/lib/view/overlay/index.js +0 -1
  214. package/lib/view/shape/Circle.js +0 -1
  215. package/lib/view/shape/Ellipse.js +0 -1
  216. package/lib/view/shape/Line.js +0 -1
  217. package/lib/view/shape/Path.js +0 -1
  218. package/lib/view/shape/Polygon.js +0 -1
  219. package/lib/view/shape/Polyline.js +0 -1
  220. package/lib/view/shape/Rect.js +0 -1
  221. package/lib/view/shape/Text.js +0 -1
  222. package/lib/view/shape/index.js +0 -1
  223. package/lib/view/text/BaseText.js +0 -1
  224. package/lib/view/text/LineText.js +0 -1
  225. package/lib/view/text/index.js +0 -1
  226. package/package.json +1 -1
  227. package/src/model/GraphModel.ts +26 -14
  228. package/src/model/edge/BaseEdgeModel.ts +8 -11
  229. package/src/model/node/BaseNodeModel.ts +23 -17
  230. package/src/model/node/CircleNodeModel.ts +1 -0
  231. package/src/model/node/DiamondNodeModel.ts +1 -0
  232. package/src/model/node/EllipseNodeModel.ts +1 -0
  233. package/src/model/node/PolygonNodeModel.ts +1 -0
  234. package/src/model/node/RectNodeModel.ts +7 -4
  235. package/src/util/drag.ts +2 -0
  236. package/src/view/Anchor.tsx +2 -2
  237. package/src/view/Graph.tsx +8 -3
  238. package/stats.html +4842 -0
  239. package/es/LogicFlow.js.map +0 -1
  240. package/es/algorithm/edge.js.map +0 -1
  241. package/es/algorithm/index.js.map +0 -1
  242. package/es/algorithm/outline.js.map +0 -1
  243. package/es/common/drag.js.map +0 -1
  244. package/es/common/history.js.map +0 -1
  245. package/es/common/index.js.map +0 -1
  246. package/es/common/keyboard.js.map +0 -1
  247. package/es/common/matrix.js.map +0 -1
  248. package/es/common/vector.js.map +0 -1
  249. package/es/constant/index.js.map +0 -1
  250. package/es/event/eventArgs.js.map +0 -1
  251. package/es/event/eventEmitter.js.map +0 -1
  252. package/es/history/index.js.map +0 -1
  253. package/es/index.js.map +0 -1
  254. package/es/keyboard/index.js.map +0 -1
  255. package/es/keyboard/shortcut.js.map +0 -1
  256. package/es/model/BaseModel.js.map +0 -1
  257. package/es/model/EditConfigModel.js.map +0 -1
  258. package/es/model/GraphModel.js.map +0 -1
  259. package/es/model/SnaplineModel.js.map +0 -1
  260. package/es/model/TransformModel.js.map +0 -1
  261. package/es/model/edge/BaseEdgeModel.js.map +0 -1
  262. package/es/model/edge/BezierEdgeModel.js.map +0 -1
  263. package/es/model/edge/LineEdgeModel.js.map +0 -1
  264. package/es/model/edge/PolylineEdgeModel.js.map +0 -1
  265. package/es/model/edge/index.js.map +0 -1
  266. package/es/model/index.js.map +0 -1
  267. package/es/model/node/BaseNodeModel.js.map +0 -1
  268. package/es/model/node/CircleNodeModel.js.map +0 -1
  269. package/es/model/node/DiamondNodeModel.js.map +0 -1
  270. package/es/model/node/EllipseNodeModel.js.map +0 -1
  271. package/es/model/node/HtmlNodeModel.js.map +0 -1
  272. package/es/model/node/PolygonNodeModel.js.map +0 -1
  273. package/es/model/node/RectNodeModel.js.map +0 -1
  274. package/es/model/node/TextNodeModel.js.map +0 -1
  275. package/es/model/node/index.js.map +0 -1
  276. package/es/options.js.map +0 -1
  277. package/es/style/raw.js.map +0 -1
  278. package/es/tool/MultipleSelectTool.js.map +0 -1
  279. package/es/tool/TextEditTool.js.map +0 -1
  280. package/es/tool/index.js.map +0 -1
  281. package/es/util/animation.js.map +0 -1
  282. package/es/util/browser.js.map +0 -1
  283. package/es/util/compatible.js.map +0 -1
  284. package/es/util/drag.js.map +0 -1
  285. package/es/util/edge.js.map +0 -1
  286. package/es/util/geometry.js.map +0 -1
  287. package/es/util/graph.js.map +0 -1
  288. package/es/util/index.js.map +0 -1
  289. package/es/util/matrix.js.map +0 -1
  290. package/es/util/mobx.js.map +0 -1
  291. package/es/util/node.js.map +0 -1
  292. package/es/util/raf.js.map +0 -1
  293. package/es/util/resize.js.map +0 -1
  294. package/es/util/sampling.js.map +0 -1
  295. package/es/util/theme.js.map +0 -1
  296. package/es/util/uuid.js.map +0 -1
  297. package/es/util/vector.js.map +0 -1
  298. package/es/util/zIndex.js.map +0 -1
  299. package/es/view/Anchor.js.map +0 -1
  300. package/es/view/Control.js.map +0 -1
  301. package/es/view/Graph.js.map +0 -1
  302. package/es/view/Rotate.js.map +0 -1
  303. package/es/view/behavior/dnd.js.map +0 -1
  304. package/es/view/behavior/index.js.map +0 -1
  305. package/es/view/behavior/snapline.js.map +0 -1
  306. package/es/view/edge/AdjustPoint.js.map +0 -1
  307. package/es/view/edge/Arrow.js.map +0 -1
  308. package/es/view/edge/BaseEdge.js.map +0 -1
  309. package/es/view/edge/BezierEdge.js.map +0 -1
  310. package/es/view/edge/LineEdge.js.map +0 -1
  311. package/es/view/edge/PolylineEdge.js.map +0 -1
  312. package/es/view/edge/index.js.map +0 -1
  313. package/es/view/index.js.map +0 -1
  314. package/es/view/node/BaseNode.js.map +0 -1
  315. package/es/view/node/CircleNode.js.map +0 -1
  316. package/es/view/node/DiamondNode.js.map +0 -1
  317. package/es/view/node/EllipseNode.js.map +0 -1
  318. package/es/view/node/HtmlNode.js.map +0 -1
  319. package/es/view/node/PolygonNode.js.map +0 -1
  320. package/es/view/node/RectNode.js.map +0 -1
  321. package/es/view/node/TextNode.js.map +0 -1
  322. package/es/view/node/index.js.map +0 -1
  323. package/es/view/overlay/BackgroundOverlay.js.map +0 -1
  324. package/es/view/overlay/BezierAdjustOverlay.js.map +0 -1
  325. package/es/view/overlay/CanvasOverlay.js.map +0 -1
  326. package/es/view/overlay/Grid.js.map +0 -1
  327. package/es/view/overlay/ModificationOverlay.js.map +0 -1
  328. package/es/view/overlay/OutlineOverlay.js.map +0 -1
  329. package/es/view/overlay/SnaplineOverlay.js.map +0 -1
  330. package/es/view/overlay/ToolOverlay.js.map +0 -1
  331. package/es/view/overlay/getTransformHoc.js.map +0 -1
  332. package/es/view/overlay/index.js.map +0 -1
  333. package/es/view/shape/Circle.js.map +0 -1
  334. package/es/view/shape/Ellipse.js.map +0 -1
  335. package/es/view/shape/Line.js.map +0 -1
  336. package/es/view/shape/Path.js.map +0 -1
  337. package/es/view/shape/Polygon.js.map +0 -1
  338. package/es/view/shape/Polyline.js.map +0 -1
  339. package/es/view/shape/Rect.js.map +0 -1
  340. package/es/view/shape/Text.js.map +0 -1
  341. package/es/view/shape/index.js.map +0 -1
  342. package/es/view/text/BaseText.js.map +0 -1
  343. package/es/view/text/LineText.js.map +0 -1
  344. package/es/view/text/index.js.map +0 -1
  345. package/lib/LogicFlow.js.map +0 -1
  346. package/lib/algorithm/edge.js.map +0 -1
  347. package/lib/algorithm/index.js.map +0 -1
  348. package/lib/algorithm/outline.js.map +0 -1
  349. package/lib/common/drag.js.map +0 -1
  350. package/lib/common/history.js.map +0 -1
  351. package/lib/common/index.js.map +0 -1
  352. package/lib/common/keyboard.js.map +0 -1
  353. package/lib/common/matrix.js.map +0 -1
  354. package/lib/common/vector.js.map +0 -1
  355. package/lib/constant/index.js.map +0 -1
  356. package/lib/event/eventArgs.js.map +0 -1
  357. package/lib/event/eventEmitter.js.map +0 -1
  358. package/lib/history/index.js.map +0 -1
  359. package/lib/index.js.map +0 -1
  360. package/lib/keyboard/index.js.map +0 -1
  361. package/lib/keyboard/shortcut.js.map +0 -1
  362. package/lib/model/BaseModel.js.map +0 -1
  363. package/lib/model/EditConfigModel.js.map +0 -1
  364. package/lib/model/GraphModel.js.map +0 -1
  365. package/lib/model/SnaplineModel.js.map +0 -1
  366. package/lib/model/TransformModel.js.map +0 -1
  367. package/lib/model/edge/BaseEdgeModel.js.map +0 -1
  368. package/lib/model/edge/BezierEdgeModel.js.map +0 -1
  369. package/lib/model/edge/LineEdgeModel.js.map +0 -1
  370. package/lib/model/edge/PolylineEdgeModel.js.map +0 -1
  371. package/lib/model/edge/index.js.map +0 -1
  372. package/lib/model/index.js.map +0 -1
  373. package/lib/model/node/BaseNodeModel.js.map +0 -1
  374. package/lib/model/node/CircleNodeModel.js.map +0 -1
  375. package/lib/model/node/DiamondNodeModel.js.map +0 -1
  376. package/lib/model/node/EllipseNodeModel.js.map +0 -1
  377. package/lib/model/node/HtmlNodeModel.js.map +0 -1
  378. package/lib/model/node/PolygonNodeModel.js.map +0 -1
  379. package/lib/model/node/RectNodeModel.js.map +0 -1
  380. package/lib/model/node/TextNodeModel.js.map +0 -1
  381. package/lib/model/node/index.js.map +0 -1
  382. package/lib/options.js.map +0 -1
  383. package/lib/style/raw.js.map +0 -1
  384. package/lib/tool/MultipleSelectTool.js.map +0 -1
  385. package/lib/tool/TextEditTool.js.map +0 -1
  386. package/lib/tool/index.js.map +0 -1
  387. package/lib/util/animation.js.map +0 -1
  388. package/lib/util/browser.js.map +0 -1
  389. package/lib/util/compatible.js.map +0 -1
  390. package/lib/util/drag.js.map +0 -1
  391. package/lib/util/edge.js.map +0 -1
  392. package/lib/util/geometry.js.map +0 -1
  393. package/lib/util/graph.js.map +0 -1
  394. package/lib/util/index.js.map +0 -1
  395. package/lib/util/matrix.js.map +0 -1
  396. package/lib/util/mobx.js.map +0 -1
  397. package/lib/util/node.js.map +0 -1
  398. package/lib/util/raf.js.map +0 -1
  399. package/lib/util/resize.js.map +0 -1
  400. package/lib/util/sampling.js.map +0 -1
  401. package/lib/util/theme.js.map +0 -1
  402. package/lib/util/uuid.js.map +0 -1
  403. package/lib/util/vector.js.map +0 -1
  404. package/lib/util/zIndex.js.map +0 -1
  405. package/lib/view/Anchor.js.map +0 -1
  406. package/lib/view/Control.js.map +0 -1
  407. package/lib/view/Graph.js.map +0 -1
  408. package/lib/view/Rotate.js.map +0 -1
  409. package/lib/view/behavior/dnd.js.map +0 -1
  410. package/lib/view/behavior/index.js.map +0 -1
  411. package/lib/view/behavior/snapline.js.map +0 -1
  412. package/lib/view/edge/AdjustPoint.js.map +0 -1
  413. package/lib/view/edge/Arrow.js.map +0 -1
  414. package/lib/view/edge/BaseEdge.js.map +0 -1
  415. package/lib/view/edge/BezierEdge.js.map +0 -1
  416. package/lib/view/edge/LineEdge.js.map +0 -1
  417. package/lib/view/edge/PolylineEdge.js.map +0 -1
  418. package/lib/view/edge/index.js.map +0 -1
  419. package/lib/view/index.js.map +0 -1
  420. package/lib/view/node/BaseNode.js.map +0 -1
  421. package/lib/view/node/CircleNode.js.map +0 -1
  422. package/lib/view/node/DiamondNode.js.map +0 -1
  423. package/lib/view/node/EllipseNode.js.map +0 -1
  424. package/lib/view/node/HtmlNode.js.map +0 -1
  425. package/lib/view/node/PolygonNode.js.map +0 -1
  426. package/lib/view/node/RectNode.js.map +0 -1
  427. package/lib/view/node/TextNode.js.map +0 -1
  428. package/lib/view/node/index.js.map +0 -1
  429. package/lib/view/overlay/BackgroundOverlay.js.map +0 -1
  430. package/lib/view/overlay/BezierAdjustOverlay.js.map +0 -1
  431. package/lib/view/overlay/CanvasOverlay.js.map +0 -1
  432. package/lib/view/overlay/Grid.js.map +0 -1
  433. package/lib/view/overlay/ModificationOverlay.js.map +0 -1
  434. package/lib/view/overlay/OutlineOverlay.js.map +0 -1
  435. package/lib/view/overlay/SnaplineOverlay.js.map +0 -1
  436. package/lib/view/overlay/ToolOverlay.js.map +0 -1
  437. package/lib/view/overlay/getTransformHoc.js.map +0 -1
  438. package/lib/view/overlay/index.js.map +0 -1
  439. package/lib/view/shape/Circle.js.map +0 -1
  440. package/lib/view/shape/Ellipse.js.map +0 -1
  441. package/lib/view/shape/Line.js.map +0 -1
  442. package/lib/view/shape/Path.js.map +0 -1
  443. package/lib/view/shape/Polygon.js.map +0 -1
  444. package/lib/view/shape/Polyline.js.map +0 -1
  445. package/lib/view/shape/Rect.js.map +0 -1
  446. package/lib/view/shape/Text.js.map +0 -1
  447. package/lib/view/shape/index.js.map +0 -1
  448. package/lib/view/text/BaseText.js.map +0 -1
  449. package/lib/view/text/LineText.js.map +0 -1
  450. package/lib/view/text/index.js.map +0 -1
@@ -277,4 +277,3 @@ var PolylineEdge = /** @class */ (function (_super) {
277
277
  }(BaseEdge_1.default));
278
278
  exports.PolylineEdge = PolylineEdge;
279
279
  exports.default = PolylineEdge;
280
- //# sourceMappingURL=PolylineEdge.js.map
@@ -20,4 +20,3 @@ __exportStar(require("./BaseEdge"), exports);
20
20
  __exportStar(require("./BezierEdge"), exports);
21
21
  __exportStar(require("./LineEdge"), exports);
22
22
  __exportStar(require("./PolylineEdge"), exports);
23
- //# sourceMappingURL=index.js.map
package/lib/view/index.js CHANGED
@@ -21,4 +21,3 @@ __exportStar(require("./shape"), exports);
21
21
  __exportStar(require("./node"), exports);
22
22
  __exportStar(require("./edge"), exports);
23
23
  __exportStar(require("./text"), exports);
24
- //# sourceMappingURL=index.js.map
@@ -430,4 +430,3 @@ var BaseNode = /** @class */ (function (_super) {
430
430
  }(compat_1.Component));
431
431
  exports.BaseNode = BaseNode;
432
432
  exports.default = BaseNode;
433
- //# sourceMappingURL=BaseNode.js.map
@@ -48,4 +48,3 @@ var CircleNode = /** @class */ (function (_super) {
48
48
  }(BaseNode_1.default));
49
49
  exports.CircleNode = CircleNode;
50
50
  exports.default = CircleNode;
51
- //# sourceMappingURL=CircleNode.js.map
@@ -47,4 +47,3 @@ var DiamondNode = /** @class */ (function (_super) {
47
47
  }(BaseNode_1.default));
48
48
  exports.DiamondNode = DiamondNode;
49
49
  exports.default = DiamondNode;
50
- //# sourceMappingURL=DiamondNode.js.map
@@ -47,4 +47,3 @@ var EllipseNode = /** @class */ (function (_super) {
47
47
  }(BaseNode_1.default));
48
48
  exports.EllipseNode = EllipseNode;
49
49
  exports.default = EllipseNode;
50
- //# sourceMappingURL=EllipseNode.js.map
@@ -132,4 +132,3 @@ var HtmlNode = /** @class */ (function (_super) {
132
132
  }(BaseNode_1.default));
133
133
  exports.HtmlNode = HtmlNode;
134
134
  exports.default = HtmlNode;
135
- //# sourceMappingURL=HtmlNode.js.map
@@ -51,4 +51,3 @@ var PolygonNode = /** @class */ (function (_super) {
51
51
  }(BaseNode_1.default));
52
52
  exports.PolygonNode = PolygonNode;
53
53
  exports.default = PolygonNode;
54
- //# sourceMappingURL=PolygonNode.js.map
@@ -47,4 +47,3 @@ var RectNode = /** @class */ (function (_super) {
47
47
  }(BaseNode_1.default));
48
48
  exports.RectNode = RectNode;
49
49
  exports.default = RectNode;
50
- //# sourceMappingURL=RectNode.js.map
@@ -58,4 +58,3 @@ var TextNode = /** @class */ (function (_super) {
58
58
  }(BaseNode_1.default));
59
59
  exports.TextNode = TextNode;
60
60
  exports.default = TextNode;
61
- //# sourceMappingURL=TextNode.js.map
@@ -22,4 +22,3 @@ __exportStar(require("./DiamondNode"), exports);
22
22
  __exportStar(require("./EllipseNode"), exports);
23
23
  __exportStar(require("./TextNode"), exports);
24
24
  __exportStar(require("./HtmlNode"), exports);
25
- //# sourceMappingURL=index.js.map
@@ -31,4 +31,3 @@ var BackgroundOverlay = /** @class */ (function (_super) {
31
31
  }(compat_1.Component));
32
32
  exports.BackgroundOverlay = BackgroundOverlay;
33
33
  exports.default = BackgroundOverlay;
34
- //# sourceMappingURL=BackgroundOverlay.js.map
@@ -142,4 +142,3 @@ var BezierAdjustOverlay = /** @class */ (function (_super) {
142
142
  }(compat_1.Component));
143
143
  exports.BezierAdjustOverlay = BezierAdjustOverlay;
144
144
  exports.default = BezierAdjustOverlay;
145
- //# sourceMappingURL=BezierAdjustOverlay.js.map
@@ -173,4 +173,3 @@ var CanvasOverlay = /** @class */ (function (_super) {
173
173
  }(compat_1.Component));
174
174
  exports.CanvasOverlay = CanvasOverlay;
175
175
  exports.default = CanvasOverlay;
176
- //# sourceMappingURL=CanvasOverlay.js.map
@@ -127,4 +127,3 @@ exports.Grid = Grid;
127
127
  }
128
128
  Grid.getGridOptions = getGridOptions;
129
129
  })(Grid || (exports.Grid = Grid = {}));
130
- //# sourceMappingURL=Grid.js.map
@@ -43,4 +43,3 @@ var ModificationOverlay = /** @class */ (function (_super) {
43
43
  }(compat_1.Component));
44
44
  exports.ModificationOverlay = ModificationOverlay;
45
45
  exports.default = ModificationOverlay;
46
- //# sourceMappingURL=ModificationOverlay.js.map
@@ -134,4 +134,3 @@ var OutlineOverlay = /** @class */ (function (_super) {
134
134
  }(compat_1.Component));
135
135
  exports.OutlineOverlay = OutlineOverlay;
136
136
  exports.default = OutlineOverlay;
137
- //# sourceMappingURL=OutlineOverlay.js.map
@@ -63,4 +63,3 @@ var SnaplineOverlay = /** @class */ (function (_super) {
63
63
  }(compat_1.Component));
64
64
  exports.SnaplineOverlay = SnaplineOverlay;
65
65
  exports.default = OutlineOverlay_1.default;
66
- //# sourceMappingURL=SnaplineOverlay.js.map
@@ -76,4 +76,3 @@ var ToolOverlay = /** @class */ (function (_super) {
76
76
  }(compat_1.Component));
77
77
  exports.ToolOverlay = ToolOverlay;
78
78
  exports.default = _1.OutlineOverlay;
79
- //# sourceMappingURL=ToolOverlay.js.map
@@ -58,4 +58,3 @@ function getTransform(WrappedComponent) {
58
58
  }(preact_1.Component));
59
59
  }
60
60
  exports.getTransform = getTransform;
61
- //# sourceMappingURL=getTransformHoc.js.map
@@ -22,4 +22,3 @@ __exportStar(require("./ModificationOverlay"), exports);
22
22
  __exportStar(require("./OutlineOverlay"), exports);
23
23
  __exportStar(require("./SnaplineOverlay"), exports);
24
24
  __exportStar(require("./ToolOverlay"), exports);
25
- //# sourceMappingURL=index.js.map
@@ -58,4 +58,3 @@ function Circle(props) {
58
58
  }
59
59
  exports.Circle = Circle;
60
60
  exports.default = Circle;
61
- //# sourceMappingURL=Circle.js.map
@@ -59,4 +59,3 @@ function Ellipse(props) {
59
59
  }
60
60
  exports.Ellipse = Ellipse;
61
61
  exports.default = Ellipse;
62
- //# sourceMappingURL=Ellipse.js.map
@@ -53,4 +53,3 @@ function Line(props) {
53
53
  }
54
54
  exports.Line = Line;
55
55
  exports.default = Line;
56
- //# sourceMappingURL=Line.js.map
@@ -44,4 +44,3 @@ function Path(props) {
44
44
  }
45
45
  exports.Path = Path;
46
46
  exports.default = Path;
47
- //# sourceMappingURL=Path.js.map
@@ -57,4 +57,3 @@ function Polygon(props) {
57
57
  }
58
58
  exports.Polygon = Polygon;
59
59
  exports.default = Polygon;
60
- //# sourceMappingURL=Polygon.js.map
@@ -52,4 +52,3 @@ function Polyline(props) {
52
52
  }
53
53
  exports.Polyline = Polyline;
54
54
  exports.default = Polyline;
55
- //# sourceMappingURL=Polyline.js.map
@@ -58,4 +58,3 @@ function Rect(props) {
58
58
  }
59
59
  exports.Rect = Rect;
60
60
  exports.default = Rect;
61
- //# sourceMappingURL=Rect.js.map
@@ -119,4 +119,3 @@ function renderHtmlText(props) {
119
119
  }
120
120
  exports.renderHtmlText = renderHtmlText;
121
121
  exports.default = Text;
122
- //# sourceMappingURL=Text.js.map
@@ -22,4 +22,3 @@ __exportStar(require("./Circle"), exports);
22
22
  __exportStar(require("./Ellipse"), exports);
23
23
  __exportStar(require("./Polygon"), exports);
24
24
  __exportStar(require("./Polyline"), exports);
25
- //# sourceMappingURL=index.js.map
@@ -131,4 +131,3 @@ var BaseText = /** @class */ (function (_super) {
131
131
  }(compat_1.Component));
132
132
  exports.BaseText = BaseText;
133
133
  exports.default = BaseText;
134
- //# sourceMappingURL=BaseText.js.map
@@ -157,4 +157,3 @@ var LineText = /** @class */ (function (_super) {
157
157
  }(_1.BaseText));
158
158
  exports.LineText = LineText;
159
159
  exports.default = LineText;
160
- //# sourceMappingURL=LineText.js.map
@@ -16,4 +16,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./BaseText"), exports);
18
18
  __exportStar(require("./LineText"), exports);
19
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logicflow/core",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "LogicFlow, help you quickly create flowcharts",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -43,10 +43,6 @@ import NodeConfig = LogicFlow.NodeConfig
43
43
  import BaseNodeModelCtor = LogicFlow.BaseNodeModelCtor
44
44
  import BaseEdgeModelCtor = LogicFlow.BaseEdgeModelCtor
45
45
 
46
- export interface Constructable<T> {
47
- new (...args: any): T
48
- }
49
-
50
46
  export class GraphModel {
51
47
  /**
52
48
  * LogicFlow画布挂载元素
@@ -76,6 +72,13 @@ export class GraphModel {
76
72
  // 节点间连线、连线变更时的边的生成规则
77
73
  edgeGenerator: LFOptions.Definition['edgeGenerator']
78
74
 
75
+ // Remind:用于记录当前画布上所有节点和边的 model 的 Map
76
+ // 现在的处理方式,用 this.nodes.map 生成的方式,如果在 new Model 的过程中依赖于其它节点的 model,会出现找不到的情况
77
+ // eg: new DynamicGroupModel 时,需要获取当前 children 的 model,根据 groupModel 的 isCollapsed 状态更新子节点的 visible
78
+ nodeModelMap: Map<string, BaseNodeModel> = new Map()
79
+ edgeModelMap: Map<string, BaseEdgeModel> = new Map()
80
+ elementsModelMap: Map<string, BaseNodeModel | BaseEdgeModel> = new Map()
81
+
79
82
  /**
80
83
  * 节点移动规则判断
81
84
  * 在节点移动的时候,会出发此数组中的所有规则判断
@@ -161,9 +164,7 @@ export class GraphModel {
161
164
  }, {} as GraphModel.NodesMapType)
162
165
  }
163
166
 
164
- @computed get edgesMap(): {
165
- [key: string]: { index: number; model: BaseEdgeModel }
166
- } {
167
+ @computed get edgesMap(): GraphModel.EdgesMapType {
167
168
  return this.edges.reduce((eMap, model, index) => {
168
169
  eMap[model.id] = {
169
170
  index,
@@ -191,7 +192,7 @@ export class GraphModel {
191
192
 
192
193
  // 只显示可见区域的节点和边
193
194
  const visibleElements: (BaseNodeModel | BaseEdgeModel)[] = []
194
- // TODO: 缓存,优化计算效率 by xutao. So what to do?
195
+ // TODO: 缓存,优化计算效率 by xutao. So how?
195
196
  const visibleLt: PointTuple = [
196
197
  -DEFAULT_VISIBLE_SPACE,
197
198
  -DEFAULT_VISIBLE_SPACE,
@@ -428,7 +429,11 @@ export class GraphModel {
428
429
  if (!Model) {
429
430
  throw new Error(`找不到${edge.type}对应的边。`)
430
431
  }
431
- return new Model(edge, this)
432
+ const edgeModel = new Model(edge, this)
433
+ this.edgeModelMap.set(edgeModel.id, edgeModel)
434
+ this.elementsModelMap.set(edgeModel.id, edgeModel)
435
+
436
+ return edgeModel
432
437
  })
433
438
  } else {
434
439
  this.edges = []
@@ -800,7 +805,11 @@ export class GraphModel {
800
805
  node.text.y += node.y - nodeY
801
806
  }
802
807
  }
803
- return new Model(node, this)
808
+ const nodeModel = new Model(node, this)
809
+ this.nodeModelMap.set(nodeModel.id, nodeModel)
810
+ this.elementsModelMap.set(nodeModel.id, nodeModel)
811
+
812
+ return nodeModel
804
813
  }
805
814
 
806
815
  /**
@@ -914,6 +923,8 @@ export class GraphModel {
914
923
  },
915
924
  this,
916
925
  )
926
+ this.edgeModelMap.set(edgeModel.id, edgeModel)
927
+ this.elementsModelMap.set(edgeModel.id, edgeModel)
917
928
 
918
929
  const edgeData = edgeModel.getData()
919
930
  this.edges.push(edgeModel)
@@ -1153,8 +1164,10 @@ export class GraphModel {
1153
1164
  // 如果节点之间存在连线,则只移动连线一次。
1154
1165
  const nodeIdMap: Record<string, [number, number]> = nodeIds.reduce(
1155
1166
  (acc, cur) => {
1156
- const nodeModel = this.nodesMap[cur].model
1157
- acc[cur] = nodeModel.getMoveDistance(deltaX, deltaY, isIgnoreRule)
1167
+ const nodeModel = this.nodesMap[cur]?.model
1168
+ if (nodeModel) {
1169
+ acc[cur] = nodeModel.getMoveDistance(deltaX, deltaY, isIgnoreRule)
1170
+ }
1158
1171
  return acc
1159
1172
  },
1160
1173
  {},
@@ -1337,10 +1350,9 @@ export class GraphModel {
1337
1350
  }
1338
1351
 
1339
1352
  /**
1340
- * TODO: 命名问题 outcoming -> outgoing or incoming
1341
1353
  * 获取所有以此锚点为起点的边
1342
1354
  */
1343
- @action getAnchorOutcomingEdge(anchorId?: string) {
1355
+ @action getAnchorOutgoingEdge(anchorId?: string) {
1344
1356
  const edges: BaseEdgeModel[] = []
1345
1357
  this.edges.forEach((edge) => {
1346
1358
  if (edge.sourceAnchorId === anchorId) {
@@ -1,5 +1,5 @@
1
1
  import { assign, cloneDeep, find, isUndefined } from 'lodash-es'
2
- import { action, computed, isObservable, observable, toJS } from 'mobx'
2
+ import { action, computed, isObservable, observable, set, toJS } from 'mobx'
3
3
  import { BaseNodeModel, GraphModel, Model } from '..'
4
4
  import LogicFlow from '../../LogicFlow'
5
5
  import {
@@ -389,8 +389,8 @@ export class BaseEdgeModel<P extends PropertiesType = PropertiesType>
389
389
  id: this.id,
390
390
  type: this.type,
391
391
  properties,
392
- sourceNodeId: this.sourceNode.id,
393
- targetNodeId: this.targetNode.id,
392
+ sourceNodeId: this.sourceNodeId,
393
+ targetNodeId: this.targetNodeId,
394
394
  startPoint: assign({}, this.startPoint),
395
395
  endPoint: assign({}, this.endPoint),
396
396
  }
@@ -425,14 +425,12 @@ export class BaseEdgeModel<P extends PropertiesType = PropertiesType>
425
425
  * @param key 属性名
426
426
  * @param val 属性值
427
427
  */
428
- @action
429
- setProperty(key: string, val: any): void {
428
+ @action setProperty(key: string, val: any): void {
430
429
  const preProperties = toJS(this.properties)
431
- this.properties = {
432
- ...preProperties,
433
- [key]: formatData(val),
434
- }
430
+ const newProperties = cloneDeep(preProperties)
431
+ set(newProperties, key, formatData(val))
435
432
 
433
+ this.properties = newProperties
436
434
  this.setAttributes()
437
435
  }
438
436
 
@@ -440,8 +438,7 @@ export class BaseEdgeModel<P extends PropertiesType = PropertiesType>
440
438
  * 删除边的属性,会触发重新渲染
441
439
  * @param key 属性名
442
440
  */
443
- @action
444
- deleteProperty(key: string): void {
441
+ @action deleteProperty(key: string): void {
445
442
  delete this.properties[key]
446
443
  this.setAttributes()
447
444
  }
@@ -1,5 +1,13 @@
1
1
  import { action, computed, isObservable, observable, toJS } from 'mobx'
2
- import { assign, cloneDeep, has, isNil, mapKeys, isUndefined } from 'lodash-es'
2
+ import {
3
+ assign,
4
+ cloneDeep,
5
+ has,
6
+ isNil,
7
+ mapKeys,
8
+ isUndefined,
9
+ set,
10
+ } from 'lodash-es'
3
11
  import { GraphModel, Model } from '..'
4
12
  import LogicFlow from '../../LogicFlow'
5
13
  import {
@@ -774,33 +782,37 @@ export class BaseNodeModel<P extends PropertiesType = PropertiesType>
774
782
  this.additionStateData = additionStateData
775
783
  }
776
784
 
777
- // TODO: 处理重复代码,setProperty setProperties -> 公用代码提到 updateProperties 中?
778
- @action setProperty(key: string, val: any): void {
785
+ private updateProperties(nextProperties: P, updateKeys: string[]): void {
779
786
  const preProperties = toJS(this.properties)
780
- const nextProperties = {
781
- ...preProperties,
782
- [key]: formatData(val),
783
- }
784
787
  this.properties = nextProperties
785
788
  this.setAttributes()
786
789
 
787
790
  // 触发更新节点 properties:change 的事件
788
791
  this.graphModel.eventCenter.emit(EventType.NODE_PROPERTIES_CHANGE, {
789
792
  id: this.id,
790
- keys: [key],
793
+ keys: updateKeys,
791
794
  preProperties,
792
795
  properties: nextProperties,
793
796
  })
794
797
  }
795
798
 
799
+ @action setProperty(key: string, val: any): void {
800
+ const preProperties = toJS(this.properties)
801
+ const nextProperties = cloneDeep(preProperties)
802
+ // https://lodash.com/docs/4.17.15#set
803
+ // 使用 lodash 的 set 方法更新某个属性,可以支持 key 为 'a.b.c' 的情况
804
+ // TODO:待测试
805
+ set(nextProperties, key, formatData(val))
806
+
807
+ this.updateProperties(nextProperties, [key])
808
+ }
809
+
796
810
  @action setProperties(properties: Record<string, any>): void {
797
811
  const preProperties = toJS(this.properties)
798
812
  const nextProperties = {
799
813
  ...preProperties,
800
814
  ...formatData(properties),
801
815
  }
802
- this.properties = nextProperties
803
- this.setAttributes()
804
816
 
805
817
  const updateKeys: string[] = []
806
818
  mapKeys(properties, (val, key) => {
@@ -813,13 +825,7 @@ export class BaseNodeModel<P extends PropertiesType = PropertiesType>
813
825
  }
814
826
  })
815
827
 
816
- // 触发更新节点 properties:change 的事件
817
- this.graphModel.eventCenter.emit(EventType.NODE_PROPERTIES_CHANGE, {
818
- id: this.id,
819
- keys: updateKeys,
820
- preProperties,
821
- properties: nextProperties,
822
- })
828
+ this.updateProperties(nextProperties, updateKeys)
823
829
  }
824
830
 
825
831
  @action deleteProperty(key: string): void {
@@ -37,6 +37,7 @@ export class CircleNodeModel<
37
37
  super(data, graphModel)
38
38
  // this.properties = data.properties || {}
39
39
 
40
+ this.initNodeData(data)
40
41
  this.setAttributes()
41
42
  }
42
43
 
@@ -33,6 +33,7 @@ export class DiamondNodeModel<
33
33
  super(data, graphModel)
34
34
  // this.properties = data.properties || {}
35
35
 
36
+ this.initNodeData(data)
36
37
  this.setAttributes()
37
38
  }
38
39
 
@@ -31,6 +31,7 @@ export class EllipseNodeModel<
31
31
  super(data, graphModel)
32
32
  // this.properties = data.properties || {}
33
33
 
34
+ this.initNodeData(data)
34
35
  this.setAttributes()
35
36
  }
36
37
 
@@ -44,6 +44,7 @@ export class PolygonNodeModel<
44
44
  super(data, graphModel)
45
45
  // this.properties = data.properties || {}
46
46
 
47
+ this.initNodeData(data)
47
48
  this.setAttributes()
48
49
  }
49
50
 
@@ -1,4 +1,4 @@
1
- import { cloneDeep } from 'lodash-es'
1
+ import { cloneDeep, isNil } from 'lodash-es'
2
2
  import { observable } from 'mobx'
3
3
  import BaseNodeModel from './BaseNodeModel'
4
4
  import GraphModel from '../GraphModel'
@@ -28,6 +28,7 @@ export class RectNodeModel<
28
28
  // TODO:类字段初始化会覆盖 super、setAttributes 中设置的属性
29
29
  // this.properties = data.properties || {}
30
30
  // TODO: bug here, 上面更新 properties 会触发 setAttributes,下面再主动调用,会导致触发两次
31
+ this.initNodeData(data)
31
32
  this.setAttributes()
32
33
  }
33
34
 
@@ -35,10 +36,11 @@ export class RectNodeModel<
35
36
  super.setAttributes()
36
37
 
37
38
  const { width, height, radius } = this.properties
38
- if (width) this.width = width
39
- if (height) this.height = height
39
+ if (!isNil(width)) this.width = width
40
+ if (!isNil(height)) this.height = height
41
+
40
42
  // 矩形特有
41
- if (radius) this.radius = radius
43
+ if (!isNil(radius)) this.radius = radius
42
44
  }
43
45
 
44
46
  getDefaultAnchor() {
@@ -50,6 +52,7 @@ export class RectNodeModel<
50
52
  { x: x - width / 2, y, id: `${this.id}_3` },
51
53
  ]
52
54
  }
55
+
53
56
  getNodeStyle() {
54
57
  const style = super.getNodeStyle()
55
58
  const { rect } = this.graphModel.theme
package/src/util/drag.ts CHANGED
@@ -148,6 +148,8 @@ export class StepDrag {
148
148
  }
149
149
  this.isDragging = true
150
150
  // 为了让dragstart和drag不在同一个事件循环中,使drag事件放到下一个消息队列中。
151
+ // TODO: 放到下一个消息队列中是否会有延迟,比如
152
+ // 限制某个元素的拖拽范围,如果在dragstart中设置了拖拽范围,那么在drag中就会有延迟。
151
153
  Promise.resolve().then(() => {
152
154
  this.onDragging({
153
155
  deltaX,
@@ -208,12 +208,12 @@ class Anchor extends Component<IProps, IState> {
208
208
 
209
209
  get relateEdges() {
210
210
  const {
211
- graphModel: { getAnchorIncomingEdge, getAnchorOutcomingEdge },
211
+ graphModel: { getAnchorIncomingEdge, getAnchorOutgoingEdge },
212
212
  anchorData: { id },
213
213
  } = this.props
214
214
  return {
215
215
  incomingEdgeList: getAnchorIncomingEdge(id),
216
- outcomingEdgeList: getAnchorOutcomingEdge(id),
216
+ outgoingEdgeList: getAnchorOutgoingEdge(id),
217
217
  }
218
218
  }
219
219
 
@@ -38,12 +38,13 @@ type ContainerStyle = {
38
38
 
39
39
  @observer
40
40
  class Graph extends Component<IGraphProps> {
41
- handleResize = () => {
41
+ private handleResize = () => {
42
42
  this.props.graphModel.resize()
43
43
  }
44
+ private throttleResize = () => throttle(this.handleResize, 200)
44
45
 
45
46
  componentDidMount() {
46
- window.addEventListener('resize', throttle(this.handleResize, 200))
47
+ window.addEventListener('resize', this.throttleResize)
47
48
  }
48
49
 
49
50
  componentDidUpdate() {
@@ -52,7 +53,7 @@ class Graph extends Component<IGraphProps> {
52
53
  }
53
54
 
54
55
  componentWillUnmount() {
55
- window.removeEventListener('resize', throttle(this.handleResize, 200))
56
+ window.removeEventListener('resize', this.throttleResize)
56
57
  }
57
58
 
58
59
  getComponent(
@@ -91,6 +92,7 @@ class Graph extends Component<IGraphProps> {
91
92
  const { adjustEdge } = editConfigModel
92
93
  return (
93
94
  <div className="lf-graph" flow-id={graphModel.flowId}>
95
+ {/* 元素层 */}
94
96
  <CanvasOverlay graphModel={graphModel} dnd={dnd}>
95
97
  <g className="lf-base">
96
98
  {map(graphModel.sortElements, (nodeModel) =>
@@ -99,6 +101,7 @@ class Graph extends Component<IGraphProps> {
99
101
  </g>
100
102
  {fakeNode ? this.getComponent(fakeNode, graphModel) : ''}
101
103
  </CanvasOverlay>
104
+ {/* 虚线边框 */}
102
105
  <ModificationOverlay graphModel={graphModel}>
103
106
  <OutlineOverlay graphModel={graphModel} />
104
107
  {adjustEdge ? <BezierAdjustOverlay graphModel={graphModel} /> : ''}
@@ -108,10 +111,12 @@ class Graph extends Component<IGraphProps> {
108
111
  ''
109
112
  )}
110
113
  </ModificationOverlay>
114
+ {/* 工具层:插件 */}
111
115
  <ToolOverlay graphModel={graphModel} tool={tool} />
112
116
  {options.background && (
113
117
  <BackgroundOverlay background={options.background} />
114
118
  )}
119
+ {/* 画布网格 */}
115
120
  {grid && <Grid {...grid} graphModel={graphModel} />}
116
121
  </div>
117
122
  )