@logicflow/core 1.2.27 → 2.0.0-beta.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.
Files changed (804) hide show
  1. package/.turbo/turbo-build$colon$dev.log +10 -0
  2. package/.turbo/turbo-build.log +42 -0
  3. package/CHANGELOG.md +2114 -0
  4. package/LICENSE +206 -0
  5. package/__tests__/algorithm/egde.test.ts +118 -0
  6. package/__tests__/algorithm/index.test.ts +69 -0
  7. package/__tests__/algorithm/outline.test.ts +43 -0
  8. package/__tests__/bugs/1545-spec.test.ts +38 -0
  9. package/__tests__/event/event.test.ts +22 -0
  10. package/__tests__/history/history.test.ts +28 -0
  11. package/__tests__/logicflow.test.ts +567 -0
  12. package/__tests__/model/graphmodel.test.ts +67 -0
  13. package/__tests__/util/compatible.test.ts +48 -0
  14. package/__tests__/util/edge.test.ts +224 -0
  15. package/__tests__/util/geometry.test.ts +14 -0
  16. package/__tests__/util/graph.test.ts +16 -0
  17. package/__tests__/util/matrix.test.ts +41 -0
  18. package/__tests__/util/node.test.ts +68 -0
  19. package/__tests__/util/sampling.test.ts +16 -0
  20. package/__tests__/util/vector.test.ts +50 -0
  21. package/__tests__/util/zIndex.test.ts +10 -0
  22. package/dist/{style/index.css → index.css} +64 -52
  23. package/dist/index.js +26 -0
  24. package/dist/index.js.map +1 -0
  25. package/es/LogicFlow.d.ts +966 -0
  26. package/es/LogicFlow.js +1174 -0
  27. package/es/LogicFlow.js.map +1 -0
  28. package/es/algorithm/edge.d.ts +15 -0
  29. package/es/algorithm/edge.js +57 -0
  30. package/es/algorithm/edge.js.map +1 -0
  31. package/es/algorithm/index.js +71 -0
  32. package/es/algorithm/index.js.map +1 -0
  33. package/es/algorithm/outline.d.ts +7 -0
  34. package/es/algorithm/outline.js +61 -0
  35. package/es/algorithm/outline.js.map +1 -0
  36. package/{types/constant/constant.d.ts → es/constant/index.d.ts} +23 -22
  37. package/es/constant/index.js +117 -0
  38. package/es/constant/index.js.map +1 -0
  39. package/es/event/eventArgs.d.ts +428 -0
  40. package/es/event/eventArgs.js +2 -0
  41. package/es/event/eventArgs.js.map +1 -0
  42. package/es/event/eventEmitter.d.ts +48 -0
  43. package/es/event/eventEmitter.js +92 -0
  44. package/es/event/eventEmitter.js.map +1 -0
  45. package/es/history/index.d.ts +23 -0
  46. package/es/history/index.js +111 -0
  47. package/es/history/index.js.map +1 -0
  48. package/es/index.css +210 -0
  49. package/{types → es}/index.d.ts +4 -6
  50. package/es/index.js +16 -0
  51. package/es/index.js.map +1 -0
  52. package/es/index.less +1 -0
  53. package/{types → es}/keyboard/index.d.ts +7 -8
  54. package/es/keyboard/index.js +87 -0
  55. package/es/keyboard/index.js.map +1 -0
  56. package/es/keyboard/shortcut.js +116 -0
  57. package/es/keyboard/shortcut.js.map +1 -0
  58. package/es/model/BaseModel.d.ts +181 -0
  59. package/es/model/BaseModel.js +2 -0
  60. package/es/model/BaseModel.js.map +1 -0
  61. package/{types → es}/model/EditConfigModel.d.ts +13 -8
  62. package/es/model/EditConfigModel.js +192 -0
  63. package/es/model/EditConfigModel.js.map +1 -0
  64. package/{types → es}/model/GraphModel.d.ts +118 -178
  65. package/es/model/GraphModel.js +1473 -0
  66. package/es/model/GraphModel.js.map +1 -0
  67. package/es/model/SnaplineModel.d.ts +34 -0
  68. package/es/model/SnaplineModel.js +217 -0
  69. package/es/model/SnaplineModel.js.map +1 -0
  70. package/{types → es}/model/TransformModel.d.ts +21 -11
  71. package/es/model/TransformModel.js +240 -0
  72. package/es/model/TransformModel.js.map +1 -0
  73. package/{types → es}/model/edge/BaseEdgeModel.d.ts +82 -63
  74. package/es/model/edge/BaseEdgeModel.js +739 -0
  75. package/es/model/edge/BaseEdgeModel.js.map +1 -0
  76. package/es/model/edge/BezierEdgeModel.d.ts +63 -0
  77. package/es/model/edge/BezierEdgeModel.js +244 -0
  78. package/es/model/edge/BezierEdgeModel.js.map +1 -0
  79. package/es/model/edge/LineEdgeModel.d.ts +19 -0
  80. package/es/model/edge/LineEdgeModel.js +77 -0
  81. package/es/model/edge/LineEdgeModel.js.map +1 -0
  82. package/es/model/edge/PolylineEdgeModel.d.ts +85 -0
  83. package/es/model/edge/PolylineEdgeModel.js +593 -0
  84. package/es/model/edge/PolylineEdgeModel.js.map +1 -0
  85. package/es/model/edge/index.js +5 -0
  86. package/es/model/edge/index.js.map +1 -0
  87. package/es/model/index.js +8 -0
  88. package/es/model/index.js.map +1 -0
  89. package/es/model/node/BaseNodeModel.d.ts +260 -0
  90. package/es/model/node/BaseNodeModel.js +883 -0
  91. package/es/model/node/BaseNodeModel.js.map +1 -0
  92. package/es/model/node/CircleNodeModel.d.ts +40 -0
  93. package/es/model/node/CircleNodeModel.js +110 -0
  94. package/es/model/node/CircleNodeModel.js.map +1 -0
  95. package/es/model/node/DiamondNodeModel.d.ts +46 -0
  96. package/es/model/node/DiamondNodeModel.js +187 -0
  97. package/es/model/node/DiamondNodeModel.js.map +1 -0
  98. package/es/model/node/EllipseNodeModel.d.ts +42 -0
  99. package/es/model/node/EllipseNodeModel.js +118 -0
  100. package/es/model/node/EllipseNodeModel.js.map +1 -0
  101. package/es/model/node/HtmlNodeModel.d.ts +21 -0
  102. package/es/model/node/HtmlNodeModel.js +59 -0
  103. package/es/model/node/HtmlNodeModel.js.map +1 -0
  104. package/es/model/node/PolygonNodeModel.d.ts +50 -0
  105. package/es/model/node/PolygonNodeModel.js +196 -0
  106. package/es/model/node/PolygonNodeModel.js.map +1 -0
  107. package/es/model/node/RectNodeModel.d.ts +34 -0
  108. package/es/model/node/RectNodeModel.js +80 -0
  109. package/es/model/node/RectNodeModel.js.map +1 -0
  110. package/es/model/node/TextNodeModel.d.ts +27 -0
  111. package/es/model/node/TextNodeModel.js +113 -0
  112. package/es/model/node/TextNodeModel.js.map +1 -0
  113. package/es/model/node/index.js +9 -0
  114. package/es/model/node/index.js.map +1 -0
  115. package/es/options.d.ts +86 -0
  116. package/es/options.js +74 -0
  117. package/es/options.js.map +1 -0
  118. package/es/style/index.css +210 -0
  119. package/es/style/index.less +256 -0
  120. package/es/style/raw.d.ts +4 -0
  121. package/es/style/raw.js +6 -0
  122. package/es/style/raw.js.map +1 -0
  123. package/es/tool/MultipleSelectTool.d.ts +13 -0
  124. package/es/tool/MultipleSelectTool.js +159 -0
  125. package/es/tool/MultipleSelectTool.js.map +1 -0
  126. package/es/tool/TextEditTool.d.ts +26 -0
  127. package/es/tool/TextEditTool.js +187 -0
  128. package/es/tool/TextEditTool.js.map +1 -0
  129. package/es/tool/index.d.ts +2 -0
  130. package/es/tool/index.js +3 -0
  131. package/es/tool/index.js.map +1 -0
  132. package/{types/tool/SnaplineTool.d.ts → es/tool/snapline.d.ts} +1 -1
  133. package/es/tool/snapline.js +13 -0
  134. package/es/tool/snapline.js.map +1 -0
  135. package/es/tool/tool.d.ts +22 -0
  136. package/es/tool/tool.js +43 -0
  137. package/es/tool/tool.js.map +1 -0
  138. package/es/util/animation.d.ts +12 -0
  139. package/es/util/animation.js +20 -0
  140. package/es/util/animation.js.map +1 -0
  141. package/es/util/browser.js +3 -0
  142. package/es/util/browser.js.map +1 -0
  143. package/es/util/compatible.d.ts +6 -0
  144. package/es/util/compatible.js +17 -0
  145. package/es/util/compatible.js.map +1 -0
  146. package/es/util/drag.d.ts +47 -0
  147. package/es/util/drag.js +139 -0
  148. package/es/util/drag.js.map +1 -0
  149. package/es/util/edge.d.ts +94 -0
  150. package/es/util/edge.js +833 -0
  151. package/es/util/edge.js.map +1 -0
  152. package/es/util/geometry.d.ts +11 -0
  153. package/es/util/geometry.js +72 -0
  154. package/es/util/geometry.js.map +1 -0
  155. package/{types → es}/util/graph.d.ts +4 -3
  156. package/es/util/graph.js +54 -0
  157. package/es/util/graph.js.map +1 -0
  158. package/es/util/index.d.ts +16 -0
  159. package/es/util/index.js +17 -0
  160. package/es/util/index.js.map +1 -0
  161. package/{types → es}/util/matrix.d.ts +1 -1
  162. package/es/util/matrix.js +161 -0
  163. package/es/util/matrix.js.map +1 -0
  164. package/es/util/mobx.js +4 -0
  165. package/es/util/mobx.js.map +1 -0
  166. package/es/util/node.d.ts +69 -0
  167. package/es/util/node.js +402 -0
  168. package/es/util/node.js.map +1 -0
  169. package/es/util/raf.d.ts +2 -0
  170. package/es/util/raf.js +24 -0
  171. package/es/util/raf.js.map +1 -0
  172. package/{types → es}/util/sampling.d.ts +4 -2
  173. package/es/util/sampling.js +66 -0
  174. package/es/util/sampling.js.map +1 -0
  175. package/es/util/theme.d.ts +4 -0
  176. package/es/util/theme.js +156 -0
  177. package/es/util/theme.js.map +1 -0
  178. package/es/util/uuid.d.ts +7 -0
  179. package/es/util/uuid.js +20 -0
  180. package/es/util/uuid.js.map +1 -0
  181. package/{types → es}/util/vector.d.ts +2 -2
  182. package/es/util/vector.js +97 -0
  183. package/es/util/vector.js.map +1 -0
  184. package/es/util/zIndex.js +5 -0
  185. package/es/util/zIndex.js.map +1 -0
  186. package/es/view/Anchor.d.ts +47 -0
  187. package/es/view/Anchor.js +315 -0
  188. package/es/view/Anchor.js.map +1 -0
  189. package/es/view/Control.d.ts +100 -0
  190. package/es/view/Control.js +324 -0
  191. package/es/view/Control.js.map +1 -0
  192. package/es/view/Graph.d.ts +18 -0
  193. package/es/view/Graph.js +77 -0
  194. package/es/view/Graph.js.map +1 -0
  195. package/{types → es}/view/Rotate.d.ts +9 -9
  196. package/es/view/Rotate.js +108 -0
  197. package/es/view/Rotate.js.map +1 -0
  198. package/es/view/behavior/dnd.d.ts +27 -0
  199. package/es/view/behavior/dnd.js +110 -0
  200. package/es/view/behavior/dnd.js.map +1 -0
  201. package/es/view/edge/AdjustPoint.d.ts +50 -0
  202. package/es/view/edge/AdjustPoint.js +368 -0
  203. package/es/view/edge/AdjustPoint.js.map +1 -0
  204. package/es/view/edge/Arrow.d.ts +25 -0
  205. package/es/view/edge/Arrow.js +60 -0
  206. package/es/view/edge/Arrow.js.map +1 -0
  207. package/{types → es}/view/edge/BaseEdge.d.ts +25 -17
  208. package/es/view/edge/BaseEdge.js +381 -0
  209. package/es/view/edge/BaseEdge.js.map +1 -0
  210. package/es/view/edge/BezierEdge.d.ts +26 -0
  211. package/es/view/edge/BezierEdge.js +118 -0
  212. package/es/view/edge/BezierEdge.js.map +1 -0
  213. package/{types → es}/view/edge/LineEdge.d.ts +9 -4
  214. package/es/view/edge/LineEdge.js +78 -0
  215. package/es/view/edge/LineEdge.js.map +1 -0
  216. package/{types → es}/view/edge/PolylineEdge.d.ts +18 -8
  217. package/es/view/edge/PolylineEdge.js +274 -0
  218. package/es/view/edge/PolylineEdge.js.map +1 -0
  219. package/es/view/edge/index.d.ts +6 -0
  220. package/es/view/edge/index.js +7 -0
  221. package/es/view/edge/index.js.map +1 -0
  222. package/es/view/index.d.ts +7 -0
  223. package/es/view/index.js +8 -0
  224. package/es/view/index.js.map +1 -0
  225. package/es/view/node/BaseNode.d.ts +49 -0
  226. package/es/view/node/BaseNode.js +420 -0
  227. package/es/view/node/BaseNode.js.map +1 -0
  228. package/es/view/node/CircleNode.d.ts +10 -0
  229. package/es/view/node/CircleNode.js +45 -0
  230. package/es/view/node/CircleNode.js.map +1 -0
  231. package/es/view/node/DiamondNode.d.ts +10 -0
  232. package/es/view/node/DiamondNode.js +44 -0
  233. package/es/view/node/DiamondNode.js.map +1 -0
  234. package/es/view/node/EllipseNode.d.ts +10 -0
  235. package/es/view/node/EllipseNode.js +44 -0
  236. package/es/view/node/EllipseNode.js.map +1 -0
  237. package/{types → es}/view/node/HtmlNode.d.ts +15 -9
  238. package/es/view/node/HtmlNode.js +129 -0
  239. package/es/view/node/HtmlNode.js.map +1 -0
  240. package/es/view/node/PolygonNode.d.ts +10 -0
  241. package/es/view/node/PolygonNode.js +48 -0
  242. package/es/view/node/PolygonNode.js.map +1 -0
  243. package/es/view/node/RectNode.d.ts +11 -0
  244. package/es/view/node/RectNode.js +44 -0
  245. package/es/view/node/RectNode.js.map +1 -0
  246. package/es/view/node/TextNode.d.ts +12 -0
  247. package/es/view/node/TextNode.js +55 -0
  248. package/es/view/node/TextNode.js.map +1 -0
  249. package/es/view/node/index.d.ts +8 -0
  250. package/es/view/node/index.js +9 -0
  251. package/es/view/node/index.js.map +1 -0
  252. package/{types → es}/view/overlay/BackgroundOverlay.d.ts +7 -7
  253. package/es/view/overlay/BackgroundOverlay.js +31 -0
  254. package/es/view/overlay/BackgroundOverlay.js.map +1 -0
  255. package/es/view/overlay/BezierAdjustOverlay.d.ts +31 -0
  256. package/es/view/overlay/BezierAdjustOverlay.js +142 -0
  257. package/es/view/overlay/BezierAdjustOverlay.js.map +1 -0
  258. package/{types → es}/view/overlay/CanvasOverlay.d.ts +8 -11
  259. package/es/view/overlay/CanvasOverlay.js +172 -0
  260. package/es/view/overlay/CanvasOverlay.js.map +1 -0
  261. package/es/view/overlay/Grid.d.ts +30 -0
  262. package/es/view/overlay/Grid.js +118 -0
  263. package/es/view/overlay/Grid.js.map +1 -0
  264. package/es/view/overlay/ModificationOverlay.d.ts +9 -0
  265. package/es/view/overlay/ModificationOverlay.js +43 -0
  266. package/es/view/overlay/ModificationOverlay.js.map +1 -0
  267. package/es/view/overlay/OutlineOverlay.d.ts +14 -0
  268. package/es/view/overlay/OutlineOverlay.js +134 -0
  269. package/es/view/overlay/OutlineOverlay.js.map +1 -0
  270. package/es/view/overlay/SnaplineOverlay.d.ts +10 -0
  271. package/es/view/overlay/SnaplineOverlay.js +60 -0
  272. package/es/view/overlay/SnaplineOverlay.js.map +1 -0
  273. package/es/view/overlay/ToolOverlay.d.ts +19 -0
  274. package/es/view/overlay/ToolOverlay.js +76 -0
  275. package/es/view/overlay/ToolOverlay.js.map +1 -0
  276. package/{types → es}/view/overlay/getTransformHoc.d.ts +17 -14
  277. package/es/view/overlay/getTransformHoc.js +57 -0
  278. package/es/view/overlay/getTransformHoc.js.map +1 -0
  279. package/es/view/overlay/index.d.ts +8 -0
  280. package/es/view/overlay/index.js +9 -0
  281. package/es/view/overlay/index.js.map +1 -0
  282. package/es/view/shape/Circle.d.ts +2 -0
  283. package/es/view/shape/Circle.js +57 -0
  284. package/es/view/shape/Circle.js.map +1 -0
  285. package/es/view/shape/Ellipse.d.ts +2 -0
  286. package/es/view/shape/Ellipse.js +58 -0
  287. package/es/view/shape/Ellipse.js.map +1 -0
  288. package/es/view/shape/Line.d.ts +2 -0
  289. package/es/view/shape/Line.js +54 -0
  290. package/es/view/shape/Line.js.map +1 -0
  291. package/es/view/shape/Path.d.ts +6 -0
  292. package/es/view/shape/Path.js +43 -0
  293. package/es/view/shape/Path.js.map +1 -0
  294. package/es/view/shape/Polygon.d.ts +8 -0
  295. package/es/view/shape/Polygon.js +56 -0
  296. package/es/view/shape/Polygon.js.map +1 -0
  297. package/es/view/shape/Polyline.d.ts +2 -0
  298. package/es/view/shape/Polyline.js +49 -0
  299. package/es/view/shape/Polyline.js.map +1 -0
  300. package/es/view/shape/Rect.d.ts +15 -0
  301. package/es/view/shape/Rect.js +60 -0
  302. package/es/view/shape/Rect.js.map +1 -0
  303. package/es/view/shape/Text.d.ts +2 -0
  304. package/es/view/shape/Text.js +110 -0
  305. package/es/view/shape/Text.js.map +1 -0
  306. package/es/view/shape/index.d.ts +8 -0
  307. package/es/view/shape/index.js +9 -0
  308. package/es/view/shape/index.js.map +1 -0
  309. package/es/view/text/BaseText.d.ts +25 -0
  310. package/es/view/text/BaseText.js +114 -0
  311. package/es/view/text/BaseText.js.map +1 -0
  312. package/es/view/text/LineText.d.ts +9 -0
  313. package/es/view/text/LineText.js +149 -0
  314. package/es/view/text/LineText.js.map +1 -0
  315. package/es/view/text/index.d.ts +2 -0
  316. package/es/view/text/index.js +3 -0
  317. package/es/view/text/index.js.map +1 -0
  318. package/lib/LogicFlow.d.ts +966 -0
  319. package/lib/LogicFlow.js +1203 -0
  320. package/lib/LogicFlow.js.map +1 -0
  321. package/lib/algorithm/edge.d.ts +15 -0
  322. package/lib/algorithm/edge.js +62 -0
  323. package/lib/algorithm/edge.js.map +1 -0
  324. package/lib/algorithm/index.d.ts +6 -0
  325. package/lib/algorithm/index.js +75 -0
  326. package/lib/algorithm/index.js.map +1 -0
  327. package/lib/algorithm/outline.d.ts +7 -0
  328. package/lib/algorithm/outline.js +69 -0
  329. package/lib/algorithm/outline.js.map +1 -0
  330. package/lib/constant/index.d.ts +102 -0
  331. package/lib/constant/index.js +120 -0
  332. package/lib/constant/index.js.map +1 -0
  333. package/lib/event/eventArgs.d.ts +428 -0
  334. package/lib/event/eventArgs.js +3 -0
  335. package/lib/event/eventArgs.js.map +1 -0
  336. package/lib/event/eventEmitter.d.ts +48 -0
  337. package/lib/event/eventEmitter.js +95 -0
  338. package/lib/event/eventEmitter.js.map +1 -0
  339. package/lib/history/index.d.ts +23 -0
  340. package/lib/history/index.js +114 -0
  341. package/lib/history/index.js.map +1 -0
  342. package/lib/index.css +210 -0
  343. package/lib/index.d.ts +12 -0
  344. package/lib/index.js +58 -0
  345. package/lib/index.js.map +1 -0
  346. package/lib/index.less +1 -0
  347. package/lib/keyboard/index.d.ts +31 -0
  348. package/lib/keyboard/index.js +93 -0
  349. package/lib/keyboard/index.js.map +1 -0
  350. package/lib/keyboard/shortcut.d.ts +3 -0
  351. package/lib/keyboard/shortcut.js +120 -0
  352. package/lib/keyboard/shortcut.js.map +1 -0
  353. package/lib/model/BaseModel.d.ts +181 -0
  354. package/lib/model/BaseModel.js +3 -0
  355. package/lib/model/BaseModel.js.map +1 -0
  356. package/lib/model/EditConfigModel.d.ts +114 -0
  357. package/lib/model/EditConfigModel.js +195 -0
  358. package/lib/model/EditConfigModel.js.map +1 -0
  359. package/lib/model/GraphModel.d.ts +426 -0
  360. package/lib/model/GraphModel.js +1479 -0
  361. package/lib/model/GraphModel.js.map +1 -0
  362. package/lib/model/SnaplineModel.d.ts +34 -0
  363. package/lib/model/SnaplineModel.js +220 -0
  364. package/lib/model/SnaplineModel.js.map +1 -0
  365. package/lib/model/TransformModel.d.ts +101 -0
  366. package/lib/model/TransformModel.js +243 -0
  367. package/lib/model/TransformModel.js.map +1 -0
  368. package/lib/model/edge/BaseEdgeModel.d.ts +270 -0
  369. package/lib/model/edge/BaseEdgeModel.js +742 -0
  370. package/lib/model/edge/BaseEdgeModel.js.map +1 -0
  371. package/lib/model/edge/BezierEdgeModel.d.ts +63 -0
  372. package/lib/model/edge/BezierEdgeModel.js +250 -0
  373. package/lib/model/edge/BezierEdgeModel.js.map +1 -0
  374. package/lib/model/edge/LineEdgeModel.d.ts +19 -0
  375. package/lib/model/edge/LineEdgeModel.js +83 -0
  376. package/lib/model/edge/LineEdgeModel.js.map +1 -0
  377. package/lib/model/edge/PolylineEdgeModel.d.ts +85 -0
  378. package/lib/model/edge/PolylineEdgeModel.js +596 -0
  379. package/lib/model/edge/PolylineEdgeModel.js.map +1 -0
  380. package/lib/model/edge/index.d.ts +4 -0
  381. package/lib/model/edge/index.js +21 -0
  382. package/lib/model/edge/index.js.map +1 -0
  383. package/lib/model/index.d.ts +7 -0
  384. package/lib/model/index.js +24 -0
  385. package/lib/model/index.js.map +1 -0
  386. package/lib/model/node/BaseNodeModel.d.ts +260 -0
  387. package/lib/model/node/BaseNodeModel.js +886 -0
  388. package/lib/model/node/BaseNodeModel.js.map +1 -0
  389. package/lib/model/node/CircleNodeModel.d.ts +40 -0
  390. package/lib/model/node/CircleNodeModel.js +116 -0
  391. package/lib/model/node/CircleNodeModel.js.map +1 -0
  392. package/lib/model/node/DiamondNodeModel.d.ts +46 -0
  393. package/lib/model/node/DiamondNodeModel.js +193 -0
  394. package/lib/model/node/DiamondNodeModel.js.map +1 -0
  395. package/lib/model/node/EllipseNodeModel.d.ts +42 -0
  396. package/lib/model/node/EllipseNodeModel.js +124 -0
  397. package/lib/model/node/EllipseNodeModel.js.map +1 -0
  398. package/lib/model/node/HtmlNodeModel.d.ts +21 -0
  399. package/lib/model/node/HtmlNodeModel.js +65 -0
  400. package/lib/model/node/HtmlNodeModel.js.map +1 -0
  401. package/lib/model/node/PolygonNodeModel.d.ts +50 -0
  402. package/lib/model/node/PolygonNodeModel.js +202 -0
  403. package/lib/model/node/PolygonNodeModel.js.map +1 -0
  404. package/lib/model/node/RectNodeModel.d.ts +34 -0
  405. package/lib/model/node/RectNodeModel.js +86 -0
  406. package/lib/model/node/RectNodeModel.js.map +1 -0
  407. package/lib/model/node/TextNodeModel.d.ts +27 -0
  408. package/lib/model/node/TextNodeModel.js +119 -0
  409. package/lib/model/node/TextNodeModel.js.map +1 -0
  410. package/lib/model/node/index.d.ts +8 -0
  411. package/lib/model/node/index.js +25 -0
  412. package/lib/model/node/index.js.map +1 -0
  413. package/lib/options.d.ts +86 -0
  414. package/lib/options.js +77 -0
  415. package/lib/options.js.map +1 -0
  416. package/lib/style/index.css +210 -0
  417. package/lib/style/index.less +256 -0
  418. package/lib/style/raw.d.ts +4 -0
  419. package/lib/style/raw.js +9 -0
  420. package/lib/style/raw.js.map +1 -0
  421. package/lib/tool/MultipleSelectTool.d.ts +13 -0
  422. package/lib/tool/MultipleSelectTool.js +161 -0
  423. package/lib/tool/MultipleSelectTool.js.map +1 -0
  424. package/lib/tool/TextEditTool.d.ts +26 -0
  425. package/lib/tool/TextEditTool.js +190 -0
  426. package/lib/tool/TextEditTool.js.map +1 -0
  427. package/lib/tool/index.d.ts +2 -0
  428. package/lib/tool/index.js +19 -0
  429. package/lib/tool/index.js.map +1 -0
  430. package/lib/tool/snapline.d.ts +3 -0
  431. package/lib/tool/snapline.js +17 -0
  432. package/lib/tool/snapline.js.map +1 -0
  433. package/lib/tool/tool.d.ts +22 -0
  434. package/lib/tool/tool.js +49 -0
  435. package/lib/tool/tool.js.map +1 -0
  436. package/lib/util/animation.d.ts +12 -0
  437. package/lib/util/animation.js +24 -0
  438. package/lib/util/animation.js.map +1 -0
  439. package/lib/util/browser.d.ts +1 -0
  440. package/lib/util/browser.js +6 -0
  441. package/lib/util/browser.js.map +1 -0
  442. package/lib/util/compatible.d.ts +6 -0
  443. package/lib/util/compatible.js +21 -0
  444. package/lib/util/compatible.js.map +1 -0
  445. package/lib/util/drag.d.ts +47 -0
  446. package/lib/util/drag.js +142 -0
  447. package/lib/util/drag.js.map +1 -0
  448. package/lib/util/edge.d.ts +94 -0
  449. package/lib/util/edge.js +879 -0
  450. package/lib/util/edge.js.map +1 -0
  451. package/lib/util/geometry.d.ts +11 -0
  452. package/lib/util/geometry.js +78 -0
  453. package/lib/util/geometry.js.map +1 -0
  454. package/lib/util/graph.d.ts +13 -0
  455. package/lib/util/graph.js +59 -0
  456. package/lib/util/graph.js.map +1 -0
  457. package/lib/util/index.d.ts +16 -0
  458. package/lib/util/index.js +33 -0
  459. package/lib/util/index.js.map +1 -0
  460. package/lib/util/matrix.d.ts +32 -0
  461. package/lib/util/matrix.js +164 -0
  462. package/lib/util/matrix.js.map +1 -0
  463. package/lib/util/mobx.d.ts +2 -0
  464. package/lib/util/mobx.js +13 -0
  465. package/lib/util/mobx.js.map +1 -0
  466. package/lib/util/node.d.ts +69 -0
  467. package/lib/util/node.js +424 -0
  468. package/lib/util/node.js.map +1 -0
  469. package/lib/util/raf.d.ts +2 -0
  470. package/lib/util/raf.js +29 -0
  471. package/lib/util/raf.js.map +1 -0
  472. package/lib/util/sampling.d.ts +6 -0
  473. package/lib/util/sampling.js +72 -0
  474. package/lib/util/sampling.js.map +1 -0
  475. package/lib/util/theme.d.ts +4 -0
  476. package/lib/util/theme.js +160 -0
  477. package/lib/util/theme.js.map +1 -0
  478. package/lib/util/uuid.d.ts +7 -0
  479. package/lib/util/uuid.js +25 -0
  480. package/lib/util/uuid.js.map +1 -0
  481. package/lib/util/vector.d.ts +23 -0
  482. package/lib/util/vector.js +101 -0
  483. package/lib/util/vector.js.map +1 -0
  484. package/lib/util/zIndex.d.ts +2 -0
  485. package/lib/util/zIndex.js +10 -0
  486. package/lib/util/zIndex.js.map +1 -0
  487. package/lib/view/Anchor.d.ts +47 -0
  488. package/lib/view/Anchor.js +317 -0
  489. package/lib/view/Anchor.js.map +1 -0
  490. package/lib/view/Control.d.ts +100 -0
  491. package/lib/view/Control.js +327 -0
  492. package/lib/view/Control.js.map +1 -0
  493. package/lib/view/Graph.d.ts +18 -0
  494. package/lib/view/Graph.js +79 -0
  495. package/lib/view/Graph.js.map +1 -0
  496. package/lib/view/Rotate.d.ts +21 -0
  497. package/lib/view/Rotate.js +113 -0
  498. package/lib/view/Rotate.js.map +1 -0
  499. package/lib/view/behavior/dnd.d.ts +27 -0
  500. package/lib/view/behavior/dnd.js +113 -0
  501. package/lib/view/behavior/dnd.js.map +1 -0
  502. package/lib/view/edge/AdjustPoint.d.ts +50 -0
  503. package/lib/view/edge/AdjustPoint.js +371 -0
  504. package/lib/view/edge/AdjustPoint.js.map +1 -0
  505. package/lib/view/edge/Arrow.d.ts +25 -0
  506. package/lib/view/edge/Arrow.js +63 -0
  507. package/lib/view/edge/Arrow.js.map +1 -0
  508. package/lib/view/edge/BaseEdge.d.ts +148 -0
  509. package/lib/view/edge/BaseEdge.js +407 -0
  510. package/lib/view/edge/BaseEdge.js.map +1 -0
  511. package/lib/view/edge/BezierEdge.d.ts +26 -0
  512. package/lib/view/edge/BezierEdge.js +124 -0
  513. package/lib/view/edge/BezierEdge.js.map +1 -0
  514. package/{types/view/edge/BezierEdge.d.ts → lib/view/edge/LineEdge.d.ts} +9 -10
  515. package/lib/view/edge/LineEdge.js +84 -0
  516. package/lib/view/edge/LineEdge.js.map +1 -0
  517. package/lib/view/edge/PolylineEdge.d.ts +55 -0
  518. package/lib/view/edge/PolylineEdge.js +280 -0
  519. package/lib/view/edge/PolylineEdge.js.map +1 -0
  520. package/lib/view/edge/index.d.ts +6 -0
  521. package/lib/view/edge/index.js +23 -0
  522. package/lib/view/edge/index.js.map +1 -0
  523. package/lib/view/index.d.ts +7 -0
  524. package/lib/view/index.js +24 -0
  525. package/lib/view/index.js.map +1 -0
  526. package/lib/view/node/BaseNode.d.ts +49 -0
  527. package/lib/view/node/BaseNode.js +424 -0
  528. package/lib/view/node/BaseNode.js.map +1 -0
  529. package/lib/view/node/CircleNode.d.ts +10 -0
  530. package/lib/view/node/CircleNode.js +51 -0
  531. package/lib/view/node/CircleNode.js.map +1 -0
  532. package/lib/view/node/DiamondNode.d.ts +10 -0
  533. package/lib/view/node/DiamondNode.js +50 -0
  534. package/lib/view/node/DiamondNode.js.map +1 -0
  535. package/lib/view/node/EllipseNode.d.ts +10 -0
  536. package/lib/view/node/EllipseNode.js +50 -0
  537. package/lib/view/node/EllipseNode.js.map +1 -0
  538. package/lib/view/node/HtmlNode.d.ts +38 -0
  539. package/lib/view/node/HtmlNode.js +135 -0
  540. package/lib/view/node/HtmlNode.js.map +1 -0
  541. package/lib/view/node/PolygonNode.d.ts +10 -0
  542. package/lib/view/node/PolygonNode.js +54 -0
  543. package/lib/view/node/PolygonNode.js.map +1 -0
  544. package/lib/view/node/RectNode.d.ts +11 -0
  545. package/lib/view/node/RectNode.js +50 -0
  546. package/lib/view/node/RectNode.js.map +1 -0
  547. package/lib/view/node/TextNode.d.ts +12 -0
  548. package/lib/view/node/TextNode.js +61 -0
  549. package/lib/view/node/TextNode.js.map +1 -0
  550. package/lib/view/node/index.d.ts +8 -0
  551. package/lib/view/node/index.js +25 -0
  552. package/lib/view/node/index.js.map +1 -0
  553. package/lib/view/overlay/BackgroundOverlay.d.ts +28 -0
  554. package/lib/view/overlay/BackgroundOverlay.js +34 -0
  555. package/lib/view/overlay/BackgroundOverlay.js.map +1 -0
  556. package/lib/view/overlay/BezierAdjustOverlay.d.ts +31 -0
  557. package/lib/view/overlay/BezierAdjustOverlay.js +145 -0
  558. package/lib/view/overlay/BezierAdjustOverlay.js.map +1 -0
  559. package/lib/view/overlay/CanvasOverlay.d.ts +25 -0
  560. package/lib/view/overlay/CanvasOverlay.js +175 -0
  561. package/lib/view/overlay/CanvasOverlay.js.map +1 -0
  562. package/lib/view/overlay/Grid.d.ts +30 -0
  563. package/lib/view/overlay/Grid.js +121 -0
  564. package/lib/view/overlay/Grid.js.map +1 -0
  565. package/lib/view/overlay/ModificationOverlay.d.ts +9 -0
  566. package/lib/view/overlay/ModificationOverlay.js +46 -0
  567. package/lib/view/overlay/ModificationOverlay.js.map +1 -0
  568. package/lib/view/overlay/OutlineOverlay.d.ts +14 -0
  569. package/lib/view/overlay/OutlineOverlay.js +137 -0
  570. package/lib/view/overlay/OutlineOverlay.js.map +1 -0
  571. package/lib/view/overlay/SnaplineOverlay.d.ts +10 -0
  572. package/lib/view/overlay/SnaplineOverlay.js +66 -0
  573. package/lib/view/overlay/SnaplineOverlay.js.map +1 -0
  574. package/lib/view/overlay/ToolOverlay.d.ts +19 -0
  575. package/lib/view/overlay/ToolOverlay.js +79 -0
  576. package/lib/view/overlay/ToolOverlay.js.map +1 -0
  577. package/lib/view/overlay/getTransformHoc.d.ts +37 -0
  578. package/lib/view/overlay/getTransformHoc.js +61 -0
  579. package/lib/view/overlay/getTransformHoc.js.map +1 -0
  580. package/lib/view/overlay/index.d.ts +8 -0
  581. package/lib/view/overlay/index.js +25 -0
  582. package/lib/view/overlay/index.js.map +1 -0
  583. package/lib/view/shape/Circle.d.ts +2 -0
  584. package/lib/view/shape/Circle.js +61 -0
  585. package/lib/view/shape/Circle.js.map +1 -0
  586. package/lib/view/shape/Ellipse.d.ts +2 -0
  587. package/lib/view/shape/Ellipse.js +62 -0
  588. package/lib/view/shape/Ellipse.js.map +1 -0
  589. package/lib/view/shape/Line.d.ts +2 -0
  590. package/lib/view/shape/Line.js +58 -0
  591. package/lib/view/shape/Line.js.map +1 -0
  592. package/lib/view/shape/Path.d.ts +6 -0
  593. package/lib/view/shape/Path.js +47 -0
  594. package/lib/view/shape/Path.js.map +1 -0
  595. package/lib/view/shape/Polygon.d.ts +8 -0
  596. package/lib/view/shape/Polygon.js +60 -0
  597. package/lib/view/shape/Polygon.js.map +1 -0
  598. package/lib/view/shape/Polyline.d.ts +2 -0
  599. package/lib/view/shape/Polyline.js +53 -0
  600. package/lib/view/shape/Polyline.js.map +1 -0
  601. package/lib/view/shape/Rect.d.ts +15 -0
  602. package/lib/view/shape/Rect.js +64 -0
  603. package/lib/view/shape/Rect.js.map +1 -0
  604. package/lib/view/shape/Text.d.ts +2 -0
  605. package/lib/view/shape/Text.js +114 -0
  606. package/lib/view/shape/Text.js.map +1 -0
  607. package/lib/view/shape/index.d.ts +8 -0
  608. package/lib/view/shape/index.js +25 -0
  609. package/lib/view/shape/index.js.map +1 -0
  610. package/lib/view/text/BaseText.d.ts +25 -0
  611. package/lib/view/text/BaseText.js +117 -0
  612. package/lib/view/text/BaseText.js.map +1 -0
  613. package/lib/view/text/LineText.d.ts +9 -0
  614. package/lib/view/text/LineText.js +155 -0
  615. package/lib/view/text/LineText.js.map +1 -0
  616. package/lib/view/text/index.d.ts +2 -0
  617. package/lib/view/text/index.js +19 -0
  618. package/lib/view/text/index.js.map +1 -0
  619. package/package.json +41 -88
  620. package/rollup.config.js +15 -0
  621. package/src/LogicFlow.tsx +1831 -0
  622. package/src/algorithm/edge.ts +68 -0
  623. package/src/algorithm/index.ts +68 -0
  624. package/src/algorithm/outline.ts +77 -0
  625. package/src/constant/index.ts +127 -0
  626. package/src/event/event.md +66 -0
  627. package/src/event/eventArgs.ts +476 -0
  628. package/src/event/eventEmitter.ts +153 -0
  629. package/src/history/index.ts +112 -0
  630. package/src/index.less +1 -0
  631. package/src/index.ts +21 -0
  632. package/src/keyboard/index.ts +106 -0
  633. package/src/keyboard/shortcut.ts +123 -0
  634. package/src/model/BaseModel.ts +223 -0
  635. package/src/model/EditConfigModel.ts +215 -0
  636. package/src/model/GraphModel.ts +1516 -0
  637. package/src/model/SnaplineModel.ts +238 -0
  638. package/src/model/TransformModel.ts +258 -0
  639. package/src/model/edge/BaseEdgeModel.ts +688 -0
  640. package/src/model/edge/BezierEdgeModel.ts +196 -0
  641. package/src/model/edge/LineEdgeModel.ts +26 -0
  642. package/src/model/edge/PolylineEdgeModel.ts +656 -0
  643. package/src/model/edge/index.ts +4 -0
  644. package/src/model/index.ts +8 -0
  645. package/src/model/node/BaseNodeModel.ts +839 -0
  646. package/src/model/node/CircleNodeModel.ts +89 -0
  647. package/src/model/node/DiamondNodeModel.ts +128 -0
  648. package/src/model/node/EllipseNodeModel.ts +94 -0
  649. package/src/model/node/HtmlNodeModel.ts +49 -0
  650. package/src/model/node/PolygonNodeModel.ts +147 -0
  651. package/src/model/node/RectNodeModel.ts +57 -0
  652. package/src/model/node/TextNodeModel.ts +41 -0
  653. package/src/model/node/index.ts +8 -0
  654. package/src/options.ts +173 -0
  655. package/src/style/index.less +256 -0
  656. package/src/style/raw.ts +217 -0
  657. package/src/tool/MultipleSelectTool.tsx +132 -0
  658. package/src/tool/TextEditTool.tsx +193 -0
  659. package/src/tool/index.ts +2 -0
  660. package/src/tool/snapline.ts +17 -0
  661. package/src/tool/tool.ts +66 -0
  662. package/src/typings.d.ts +5 -0
  663. package/src/util/animation.ts +29 -0
  664. package/src/util/browser.ts +4 -0
  665. package/src/util/compatible.ts +15 -0
  666. package/src/util/drag.ts +186 -0
  667. package/src/util/edge.ts +1034 -0
  668. package/src/util/geometry.ts +53 -0
  669. package/src/util/graph.ts +46 -0
  670. package/src/util/index.ts +16 -0
  671. package/src/util/matrix.ts +129 -0
  672. package/src/util/mobx.ts +23 -0
  673. package/src/util/node.ts +519 -0
  674. package/src/util/raf.ts +28 -0
  675. package/src/util/sampling.ts +85 -0
  676. package/src/util/theme.ts +180 -0
  677. package/src/util/uuid.ts +26 -0
  678. package/src/util/vector.ts +93 -0
  679. package/src/util/zIndex.ts +6 -0
  680. package/src/view/Anchor.tsx +407 -0
  681. package/src/view/Control.tsx +446 -0
  682. package/src/view/Graph.tsx +104 -0
  683. package/src/view/Rotate.tsx +112 -0
  684. package/src/view/behavior/dnd.ts +116 -0
  685. package/src/view/edge/AdjustPoint.tsx +439 -0
  686. package/src/view/edge/Arrow.tsx +54 -0
  687. package/src/view/edge/BaseEdge.tsx +489 -0
  688. package/src/view/edge/BezierEdge.tsx +101 -0
  689. package/src/view/edge/LineEdge.tsx +81 -0
  690. package/src/view/edge/PolylineEdge.tsx +299 -0
  691. package/src/view/edge/index.ts +6 -0
  692. package/src/view/index.ts +8 -0
  693. package/src/view/node/BaseNode.tsx +494 -0
  694. package/src/view/node/CircleNode.tsx +19 -0
  695. package/src/view/node/DiamondNode.tsx +22 -0
  696. package/src/view/node/EllipseNode.tsx +20 -0
  697. package/src/view/node/HtmlNode.tsx +92 -0
  698. package/src/view/node/PolygonNode.tsx +26 -0
  699. package/src/view/node/RectNode.tsx +28 -0
  700. package/src/view/node/TextNode.tsx +37 -0
  701. package/src/view/node/index.ts +8 -0
  702. package/src/view/overlay/BackgroundOverlay.tsx +39 -0
  703. package/src/view/overlay/BezierAdjustOverlay.tsx +150 -0
  704. package/src/view/overlay/CanvasOverlay.tsx +180 -0
  705. package/src/view/overlay/Grid.tsx +135 -0
  706. package/src/view/overlay/ModificationOverlay.tsx +31 -0
  707. package/src/view/overlay/OutlineOverlay.tsx +170 -0
  708. package/src/view/overlay/SnaplineOverlay.tsx +44 -0
  709. package/src/view/overlay/ToolOverlay.tsx +65 -0
  710. package/src/view/overlay/getTransformHoc.tsx +50 -0
  711. package/src/view/overlay/index.ts +8 -0
  712. package/src/view/shape/Circle.tsx +27 -0
  713. package/src/view/shape/Ellipse.tsx +28 -0
  714. package/src/view/shape/Line.tsx +24 -0
  715. package/src/view/shape/Path.tsx +19 -0
  716. package/src/view/shape/Polygon.tsx +36 -0
  717. package/src/view/shape/Polyline.tsx +19 -0
  718. package/src/view/shape/Rect.tsx +44 -0
  719. package/src/view/shape/Text.tsx +138 -0
  720. package/src/view/shape/index.ts +8 -0
  721. package/src/view/text/BaseText.tsx +96 -0
  722. package/src/view/text/LineText.tsx +154 -0
  723. package/src/view/text/index.ts +2 -0
  724. package/tsconfig.json +18 -0
  725. package/dist/entry.js +0 -7
  726. package/dist/logic-flow.js +0 -23
  727. package/dist/logic-flow.min.js +0 -23
  728. package/types/LogicFlow.d.ts +0 -581
  729. package/types/algorithm/edge.d.ts +0 -6
  730. package/types/algorithm/outline.d.ts +0 -35
  731. package/types/constant/DefaultAnimation.d.ts +0 -12
  732. package/types/constant/DefaultTheme.d.ts +0 -270
  733. package/types/event/eventEmitter.d.ts +0 -36
  734. package/types/history/History.d.ts +0 -20
  735. package/types/model/BaseModel.d.ts +0 -99
  736. package/types/model/SnaplineModel.d.ts +0 -33
  737. package/types/model/edge/BezierEdgeModel.d.ts +0 -51
  738. package/types/model/edge/LineEdgeModel.d.ts +0 -14
  739. package/types/model/edge/PolylineEdgeModel.d.ts +0 -63
  740. package/types/model/node/BaseNodeModel.d.ts +0 -232
  741. package/types/model/node/CircleNodeModel.d.ts +0 -21
  742. package/types/model/node/DiamondNodeModel.d.ts +0 -25
  743. package/types/model/node/EllipseNodeModel.d.ts +0 -22
  744. package/types/model/node/HtmlNodeModel.d.ts +0 -12
  745. package/types/model/node/PolygonNodeModel.d.ts +0 -28
  746. package/types/model/node/RectNodeModel.d.ts +0 -19
  747. package/types/model/node/TextNodeModel.d.ts +0 -19
  748. package/types/options.d.ts +0 -240
  749. package/types/tool/MultipleSelectTool.d.ts +0 -20
  750. package/types/tool/TextEditTool.d.ts +0 -34
  751. package/types/tool/index.d.ts +0 -13
  752. package/types/type/index.d.ts +0 -429
  753. package/types/util/animation.d.ts +0 -2
  754. package/types/util/compatible.d.ts +0 -1
  755. package/types/util/drag.d.ts +0 -38
  756. package/types/util/edge.d.ts +0 -108
  757. package/types/util/geometry.d.ts +0 -2
  758. package/types/util/index.d.ts +0 -7
  759. package/types/util/node.d.ts +0 -66
  760. package/types/util/raf.d.ts +0 -2
  761. package/types/util/theme.d.ts +0 -2
  762. package/types/util/uuid.d.ts +0 -6
  763. package/types/view/Anchor.d.ts +0 -54
  764. package/types/view/Graph.d.ts +0 -21
  765. package/types/view/basic-shape/Circle.d.ts +0 -2
  766. package/types/view/basic-shape/Ellipse.d.ts +0 -2
  767. package/types/view/basic-shape/Line.d.ts +0 -3
  768. package/types/view/basic-shape/LinearGradient.d.ts +0 -1
  769. package/types/view/basic-shape/Path.d.ts +0 -7
  770. package/types/view/basic-shape/Polygon.d.ts +0 -2
  771. package/types/view/basic-shape/Polyline.d.ts +0 -3
  772. package/types/view/basic-shape/Rect.d.ts +0 -14
  773. package/types/view/basic-shape/Text.d.ts +0 -2
  774. package/types/view/behavior/DnD.d.ts +0 -35
  775. package/types/view/behavior/Transform.d.ts +0 -4
  776. package/types/view/edge/AdjustPoint.d.ts +0 -56
  777. package/types/view/edge/Arrow.d.ts +0 -24
  778. package/types/view/edge/index.d.ts +0 -6
  779. package/types/view/index.d.ts +0 -2
  780. package/types/view/node/BaseNode.d.ts +0 -57
  781. package/types/view/node/CircleNode.d.ts +0 -5
  782. package/types/view/node/DiamondNode.d.ts +0 -5
  783. package/types/view/node/EllipseNode.d.ts +0 -5
  784. package/types/view/node/PolygonNode.d.ts +0 -5
  785. package/types/view/node/RectNode.d.ts +0 -5
  786. package/types/view/node/TextNode.d.ts +0 -6
  787. package/types/view/node/index.d.ts +0 -9
  788. package/types/view/overlay/BezierAdjustOverlay.d.ts +0 -12
  789. package/types/view/overlay/Grid.d.ts +0 -30
  790. package/types/view/overlay/HtmlOverlay.d.ts +0 -15
  791. package/types/view/overlay/ModificationOverlay.d.ts +0 -9
  792. package/types/view/overlay/OutlineOverlay.d.ts +0 -17
  793. package/types/view/overlay/SnaplineOverlay.d.ts +0 -9
  794. package/types/view/overlay/ToolOverlay.d.ts +0 -17
  795. package/types/view/text/BaseText.d.ts +0 -29
  796. package/types/view/text/LineText.d.ts +0 -9
  797. /package/{types → es}/algorithm/index.d.ts +0 -0
  798. /package/{types → es}/keyboard/shortcut.d.ts +0 -0
  799. /package/{types → es}/model/edge/index.d.ts +0 -0
  800. /package/{types → es}/model/index.d.ts +0 -0
  801. /package/{types → es}/model/node/index.d.ts +0 -0
  802. /package/{types → es}/util/browser.d.ts +0 -0
  803. /package/{types → es}/util/mobx.d.ts +0 -0
  804. /package/{types → es}/util/zIndex.d.ts +0 -0
@@ -0,0 +1,402 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { pick } from 'lodash-es';
13
+ import { getBytesLength } from './edge';
14
+ import { SegmentDirection } from '../constant';
15
+ import { isInSegment } from '../algorithm/edge';
16
+ /* 获取所有锚点 */
17
+ export var getAnchors = function (data) {
18
+ var anchors = data.anchors;
19
+ return anchors;
20
+ };
21
+ /* 手动边时获取目标节点的信息:目标节点,目标节点的锚点index以及坐标 */
22
+ export var targetNodeInfo = function (position, graphModel) {
23
+ var nodes = graphModel.nodes;
24
+ var nodeInfo;
25
+ for (var i = nodes.length - 1; i >= 0; i--) {
26
+ var targetNode = nodes[i];
27
+ var inNode = isInNodeBbox(position, targetNode);
28
+ if (inNode) {
29
+ var anchorInfo = targetNode.getTargetAnchor(position);
30
+ if (anchorInfo) {
31
+ // 不能连接到没有锚点的节点
32
+ var currentNodeInfo = {
33
+ node: targetNode,
34
+ anchorIndex: anchorInfo.index,
35
+ anchor: anchorInfo.anchor,
36
+ };
37
+ // fix: 489 多个节点重合时,连线连接上面的那一个。
38
+ if (!nodeInfo || isNodeHigher(targetNode, nodeInfo.node, graphModel)) {
39
+ nodeInfo = currentNodeInfo;
40
+ }
41
+ }
42
+ }
43
+ }
44
+ return nodeInfo;
45
+ };
46
+ /**
47
+ * 比较两个节点
48
+ */
49
+ var isNodeHigher = function (node1, node2, graphModel) {
50
+ if (node1.zIndex > node2.zIndex) {
51
+ return true;
52
+ }
53
+ return (graphModel.nodesMap[node1.id].index > graphModel.nodesMap[node2.id].index);
54
+ };
55
+ /* 手动边时获取目标节点上,距离目标位置最近的锚点 */
56
+ export var getClosestAnchor = function (position, node) {
57
+ var anchors = getAnchors(node);
58
+ var closest;
59
+ var minDistance = Number.MAX_SAFE_INTEGER;
60
+ for (var i = 0; i < anchors.length; i++) {
61
+ var len = distance(position.x, position.y, anchors[i].x, anchors[i].y);
62
+ if (len < minDistance) {
63
+ minDistance = len;
64
+ closest = {
65
+ index: i,
66
+ anchor: __assign(__assign({}, anchors[i]), { x: anchors[i].x, y: anchors[i].y, id: anchors[i].id }),
67
+ };
68
+ }
69
+ }
70
+ return closest;
71
+ };
72
+ /* 两点之间距离 */
73
+ export var distance = function (x1, y1, x2, y2) { return Math.hypot(x1 - x2, y1 - y2); };
74
+ /* 是否在某个节点内,手否进行连接,有offset控制粒度,与outline有关,可以优化 */
75
+ export var isInNode = function (position, node) {
76
+ var inNode = false;
77
+ var offset = 0;
78
+ var bBox = getNodeBBox(node);
79
+ if (position.x >= bBox.minX - offset &&
80
+ position.x <= bBox.maxX + offset &&
81
+ position.y >= bBox.minY - offset &&
82
+ position.y <= bBox.maxY + offset) {
83
+ inNode = true;
84
+ }
85
+ return inNode;
86
+ };
87
+ export var isInNodeBbox = function (position, node) {
88
+ var inNode = false;
89
+ var offset = 5;
90
+ var bBox = getNodeBBox(node);
91
+ if (position.x >= bBox.minX - offset &&
92
+ position.x <= bBox.maxX + offset &&
93
+ position.y >= bBox.minY - offset &&
94
+ position.y <= bBox.maxY + offset) {
95
+ inNode = true;
96
+ }
97
+ return inNode;
98
+ };
99
+ /* 获取节点bbox */
100
+ export var getNodeBBox = function (node) {
101
+ var x = node.x, y = node.y, width = node.width, height = node.height;
102
+ return {
103
+ minX: x - width / 2,
104
+ minY: y - height / 2,
105
+ maxX: x + width / 2,
106
+ maxY: y + height / 2,
107
+ x: x,
108
+ y: y,
109
+ width: width,
110
+ height: height,
111
+ centerX: x,
112
+ centerY: y,
113
+ };
114
+ };
115
+ export var getRectRadiusCircle = function (node) {
116
+ var _a = node, x = _a.x, y = _a.y, width = _a.width, height = _a.height, radius = _a.radius;
117
+ return [
118
+ {
119
+ x: x - width / 2 + radius,
120
+ y: y - height / 2 + radius,
121
+ r: radius,
122
+ },
123
+ {
124
+ x: x + width / 2 - radius,
125
+ y: y - height / 2 + radius,
126
+ r: radius,
127
+ },
128
+ {
129
+ x: x - width / 2 + radius,
130
+ y: y + height / 2 - radius,
131
+ r: radius,
132
+ },
133
+ {
134
+ x: x + width / 2 - radius,
135
+ y: y + height / 2 - radius,
136
+ r: radius,
137
+ },
138
+ ];
139
+ };
140
+ export var getClosestRadiusCenter = function (point, direction, node) {
141
+ var radiusCenter = getRectRadiusCircle(node);
142
+ var closestRadiusPoint;
143
+ var minDistance = Number.MAX_SAFE_INTEGER;
144
+ radiusCenter.forEach(function (item) {
145
+ var radiusDistance = distance(point.x, point.y, item.x, item.y);
146
+ if (radiusDistance < minDistance) {
147
+ minDistance = radiusDistance;
148
+ closestRadiusPoint = item;
149
+ }
150
+ });
151
+ return getCrossPointWithCircle(point, direction, closestRadiusPoint);
152
+ };
153
+ /* 求点在垂直或者水平方向上与圆形的交点 */
154
+ export var getCrossPointWithCircle = function (point, direction, node) {
155
+ var crossPoint;
156
+ var x = node.x, y = node.y, r = node.r;
157
+ if (direction === SegmentDirection.HORIZONTAL) {
158
+ // 水平,x轴
159
+ var crossLeft = x - Math.sqrt(r * r - (point.y - y) * (point.y - y));
160
+ var crossRight = x + Math.sqrt(r * r - (point.y - y) * (point.y - y));
161
+ var crossX = Math.abs(crossLeft - point.x) < Math.abs(crossRight - point.x)
162
+ ? crossLeft
163
+ : crossRight;
164
+ crossPoint = {
165
+ x: crossX,
166
+ y: point.y,
167
+ };
168
+ }
169
+ else if (direction === SegmentDirection.VERTICAL) {
170
+ // 垂直,y轴
171
+ var crossTop = y - Math.sqrt(r * r - (point.x - x) * (point.x - x));
172
+ var crossBottom = y + Math.sqrt(r * r - (point.x - x) * (point.x - x));
173
+ var crossY = Math.abs(crossTop - point.y) < Math.abs(crossBottom - point.y)
174
+ ? crossTop
175
+ : crossBottom;
176
+ crossPoint = {
177
+ x: point.x,
178
+ y: crossY,
179
+ };
180
+ }
181
+ return crossPoint;
182
+ };
183
+ /* 判断点所在边的方向 */
184
+ export var pointEdgeDirection = function (point, node) {
185
+ var dx = Math.abs(point.x - node.x);
186
+ var dy = Math.abs(point.y - node.y);
187
+ return dx / node.width > dy / node.height
188
+ ? SegmentDirection.VERTICAL
189
+ : SegmentDirection.HORIZONTAL;
190
+ };
191
+ // 判断矩形外框上一点是否在矩形直行线上
192
+ export var inStraightLineOfRect = function (point, node) {
193
+ var rect = node;
194
+ var isInStraight = false;
195
+ var x = rect.x, y = rect.y, width = rect.width, height = rect.height, radius = rect.radius;
196
+ var rectBox = {
197
+ minX: x - width / 2 + radius,
198
+ maxX: x + width / 2 - radius,
199
+ minY: y - height / 2 + radius,
200
+ maxY: y + height / 2 - radius,
201
+ };
202
+ if (point.y === y + height / 2 || point.y === y - height / 2) {
203
+ isInStraight = point.x > rectBox.minX && point.x < rectBox.maxX;
204
+ }
205
+ else if (point.x === x + width / 2 || point.x === x - width / 2) {
206
+ isInStraight = point.y > rectBox.minY && point.y < rectBox.maxY;
207
+ }
208
+ return isInStraight;
209
+ };
210
+ /* 求点在垂直或者水平方向上与椭圆的交点 */
211
+ export var getCrossPointWithEllipse = function (point, direction, node) {
212
+ var crossPoint;
213
+ var _a = node, x = _a.x, y = _a.y, rx = _a.rx, ry = _a.ry;
214
+ if (direction === SegmentDirection.HORIZONTAL) {
215
+ // 水平
216
+ var crossLeft = x -
217
+ Math.sqrt(rx * rx - ((point.y - y) * (point.y - y) * rx * rx) / (ry * ry));
218
+ var crossRight = x +
219
+ Math.sqrt(rx * rx - ((point.y - y) * (point.y - y) * rx * rx) / (ry * ry));
220
+ var crossX = Math.abs(crossLeft - point.x) < Math.abs(crossRight - point.x)
221
+ ? crossLeft
222
+ : crossRight;
223
+ crossPoint = {
224
+ x: crossX,
225
+ y: point.y,
226
+ };
227
+ }
228
+ else if (direction === SegmentDirection.VERTICAL) {
229
+ // 垂直
230
+ var crossTop = y -
231
+ Math.sqrt(ry * ry - ((point.x - x) * (point.x - x) * ry * ry) / (rx * rx));
232
+ var crossBottom = y +
233
+ Math.sqrt(ry * ry - ((point.x - x) * (point.x - x) * ry * ry) / (rx * rx));
234
+ var crossY = Math.abs(crossTop - point.y) < Math.abs(crossBottom - point.y)
235
+ ? crossTop
236
+ : crossBottom;
237
+ crossPoint = {
238
+ x: point.x,
239
+ y: crossY,
240
+ };
241
+ }
242
+ return crossPoint;
243
+ };
244
+ /* 求点在垂直或者水平方向上与多边形的交点 */
245
+ export var getCrossPointWithPolygon = function (point, direction, node) {
246
+ var pointsPosition = node.pointsPosition;
247
+ var minDistance = Number.MAX_SAFE_INTEGER;
248
+ var crossPoint;
249
+ var segments = [];
250
+ for (var i = 0; i < pointsPosition.length; i++) {
251
+ segments.push({
252
+ start: pointsPosition[i],
253
+ end: pointsPosition[(i + 1) % pointsPosition.length],
254
+ });
255
+ }
256
+ segments.forEach(function (item) {
257
+ var start = item.start, end = item.end;
258
+ var a = start;
259
+ var b = end;
260
+ if (start.x > end.x) {
261
+ a = end;
262
+ b = start;
263
+ }
264
+ var pointXY = {
265
+ x: point.x,
266
+ y: point.y,
267
+ };
268
+ // 如果多边形当前线段是垂直,求交点
269
+ if (a.x === b.x && direction === SegmentDirection.HORIZONTAL) {
270
+ pointXY = {
271
+ x: a.x,
272
+ y: point.y,
273
+ };
274
+ }
275
+ // 如果多边形当前线段是水平,求交点
276
+ if (a.y === b.y && direction === SegmentDirection.VERTICAL) {
277
+ pointXY = {
278
+ x: point.x,
279
+ y: a.y,
280
+ };
281
+ }
282
+ // 如果线段不是水平或者垂直, 使用向量方程进行计算
283
+ if (a.x !== b.x && a.y !== b.y) {
284
+ var k = (b.y - a.y) / (b.x - a.x);
285
+ var m = (a.x * b.y - b.x * a.y) / (a.x - b.x);
286
+ if (direction === SegmentDirection.HORIZONTAL) {
287
+ pointXY = {
288
+ x: (point.y - m) / k,
289
+ y: point.y,
290
+ };
291
+ }
292
+ else if (direction === SegmentDirection.VERTICAL) {
293
+ pointXY = {
294
+ x: point.x,
295
+ y: k * point.x + m,
296
+ };
297
+ }
298
+ }
299
+ // 如果交点在线段上
300
+ var inSegment = isInSegment(pointXY, start, end);
301
+ if (inSegment) {
302
+ var currentDistance = distance(pointXY.x, pointXY.y, point.x, point.y);
303
+ if (currentDistance < minDistance) {
304
+ minDistance = currentDistance;
305
+ crossPoint = pointXY;
306
+ }
307
+ }
308
+ });
309
+ return crossPoint;
310
+ };
311
+ // 规范节点初始化数据
312
+ export var pickNodeConfig = function (data) {
313
+ var nodeData = pick(data, [
314
+ 'id',
315
+ 'type',
316
+ 'x',
317
+ 'y',
318
+ 'text',
319
+ 'properties',
320
+ 'virtual', // 区域节点是否为dnd添加的虚拟节点
321
+ 'rotate',
322
+ ]);
323
+ return nodeData;
324
+ };
325
+ /**
326
+ * 基于节点的边,重新获取新的节点
327
+ */
328
+ export var getNodeAnchorPosition = function (center, point, width, height) {
329
+ var x = center.x, y = center.y;
330
+ if (point.x > center.x) {
331
+ x = center.x + width / 2;
332
+ }
333
+ else if (point.x < center.x) {
334
+ x = center.x - width / 2;
335
+ }
336
+ if (point.y > center.y) {
337
+ y = center.y + height / 2;
338
+ }
339
+ else if (point.y < center.y) {
340
+ y = center.y - height / 2;
341
+ }
342
+ return {
343
+ x: x,
344
+ y: y,
345
+ };
346
+ };
347
+ // 获取文案高度,自动换行,利用dom计算高度
348
+ export var getHtmlTextHeight = function (_a) {
349
+ var rows = _a.rows, style = _a.style, rowsLength = _a.rowsLength, className = _a.className;
350
+ var dom = document.createElement('div');
351
+ dom.style.fontSize = style.fontSize;
352
+ dom.style.width = style.width;
353
+ dom.className = className;
354
+ dom.style.lineHeight = style.lineHeight;
355
+ dom.style.padding = style.padding;
356
+ if (style.fontFamily) {
357
+ dom.style.fontFamily = style.fontFamily;
358
+ }
359
+ if (rowsLength > 1) {
360
+ rows.forEach(function (row) {
361
+ var rowDom = document.createElement('div');
362
+ rowDom.textContent = row;
363
+ dom.appendChild(rowDom);
364
+ });
365
+ }
366
+ else {
367
+ dom.textContent = rows[0];
368
+ }
369
+ document.body.appendChild(dom);
370
+ var height = dom.clientHeight;
371
+ document.body.removeChild(dom);
372
+ return height;
373
+ };
374
+ // 获取文案高度,自动换行,利用dom计算高度
375
+ export var getSvgTextWidthHeight = function (_a) {
376
+ var rows = _a.rows, rowsLength = _a.rowsLength, fontSize = _a.fontSize;
377
+ var longestBytes = 0;
378
+ rows &&
379
+ rows.forEach(function (item) {
380
+ var rowByteLength = getBytesLength(item);
381
+ longestBytes = rowByteLength > longestBytes ? rowByteLength : longestBytes;
382
+ });
383
+ // 背景框宽度,最长一行字节数/2 * fontsize + 2
384
+ // 背景框宽度, 行数 * fontsize + 2
385
+ return {
386
+ width: Math.ceil(longestBytes / 2) * fontSize + fontSize / 4,
387
+ height: rowsLength * (fontSize + 2) + fontSize / 4,
388
+ };
389
+ };
390
+ /**
391
+ * @description 格式化边校验信息
392
+ */
393
+ export var formateAnchorConnectValidateData = function (data) {
394
+ if (typeof data !== 'object') {
395
+ return {
396
+ isAllPass: !!data,
397
+ msg: data ? '' : '不允许连接',
398
+ };
399
+ }
400
+ return data;
401
+ };
402
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/util/node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const createRaf: (callback: () => void) => string;
2
+ export declare const cancelRaf: (rafId: string) => void;
package/es/util/raf.js ADDED
@@ -0,0 +1,24 @@
1
+ import { createUuid } from './uuid';
2
+ var rafIdMap = new Map();
3
+ export var createRaf = function (callback) {
4
+ var rafId = createUuid();
5
+ function run() {
6
+ callback();
7
+ var eId = rafIdMap.get(rafId);
8
+ if (eId) {
9
+ var nId = window.requestAnimationFrame(run);
10
+ rafIdMap.set(rafId, nId);
11
+ }
12
+ }
13
+ var id = window.requestAnimationFrame(run);
14
+ rafIdMap.set(rafId, id);
15
+ return rafId;
16
+ };
17
+ export var cancelRaf = function (rafId) {
18
+ var eId = rafIdMap.get(rafId);
19
+ if (eId) {
20
+ window.cancelAnimationFrame(eId);
21
+ rafIdMap.delete(rafId);
22
+ }
23
+ };
24
+ //# sourceMappingURL=raf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raf.js","sourceRoot":"","sources":["../../src/util/raf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC,IAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;AAE1B,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,QAAoB;IAC5C,IAAM,KAAK,GAAG,UAAU,EAAE,CAAA;IAE1B,SAAS,GAAG;QACV,QAAQ,EAAE,CAAA;QACV,IAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,GAAG,EAAE,CAAC;YACR,IAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;YAC7C,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,IAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;IAC5C,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACvB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,KAAa;IACrC,IAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC/B,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAChC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;AACH,CAAC,CAAA"}
@@ -1,4 +1,6 @@
1
- import { Point, Vector } from '../type/index';
2
- export declare function sampleCubic(p1: Point, cp1: Point, cp2: Point, p2: Point, offset: number): Point;
1
+ import LogicFlow from '../LogicFlow';
2
+ import Point = LogicFlow.Point;
3
+ import Vector = LogicFlow.Vector;
4
+ export declare function sampleCubic(p1: Point, cp1: Point, cp2: Point, p2: Point, offset: number): LogicFlow.Point;
3
5
  export declare function getThetaOfVector(v: Vector): number;
4
6
  export declare function degrees(radians: number): number;
@@ -0,0 +1,66 @@
1
+ import { distance } from './node';
2
+ var SAMPLING_FREQUENCY = 100;
3
+ var normal = {
4
+ x: 1,
5
+ y: 0,
6
+ z: 0,
7
+ };
8
+ // 采样三次贝塞尔曲线上的点, 假设采样频率为SAMPLING_FREQUENCY, 取倒数第1-6/SAMPLING_FREQUENCY个点即t=1-6/SAMPLING_FREQUENCY
9
+ export function sampleCubic(p1, cp1, cp2, p2, offset) {
10
+ var program = function (t) {
11
+ if (t < 0 || t > 1) {
12
+ throw new RangeError('The value range of parameter "t" is [0,1]');
13
+ }
14
+ return {
15
+ x: p1.x * Math.pow((1 - t), 3) +
16
+ 3 * cp1.x * t * Math.pow((1 - t), 2) +
17
+ 3 * cp2.x * Math.pow(t, 2) * (1 - t) +
18
+ p2.x * Math.pow(t, 3),
19
+ y: p1.y * Math.pow((1 - t), 3) +
20
+ 3 * cp1.y * t * Math.pow((1 - t), 2) +
21
+ 3 * cp2.y * Math.pow(t, 2) * (1 - t) +
22
+ p2.y * Math.pow(t, 3),
23
+ };
24
+ };
25
+ // fix: https://github.com/didi/LogicFlow/issues/951
26
+ // 计算贝塞尔曲线上与终点距离为offset的点,作为箭头的的垂点。
27
+ var arrowDistance = 0;
28
+ var t = 2;
29
+ var x1 = p2.x, y1 = p2.y;
30
+ var point = p2;
31
+ while (arrowDistance < offset && t < 50) {
32
+ point = program(1 - t / SAMPLING_FREQUENCY);
33
+ var x2 = point.x, y2 = point.y;
34
+ arrowDistance = distance(x1, y1, x2, y2);
35
+ t++;
36
+ }
37
+ return point;
38
+ }
39
+ function crossByZ(v, v1) {
40
+ return v.x * v1.y - v.y * v1.x;
41
+ }
42
+ function dot(v, w) {
43
+ var v1 = [v.x, v.y, v.z];
44
+ var v2 = [w.x, w.y, w.z];
45
+ return v2.reduce(function (prev, cur, index) { return prev + cur * v1[index]; });
46
+ }
47
+ function angle(v1, v2) {
48
+ var negative = crossByZ(v1, v2);
49
+ var r = Math.acos(dot(normalize(v1), normalize(v2)));
50
+ return negative >= 0 ? r : -r;
51
+ }
52
+ function normalize(v) {
53
+ var len = Math.hypot(v.x, v.y);
54
+ return {
55
+ x: v.x / len,
56
+ y: v.y / len,
57
+ z: 0,
58
+ };
59
+ }
60
+ export function getThetaOfVector(v) {
61
+ return angle(normal, v);
62
+ }
63
+ export function degrees(radians) {
64
+ return radians * (180 / Math.PI);
65
+ }
66
+ //# sourceMappingURL=sampling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampling.js","sourceRoot":"","sources":["../../src/util/sampling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import LogicFlow from '../LogicFlow';
2
+ export declare const defaultTheme: LogicFlow.Theme;
3
+ export declare const setupTheme: (customTheme?: Partial<LogicFlow.Theme>) => LogicFlow.Theme;
4
+ export declare const updateTheme: (customTheme?: Partial<LogicFlow.Theme>) => LogicFlow.Theme;