@logicflow/core 2.2.0 → 2.2.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 (361) hide show
  1. package/dist/docs/api/logicflow-constructor/index.en.md +106 -0
  2. package/dist/docs/api/logicflow-constructor/index.zh.md +106 -0
  3. package/dist/docs/api/logicflow-constructor/use.en.md +61 -0
  4. package/dist/docs/api/logicflow-constructor/use.zh.md +61 -0
  5. package/dist/docs/api/logicflow-instance/canvas.en.md +197 -0
  6. package/dist/docs/api/logicflow-instance/canvas.zh.md +199 -0
  7. package/dist/docs/api/logicflow-instance/edge.en.md +273 -0
  8. package/dist/docs/api/logicflow-instance/edge.zh.md +273 -0
  9. package/dist/docs/api/logicflow-instance/edit-config.en.md +59 -0
  10. package/dist/docs/api/logicflow-instance/edit-config.zh.md +59 -0
  11. package/dist/docs/api/logicflow-instance/element.en.md +375 -0
  12. package/dist/docs/api/logicflow-instance/element.zh.md +379 -0
  13. package/dist/docs/api/logicflow-instance/event.en.md +326 -0
  14. package/dist/docs/api/logicflow-instance/event.zh.md +406 -0
  15. package/dist/docs/api/logicflow-instance/history.en.md +38 -0
  16. package/dist/docs/api/logicflow-instance/history.zh.md +38 -0
  17. package/dist/docs/api/logicflow-instance/index.en.md +41 -0
  18. package/dist/docs/api/logicflow-instance/index.zh.md +41 -0
  19. package/dist/docs/api/logicflow-instance/node.en.md +308 -0
  20. package/dist/docs/api/logicflow-instance/node.zh.md +308 -0
  21. package/dist/docs/api/logicflow-instance/register.en.md +76 -0
  22. package/dist/docs/api/logicflow-instance/register.zh.md +76 -0
  23. package/dist/docs/api/logicflow-instance/render-and-data.en.md +179 -0
  24. package/dist/docs/api/logicflow-instance/render-and-data.zh.md +181 -0
  25. package/dist/docs/api/logicflow-instance/text.en.md +60 -0
  26. package/dist/docs/api/logicflow-instance/text.zh.md +60 -0
  27. package/dist/docs/api/logicflow-instance/theme.en.md +179 -0
  28. package/dist/docs/api/logicflow-instance/theme.zh.md +179 -0
  29. package/dist/docs/api/runtime-model/edgeModel.en.md +29 -0
  30. package/dist/docs/api/runtime-model/edgeModel.zh.md +325 -0
  31. package/dist/docs/api/runtime-model/graphModel.en.md +275 -0
  32. package/dist/docs/api/runtime-model/graphModel.zh.md +1153 -0
  33. package/dist/docs/api/runtime-model/nodeModel.en.md +37 -0
  34. package/dist/docs/api/runtime-model/nodeModel.zh.md +644 -0
  35. package/dist/docs/api/type/MainTypes.en.md +598 -0
  36. package/dist/docs/api/type/MainTypes.zh.md +867 -0
  37. package/dist/docs/api/type/Theme.en.md +187 -0
  38. package/dist/docs/api/type/Theme.zh.md +187 -0
  39. package/dist/docs/api/type/canvas-types.en.md +25 -0
  40. package/dist/docs/api/type/canvas-types.zh.md +25 -0
  41. package/dist/docs/api/type/index.en.md +96 -0
  42. package/dist/docs/api/type/index.zh.md +99 -0
  43. package/dist/docs/api/type/node-types.en.md +21 -0
  44. package/dist/docs/api/type/node-types.zh.md +21 -0
  45. package/dist/docs/api/type/plugin-types.en.md +24 -0
  46. package/dist/docs/api/type/plugin-types.zh.md +24 -0
  47. package/dist/docs/index.md +11 -0
  48. package/dist/docs/tutorial/about.en.md +38 -0
  49. package/dist/docs/tutorial/about.zh.md +65 -0
  50. package/dist/docs/tutorial/advanced/dnd.en.md +62 -0
  51. package/dist/docs/tutorial/advanced/dnd.zh.md +52 -0
  52. package/dist/docs/tutorial/advanced/edge.en.md +64 -0
  53. package/dist/docs/tutorial/advanced/edge.zh.md +66 -0
  54. package/dist/docs/tutorial/advanced/keyboard.en.md +70 -0
  55. package/dist/docs/tutorial/advanced/keyboard.zh.md +67 -0
  56. package/dist/docs/tutorial/advanced/node.en.md +338 -0
  57. package/dist/docs/tutorial/advanced/node.zh.md +338 -0
  58. package/dist/docs/tutorial/advanced/react.en.md +106 -0
  59. package/dist/docs/tutorial/advanced/react.zh.md +114 -0
  60. package/dist/docs/tutorial/advanced/silent-mode.en.md +75 -0
  61. package/dist/docs/tutorial/advanced/silent-mode.zh.md +71 -0
  62. package/dist/docs/tutorial/advanced/snapline.en.md +54 -0
  63. package/dist/docs/tutorial/advanced/vue.en.md +249 -0
  64. package/dist/docs/tutorial/advanced/vue.zh.md +248 -0
  65. package/dist/docs/tutorial/ai.en.md +64 -0
  66. package/dist/docs/tutorial/ai.zh.md +64 -0
  67. package/dist/docs/tutorial/basic/background.en.md +50 -0
  68. package/dist/docs/tutorial/basic/canvas.en.md +164 -0
  69. package/dist/docs/tutorial/basic/canvas.zh.md +183 -0
  70. package/dist/docs/tutorial/basic/class.en.md +106 -0
  71. package/dist/docs/tutorial/basic/class.zh.md +103 -0
  72. package/dist/docs/tutorial/basic/edge.en.md +151 -0
  73. package/dist/docs/tutorial/basic/edge.zh.md +152 -0
  74. package/dist/docs/tutorial/basic/event.en.md +70 -0
  75. package/dist/docs/tutorial/basic/event.zh.md +66 -0
  76. package/dist/docs/tutorial/basic/grid.en.md +77 -0
  77. package/dist/docs/tutorial/basic/node.en.md +358 -0
  78. package/dist/docs/tutorial/basic/node.zh.md +318 -0
  79. package/dist/docs/tutorial/basic/theme.en.md +154 -0
  80. package/dist/docs/tutorial/basic/theme.zh.md +157 -0
  81. package/dist/docs/tutorial/extension/adapter.en.md +446 -0
  82. package/dist/docs/tutorial/extension/adapter.zh.md +429 -0
  83. package/dist/docs/tutorial/extension/bpmn-element.en.md +1427 -0
  84. package/dist/docs/tutorial/extension/bpmn-element.zh.md +1472 -0
  85. package/dist/docs/tutorial/extension/control.en.md +117 -0
  86. package/dist/docs/tutorial/extension/control.zh.md +118 -0
  87. package/dist/docs/tutorial/extension/curved-edge.en.md +46 -0
  88. package/dist/docs/tutorial/extension/curved-edge.zh.md +46 -0
  89. package/dist/docs/tutorial/extension/custom.en.md +142 -0
  90. package/dist/docs/tutorial/extension/custom.zh.md +138 -0
  91. package/dist/docs/tutorial/extension/dnd-panel.en.md +109 -0
  92. package/dist/docs/tutorial/extension/dnd-panel.zh.md +109 -0
  93. package/dist/docs/tutorial/extension/dynamic-group.en.md +606 -0
  94. package/dist/docs/tutorial/extension/dynamic-group.zh.md +606 -0
  95. package/dist/docs/tutorial/extension/group.en.md +217 -0
  96. package/dist/docs/tutorial/extension/group.zh.md +209 -0
  97. package/dist/docs/tutorial/extension/highlight.en.md +50 -0
  98. package/dist/docs/tutorial/extension/highlight.zh.md +50 -0
  99. package/dist/docs/tutorial/extension/insert-node-in-polyline.en.md +52 -0
  100. package/dist/docs/tutorial/extension/insert-node-in-polyline.zh.md +47 -0
  101. package/dist/docs/tutorial/extension/intro.en.md +72 -0
  102. package/dist/docs/tutorial/extension/intro.zh.md +95 -0
  103. package/dist/docs/tutorial/extension/label.en.md +136 -0
  104. package/dist/docs/tutorial/extension/label.zh.md +135 -0
  105. package/dist/docs/tutorial/extension/layout.en.md +156 -0
  106. package/dist/docs/tutorial/extension/layout.zh.md +156 -0
  107. package/dist/docs/tutorial/extension/menu.en.md +319 -0
  108. package/dist/docs/tutorial/extension/menu.zh.md +377 -0
  109. package/dist/docs/tutorial/extension/minimap.en.md +164 -0
  110. package/dist/docs/tutorial/extension/minimap.zh.md +180 -0
  111. package/dist/docs/tutorial/extension/node-resize.en.md +199 -0
  112. package/dist/docs/tutorial/extension/node-resize.zh.md +221 -0
  113. package/dist/docs/tutorial/extension/pool.en.md +227 -0
  114. package/dist/docs/tutorial/extension/pool.zh.md +227 -0
  115. package/dist/docs/tutorial/extension/proximity-connect.en.md +104 -0
  116. package/dist/docs/tutorial/extension/proximity-connect.zh.md +107 -0
  117. package/dist/docs/tutorial/extension/selection.en.md +166 -0
  118. package/dist/docs/tutorial/extension/selection.zh.md +150 -0
  119. package/dist/docs/tutorial/extension/snapshot.en.md +276 -0
  120. package/dist/docs/tutorial/extension/snapshot.zh.md +276 -0
  121. package/dist/docs/tutorial/get-started.en.md +501 -0
  122. package/dist/docs/tutorial/get-started.zh.md +139 -0
  123. package/dist/docs/tutorial/update.en.md +213 -0
  124. package/dist/docs/tutorial/update.zh.md +212 -0
  125. package/dist/index.css +3 -2
  126. package/dist/index.min.js +1 -1
  127. package/dist/index.min.js.map +1 -1
  128. package/es/LogicFlow.d.ts +9 -0
  129. package/es/LogicFlow.js +0 -1
  130. package/es/constant/index.d.ts +1 -1
  131. package/es/constant/index.js +1 -1
  132. package/es/constant/theme.d.ts +136 -0
  133. package/es/constant/theme.js +680 -0
  134. package/es/index.css +3 -2
  135. package/es/model/GraphModel.d.ts +10 -2
  136. package/es/model/GraphModel.js +48 -14
  137. package/es/model/TransformModel.js +9 -9
  138. package/es/model/edge/BaseEdgeModel.js +7 -2
  139. package/es/model/edge/PolylineEdgeModel.d.ts +7 -0
  140. package/es/model/edge/PolylineEdgeModel.js +136 -7
  141. package/es/model/node/BaseNodeModel.d.ts +12 -1
  142. package/es/model/node/BaseNodeModel.js +9 -2
  143. package/es/model/node/HtmlNodeModel.d.ts +12 -0
  144. package/es/model/node/HtmlNodeModel.js +19 -0
  145. package/es/model/node/PolygonNodeModel.js +3 -3
  146. package/es/options.d.ts +4 -2
  147. package/es/style/index.css +3 -2
  148. package/es/style/index.less +3 -2
  149. package/es/style/raw.d.ts +1 -1
  150. package/es/style/raw.js +1 -1
  151. package/es/tool/MultipleSelectTool.js +10 -5
  152. package/es/util/drag.js +0 -1
  153. package/es/util/edge.d.ts +40 -1
  154. package/es/util/edge.js +43 -9
  155. package/es/util/geometry.d.ts +8 -0
  156. package/es/util/geometry.js +79 -0
  157. package/es/util/theme.d.ts +2 -65
  158. package/es/util/theme.js +4 -281
  159. package/es/view/Anchor.d.ts +1 -0
  160. package/es/view/Anchor.js +24 -21
  161. package/es/view/Control.d.ts +5 -0
  162. package/es/view/Control.js +44 -57
  163. package/es/view/edge/BaseEdge.js +9 -0
  164. package/es/view/edge/PolylineEdge.js +13 -2
  165. package/es/view/node/BaseNode.d.ts +1 -0
  166. package/es/view/node/BaseNode.js +23 -11
  167. package/es/view/node/HtmlNode.js +2 -4
  168. package/es/view/overlay/CanvasOverlay.js +5 -2
  169. package/es/view/overlay/Grid.d.ts +12 -1
  170. package/es/view/overlay/Grid.js +85 -23
  171. package/es/view/overlay/OutlineOverlay.d.ts +1 -0
  172. package/es/view/overlay/OutlineOverlay.js +18 -17
  173. package/es/view/overlay/gridConfig.d.ts +46 -0
  174. package/es/view/overlay/gridConfig.js +99 -0
  175. package/es/view/shape/Polygon.d.ts +0 -7
  176. package/es/view/shape/Polygon.js +12 -43
  177. package/lib/LogicFlow.d.ts +9 -0
  178. package/lib/LogicFlow.js +0 -1
  179. package/lib/constant/index.d.ts +1 -1
  180. package/lib/constant/index.js +16 -2
  181. package/lib/constant/theme.d.ts +136 -0
  182. package/lib/constant/theme.js +683 -0
  183. package/lib/index.css +3 -2
  184. package/lib/model/GraphModel.d.ts +10 -2
  185. package/lib/model/GraphModel.js +49 -15
  186. package/lib/model/TransformModel.js +9 -9
  187. package/lib/model/edge/BaseEdgeModel.js +7 -2
  188. package/lib/model/edge/PolylineEdgeModel.d.ts +7 -0
  189. package/lib/model/edge/PolylineEdgeModel.js +136 -7
  190. package/lib/model/node/BaseNodeModel.d.ts +12 -1
  191. package/lib/model/node/BaseNodeModel.js +9 -2
  192. package/lib/model/node/HtmlNodeModel.d.ts +12 -0
  193. package/lib/model/node/HtmlNodeModel.js +19 -0
  194. package/lib/model/node/PolygonNodeModel.js +3 -3
  195. package/lib/options.d.ts +4 -2
  196. package/lib/style/index.css +3 -2
  197. package/lib/style/index.less +3 -2
  198. package/lib/style/raw.d.ts +1 -1
  199. package/lib/style/raw.js +1 -1
  200. package/lib/tool/MultipleSelectTool.js +10 -5
  201. package/lib/util/drag.js +0 -1
  202. package/lib/util/edge.d.ts +40 -1
  203. package/lib/util/edge.js +43 -9
  204. package/lib/util/geometry.d.ts +8 -0
  205. package/lib/util/geometry.js +81 -1
  206. package/lib/util/theme.d.ts +2 -65
  207. package/lib/util/theme.js +15 -292
  208. package/lib/view/Anchor.d.ts +1 -0
  209. package/lib/view/Anchor.js +24 -21
  210. package/lib/view/Control.d.ts +5 -0
  211. package/lib/view/Control.js +44 -57
  212. package/lib/view/edge/BaseEdge.js +9 -0
  213. package/lib/view/edge/PolylineEdge.js +13 -2
  214. package/lib/view/node/BaseNode.d.ts +1 -0
  215. package/lib/view/node/BaseNode.js +22 -10
  216. package/lib/view/node/HtmlNode.js +1 -3
  217. package/lib/view/overlay/CanvasOverlay.js +5 -2
  218. package/lib/view/overlay/Grid.d.ts +12 -1
  219. package/lib/view/overlay/Grid.js +83 -21
  220. package/lib/view/overlay/OutlineOverlay.d.ts +1 -0
  221. package/lib/view/overlay/OutlineOverlay.js +18 -17
  222. package/lib/view/overlay/gridConfig.d.ts +46 -0
  223. package/lib/view/overlay/gridConfig.js +104 -0
  224. package/lib/view/shape/Polygon.d.ts +0 -7
  225. package/lib/view/shape/Polygon.js +13 -45
  226. package/package.json +9 -2
  227. package/scripts/postinstall-ai-prompt.js +67 -0
  228. package/.turbo/turbo-build$colon$dev.log +0 -10
  229. package/.turbo/turbo-build.log +0 -33
  230. package/CHANGELOG.md +0 -1849
  231. package/__tests__/algorithm/egde.test.ts +0 -131
  232. package/__tests__/algorithm/index.test.ts +0 -74
  233. package/__tests__/algorithm/outline.test.ts +0 -43
  234. package/__tests__/bugs/1545-spec.test.ts +0 -42
  235. package/__tests__/event/event.test.ts +0 -22
  236. package/__tests__/history/history.test.ts +0 -28
  237. package/__tests__/logicflow.test.ts +0 -575
  238. package/__tests__/model/graphmodel.test.ts +0 -87
  239. package/__tests__/util/compatible.test.ts +0 -48
  240. package/__tests__/util/edge.test.ts +0 -224
  241. package/__tests__/util/geometry.test.ts +0 -14
  242. package/__tests__/util/graph.test.ts +0 -16
  243. package/__tests__/util/matrix.test.ts +0 -41
  244. package/__tests__/util/node.test.ts +0 -68
  245. package/__tests__/util/sampling.test.ts +0 -12
  246. package/__tests__/util/vector.test.ts +0 -50
  247. package/__tests__/util/zIndex.test.ts +0 -10
  248. package/src/LogicFlow.tsx +0 -2008
  249. package/src/algorithm/edge.ts +0 -67
  250. package/src/algorithm/index.ts +0 -70
  251. package/src/algorithm/outline.ts +0 -77
  252. package/src/algorithm/rotate.ts +0 -55
  253. package/src/common/drag.ts +0 -219
  254. package/src/common/history.ts +0 -108
  255. package/src/common/index.ts +0 -6
  256. package/src/common/keyboard.ts +0 -108
  257. package/src/common/matrix.ts +0 -122
  258. package/src/common/vector.ts +0 -93
  259. package/src/constant/index.ts +0 -179
  260. package/src/event/event.md +0 -66
  261. package/src/event/eventArgs.ts +0 -643
  262. package/src/event/eventEmitter.ts +0 -156
  263. package/src/history/index.ts +0 -119
  264. package/src/index.less +0 -1
  265. package/src/index.ts +0 -26
  266. package/src/keyboard/index.ts +0 -112
  267. package/src/keyboard/shortcut.ts +0 -200
  268. package/src/model/BaseModel.ts +0 -250
  269. package/src/model/EditConfigModel.ts +0 -334
  270. package/src/model/GraphModel.ts +0 -1788
  271. package/src/model/NestedTransformModel.ts +0 -121
  272. package/src/model/SnaplineModel.ts +0 -256
  273. package/src/model/TransformModel.ts +0 -258
  274. package/src/model/edge/BaseEdgeModel.ts +0 -777
  275. package/src/model/edge/BezierEdgeModel.ts +0 -197
  276. package/src/model/edge/LineEdgeModel.ts +0 -36
  277. package/src/model/edge/PolylineEdgeModel.ts +0 -672
  278. package/src/model/edge/index.ts +0 -4
  279. package/src/model/index.ts +0 -9
  280. package/src/model/node/BaseNodeModel.ts +0 -949
  281. package/src/model/node/CircleNodeModel.ts +0 -91
  282. package/src/model/node/DiamondNodeModel.ts +0 -132
  283. package/src/model/node/EllipseNodeModel.ts +0 -98
  284. package/src/model/node/HtmlNodeModel.ts +0 -50
  285. package/src/model/node/PolygonNodeModel.ts +0 -150
  286. package/src/model/node/RectNodeModel.ts +0 -69
  287. package/src/model/node/TextNodeModel.ts +0 -54
  288. package/src/model/node/index.ts +0 -8
  289. package/src/options.ts +0 -145
  290. package/src/style/index.less +0 -261
  291. package/src/style/raw.ts +0 -220
  292. package/src/tool/MultipleSelectTool.tsx +0 -132
  293. package/src/tool/TextEditTool.tsx +0 -193
  294. package/src/tool/index.ts +0 -101
  295. package/src/typings.d.ts +0 -5
  296. package/src/util/animation.ts +0 -29
  297. package/src/util/browser.ts +0 -4
  298. package/src/util/compatible.ts +0 -15
  299. package/src/util/drag.ts +0 -220
  300. package/src/util/edge.ts +0 -1060
  301. package/src/util/geometry.ts +0 -55
  302. package/src/util/graph.ts +0 -46
  303. package/src/util/index.ts +0 -17
  304. package/src/util/matrix.ts +0 -129
  305. package/src/util/mobx.ts +0 -23
  306. package/src/util/node.ts +0 -543
  307. package/src/util/raf.ts +0 -28
  308. package/src/util/resize.ts +0 -606
  309. package/src/util/sampling.ts +0 -85
  310. package/src/util/theme.ts +0 -375
  311. package/src/util/uuid.ts +0 -26
  312. package/src/util/vector.ts +0 -93
  313. package/src/util/zIndex.ts +0 -6
  314. package/src/view/Anchor.tsx +0 -445
  315. package/src/view/Control.tsx +0 -512
  316. package/src/view/Graph.tsx +0 -141
  317. package/src/view/Rotate.tsx +0 -113
  318. package/src/view/behavior/dnd.ts +0 -162
  319. package/src/view/behavior/index.ts +0 -2
  320. package/src/view/behavior/snapline.ts +0 -16
  321. package/src/view/edge/AdjustPoint.tsx +0 -425
  322. package/src/view/edge/Arrow.tsx +0 -54
  323. package/src/view/edge/BaseEdge.tsx +0 -650
  324. package/src/view/edge/BezierEdge.tsx +0 -101
  325. package/src/view/edge/LineEdge.tsx +0 -81
  326. package/src/view/edge/PolylineEdge.tsx +0 -299
  327. package/src/view/edge/index.ts +0 -6
  328. package/src/view/index.ts +0 -8
  329. package/src/view/node/BaseNode.tsx +0 -571
  330. package/src/view/node/CircleNode.tsx +0 -21
  331. package/src/view/node/DiamondNode.tsx +0 -24
  332. package/src/view/node/EllipseNode.tsx +0 -22
  333. package/src/view/node/HtmlNode.tsx +0 -95
  334. package/src/view/node/PolygonNode.tsx +0 -28
  335. package/src/view/node/RectNode.tsx +0 -30
  336. package/src/view/node/TextNode.tsx +0 -39
  337. package/src/view/node/index.ts +0 -8
  338. package/src/view/overlay/BackgroundOverlay.tsx +0 -34
  339. package/src/view/overlay/BezierAdjustOverlay.tsx +0 -150
  340. package/src/view/overlay/CanvasOverlay.tsx +0 -288
  341. package/src/view/overlay/Grid.tsx +0 -162
  342. package/src/view/overlay/ModificationOverlay.tsx +0 -31
  343. package/src/view/overlay/OutlineOverlay.tsx +0 -170
  344. package/src/view/overlay/SnaplineOverlay.tsx +0 -44
  345. package/src/view/overlay/ToolOverlay.tsx +0 -65
  346. package/src/view/overlay/getTransformHoc.tsx +0 -50
  347. package/src/view/overlay/index.ts +0 -8
  348. package/src/view/shape/Circle.tsx +0 -41
  349. package/src/view/shape/Ellipse.tsx +0 -42
  350. package/src/view/shape/Line.tsx +0 -39
  351. package/src/view/shape/Path.tsx +0 -22
  352. package/src/view/shape/Polygon.tsx +0 -91
  353. package/src/view/shape/Polyline.tsx +0 -31
  354. package/src/view/shape/Rect.tsx +0 -44
  355. package/src/view/shape/Text.tsx +0 -169
  356. package/src/view/shape/index.ts +0 -8
  357. package/src/view/text/BaseText.tsx +0 -134
  358. package/src/view/text/LineText.tsx +0 -168
  359. package/src/view/text/index.ts +0 -2
  360. package/stats.html +0 -4842
  361. package/tsconfig.json +0 -18
@@ -1,224 +0,0 @@
1
- import {
2
- isBboxOverLapping,
3
- mergeBBox,
4
- isPointOutsideBBox,
5
- isSegmentCrossingBBox,
6
- getLongestEdge,
7
- getSimplePolyline,
8
- pointDirection,
9
- getBBoxCrossPointsByPoint,
10
- isSegmentsInNode,
11
- isSegmentsCrossNode,
12
- getCrossPointInRect,
13
- segmentDirection,
14
- } from '../../src/util/edge'
15
-
16
- describe('util/edge', () => {
17
- test('is bbox overlapping', () => {
18
- const bbox1 = {
19
- centerX: 1,
20
- centerY: 1,
21
- width: 2,
22
- height: 2,
23
- }
24
- const bbox2 = {
25
- centerX: 2,
26
- centerY: 2,
27
- width: 2,
28
- height: 2,
29
- }
30
- expect(isBboxOverLapping(bbox1, bbox2)).toBeTruthy()
31
-
32
- const bbox3 = {
33
- centerX: 3,
34
- centerY: 3,
35
- width: 2,
36
- height: 2,
37
- }
38
- expect(isBboxOverLapping(bbox1, bbox3)).toBeFalsy()
39
- })
40
- test('filter repeat points', () => {
41
- const sPoint1 = {
42
- x: 0,
43
- y: 0,
44
- }
45
- const tPoint1 = {
46
- x: 10,
47
- y: 10,
48
- }
49
- expect(getSimplePolyline(sPoint1, tPoint1)).toEqual([
50
- { x: 0, y: 0, id: '0-0' },
51
- { x: 0, y: 10, id: '0-10' },
52
- { x: 10, y: 10, id: '10-10' },
53
- ])
54
-
55
- const sPoint2 = {
56
- x: 0,
57
- y: 0,
58
- }
59
- const tPoint2 = {
60
- x: 0,
61
- y: 10,
62
- }
63
- expect(getSimplePolyline(sPoint2, tPoint2)).toEqual([
64
- { x: 0, y: 0, id: '0-0' },
65
- { x: 0, y: 10, id: '0-10' },
66
- ])
67
- })
68
- test('merge two BBoxes', () => {
69
- const bbox1 = {
70
- minX: 0,
71
- minY: 0,
72
- maxX: 2,
73
- maxY: 2,
74
- }
75
- const bbox2 = {
76
- minX: 1,
77
- minY: 1,
78
- maxX: 3,
79
- maxY: 3,
80
- }
81
- expect(mergeBBox(bbox1, bbox2)).toEqual({
82
- minX: 0,
83
- minY: 0,
84
- maxX: 3,
85
- maxY: 3,
86
- centerX: 1.5,
87
- centerY: 1.5,
88
- width: 3,
89
- height: 3,
90
- })
91
- })
92
- test('get direction of two points', () => {
93
- const point = {
94
- x: 0,
95
- y: 0,
96
- }
97
- const bbox1 = {
98
- width: 2,
99
- height: 4,
100
- centerX: 1,
101
- centerY: 1,
102
- }
103
- const bbox2 = {
104
- width: 4,
105
- height: 2,
106
- centerX: 1,
107
- centerY: 1,
108
- }
109
- expect(pointDirection(point, bbox1)).toEqual('horizontal')
110
- expect(pointDirection(point, bbox2)).toEqual('vertical')
111
- })
112
- test('is point inside the bbox', () => {
113
- const bbox = {
114
- minX: 0,
115
- minY: 0,
116
- maxX: 2,
117
- maxY: 2,
118
- }
119
- expect(isPointOutsideBBox({ x: 1, y: 1 }, bbox)).toBeFalsy()
120
- expect(isPointOutsideBBox({ x: 3, y: 3 }, bbox)).toBeTruthy()
121
- })
122
- test('get cross points of bbox and point', () => {
123
- const bbox = {
124
- minX: 0,
125
- minY: 0,
126
- maxX: 2,
127
- maxY: 2,
128
- }
129
- const point1 = {
130
- x: 1,
131
- y: 1,
132
- }
133
- const point2 = {
134
- x: 3,
135
- y: 3,
136
- }
137
- expect(getBBoxCrossPointsByPoint(bbox, point1)).toEqual([
138
- { x: 1, y: 0 },
139
- { x: 1, y: 2 },
140
- { x: 0, y: 1 },
141
- { x: 2, y: 1 },
142
- ])
143
- expect(getBBoxCrossPointsByPoint(bbox, point2)).toEqual([])
144
- })
145
- test('is segment cross the bbox', () => {
146
- const bbox = {
147
- minX: 0,
148
- minY: 0,
149
- maxX: 2,
150
- maxY: 2,
151
- }
152
- expect(
153
- isSegmentCrossingBBox({ x: 1, y: 1 }, { x: 3, y: 3 }, bbox),
154
- ).toBeTruthy()
155
- expect(
156
- isSegmentCrossingBBox({ x: 3, y: 3 }, { x: 4, y: 4 }, bbox),
157
- ).toBeFalsy()
158
- })
159
- test('get longest edge', () => {
160
- const points = [
161
- { x: 0, y: 0 },
162
- { x: 1, y: 1 },
163
- { x: 2, y: 2 },
164
- ]
165
- expect(getLongestEdge(points)).toEqual([
166
- { x: 0, y: 0 },
167
- { x: 1, y: 1 },
168
- ])
169
- })
170
-
171
- const segment1 = [
172
- {
173
- x: 0,
174
- y: 0,
175
- },
176
- {
177
- x: 0,
178
- y: 10,
179
- },
180
- ]
181
- const segment2 = [
182
- {
183
- x: -30,
184
- y: 0,
185
- },
186
- {
187
- x: 30,
188
- y: 0,
189
- },
190
- ]
191
- const bbox = {
192
- x: 0,
193
- y: 0,
194
- width: 20,
195
- height: 20,
196
- }
197
- test('is segments in node', () => {
198
- expect(isSegmentsInNode(segment1[0], segment1[1], bbox)).toBeTruthy()
199
- expect(isSegmentsInNode(segment2[0], segment2[1], bbox)).toBeFalsy()
200
- })
201
- test('is segments cross node', () => {
202
- expect(isSegmentsCrossNode(segment1[0], segment1[1], bbox)).toBeFalsy()
203
- expect(isSegmentsCrossNode(segment2[0], segment1[0], bbox)).toBeTruthy()
204
- })
205
- test('get cross point in rect', () => {
206
- expect(getCrossPointInRect(segment1[0], segment1[1], bbox)).toEqual({
207
- x: 0,
208
- y: 10,
209
- })
210
- expect(getCrossPointInRect(segment2[0], segment2[1], bbox)).toEqual({
211
- x: -10,
212
- y: 0,
213
- })
214
- })
215
- test('segment direction', () => {
216
- expect(segmentDirection(segment1[0], segment1[1])).toEqual('vertical')
217
- expect(
218
- segmentDirection(segment1[0], {
219
- x: 10,
220
- y: 0,
221
- }),
222
- ).toEqual('horizontal')
223
- })
224
- })
@@ -1,14 +0,0 @@
1
- import { snapToGrid, getGridOffset } from '../../src/util'
2
-
3
- describe('util/geometry', () => {
4
- test('snapToGrid', () => {
5
- const point = 2.5
6
- const grid = 1.5
7
- expect(snapToGrid(point, grid) - 3 < Number.EPSILON).toBeTruthy()
8
- })
9
- test('getGridOffset', () => {
10
- const distance = 3
11
- const grid = 1.5
12
- expect(getGridOffset(distance, grid) - 2 < Number.EPSILON).toBeTruthy()
13
- })
14
- })
@@ -1,16 +0,0 @@
1
- import { isPointInArea } from '../../src/util/graph'
2
-
3
- describe('util/graph', () => {
4
- test('if element is in an area, truthy', () => {
5
- const point: [number, number] = [1, 1]
6
- const leftTopPoint: [number, number] = [0, 0]
7
- const rightBottomPoint: [number, number] = [2, 2]
8
- expect(isPointInArea(point, leftTopPoint, rightBottomPoint)).toBeTruthy()
9
- })
10
- test('if element is in an area, falsy', () => {
11
- const point: [number, number] = [1, 1]
12
- const leftTopPoint: [number, number] = [2, 2]
13
- const rightBottomPoint: [number, number] = [4, 4]
14
- expect(isPointInArea(point, leftTopPoint, rightBottomPoint)).toBeFalsy()
15
- })
16
- })
@@ -1,41 +0,0 @@
1
- import { Matrix } from '../../src/util/matrix'
2
-
3
- describe('util/matrix', () => {
4
- test('construct', () => {
5
- const m = new Matrix([1, 2, 3], [4, 5, 6], [7, 8, 9])
6
- expect(m[0]).toEqual([1, 2, 3])
7
- expect(m[1]).toEqual([4, 5, 6])
8
- expect(m[2]).toEqual([7, 8, 9])
9
- })
10
- test('cross', () => {
11
- const m = new Matrix([1, 2, 3], [4, 5, 6], [7, 8, 9])
12
- const n = new Matrix([9, 8, 7], [6, 5, 4], [3, 2, 1])
13
- expect(m.cross(n)).toEqual(
14
- new Matrix([30, 24, 18], [84, 69, 54], [138, 114, 90]),
15
- )
16
- })
17
- test('transpose', () => {
18
- const m = new Matrix([1, 2, 3], [4, 5, 6], [7, 8, 9])
19
- expect(m.transpose()).toEqual(new Matrix([1, 4, 7], [2, 5, 8], [3, 6, 9]))
20
- })
21
- test('translate', () => {
22
- const m = new Matrix([1, 0, 0], [0, 1, 0], [0, 0, 1])
23
- expect(m.translate(2, 3)).toEqual(
24
- new Matrix([1, 0, 0], [0, 1, 0], [2, 3, 1]),
25
- )
26
- })
27
- test('rotate', () => {
28
- const m = new Matrix([1, 0, 0], [0, 1, 0], [0, 0, 1])
29
- expect(m.rotate(Math.PI / 2)).toEqual(
30
- new Matrix([0, 1, 0], [-1, 0, 0], [0, 0, 1]),
31
- )
32
- })
33
- test('scale', () => {
34
- const m = new Matrix([1, 0, 0], [0, 1, 0], [0, 0, 1])
35
- expect(m.scale(2, 3)).toEqual(new Matrix([2, 0, 0], [0, 3, 0], [0, 0, 1]))
36
- })
37
- test('toString', () => {
38
- const m = new Matrix([1, 0, 0], [0, 1, 0], [1, 1, 1])
39
- expect(m.toString()).toEqual('matrix(1 0 0 1 1 1)')
40
- })
41
- })
@@ -1,68 +0,0 @@
1
- import {
2
- getClosestAnchor,
3
- isInNode,
4
- getCrossPointWithCircle,
5
- getCrossPointWithEllipse,
6
- } from '../../src/util/node'
7
-
8
- describe('util/node', () => {
9
- test('get closest anchor', () => {
10
- const position = { x: 0, y: 0 }
11
- const node = {
12
- anchors: [
13
- { x: 0, y: 0, id: '1' },
14
- { x: 1, y: 1, id: '2' },
15
- { x: 2, y: 2, id: '3' },
16
- ],
17
- }
18
- expect(getClosestAnchor(position, node)).toEqual({
19
- anchor: { x: 0, y: 0, id: '1' },
20
- index: 0,
21
- })
22
- })
23
- test('is point inside the node', () => {
24
- const position1 = { x: 0, y: 0 }
25
- const position2 = { x: 110, y: 110 }
26
- const node = {
27
- x: 0,
28
- y: 0,
29
- width: 100,
30
- height: 100,
31
- }
32
- expect(isInNode(position1, node)).toBeTruthy()
33
- expect(isInNode(position2, node)).toBeFalsy()
34
- })
35
- test('get cross point with circle', () => {
36
- const position = { x: 0, y: 0 }
37
- const node = {
38
- x: 0,
39
- y: 0,
40
- r: 10,
41
- }
42
- expect(getCrossPointWithCircle(position, 'horizontal', node)).toEqual({
43
- x: 10,
44
- y: 0,
45
- })
46
- expect(getCrossPointWithCircle(position, 'vertical', node)).toEqual({
47
- x: 0,
48
- y: 10,
49
- })
50
- })
51
- test('get cross point with ellipse', () => {
52
- const position = { x: 0, y: 0 }
53
- const node = {
54
- x: 0,
55
- y: 0,
56
- rx: 10,
57
- ry: 5,
58
- }
59
- expect(getCrossPointWithEllipse(position, 'horizontal', node)).toEqual({
60
- x: 10,
61
- y: 0,
62
- })
63
- expect(getCrossPointWithEllipse(position, 'vertical', node)).toEqual({
64
- x: 0,
65
- y: 5,
66
- })
67
- })
68
- })
@@ -1,12 +0,0 @@
1
- import { degrees, getThetaOfVector, Vector } from '../../src/util'
2
-
3
- describe('util/sampling', () => {
4
- test('degrees', () => {
5
- expect(degrees(1)).toBe(57.29577951308232)
6
- })
7
- test('getThetaOfVector', () => {
8
- expect(
9
- getThetaOfVector(new Vector(1, 1)) - 45 < Number.EPSILON,
10
- ).toBeTruthy()
11
- })
12
- })
@@ -1,50 +0,0 @@
1
- import { Vector } from '../../src/util/vector'
2
-
3
- describe('util/vector', () => {
4
- test('construct', () => {
5
- const v = new Vector(1, 2)
6
- expect(v.x).toEqual(1)
7
- expect(v[0]).toEqual(1)
8
-
9
- expect(v.y).toEqual(2)
10
- expect(v[1]).toEqual(2)
11
-
12
- expect(v.z).toEqual(0)
13
- expect(v[2]).toEqual(0)
14
- })
15
- test('add', () => {
16
- const v = new Vector(1, 2)
17
- const v1 = new Vector(3, 4)
18
- expect(v.add(v1)).toEqual(new Vector(4, 6))
19
- })
20
- test('subtract', () => {
21
- const v = new Vector(1, 2)
22
- const v1 = new Vector(3, 4)
23
- expect(v.subtract(v1)).toEqual(new Vector(-2, -2))
24
- })
25
- test('dot', () => {
26
- const v = new Vector(1, 2)
27
- const v1 = new Vector(3, 4)
28
- expect(v.dot(v1)).toEqual(11)
29
- })
30
- test('cross', () => {
31
- const v = new Vector(1, 2)
32
- const v1 = new Vector(3, 4)
33
- expect(v.cross(v1)).toEqual(new Vector(0, 0, -2))
34
- })
35
- test('getLength', () => {
36
- const v = new Vector(1, 2)
37
- expect(v.getLength()).toEqual(Math.sqrt(5))
38
- })
39
- test('normalize', () => {
40
- const v = new Vector(1, 2)
41
- expect(v.normalize()).toEqual(
42
- new Vector(1 / Math.sqrt(5), 2 / Math.sqrt(5)),
43
- )
44
- })
45
- test('angle', () => {
46
- const v = new Vector(1, 1)
47
- const v1 = new Vector(0, 1)
48
- expect(v.angle(v1) - Math.PI / 4 < Number.EPSILON).toBeTruthy()
49
- })
50
- })
@@ -1,10 +0,0 @@
1
- import { getZIndex, getMinIndex } from '../../src/util/zIndex'
2
-
3
- describe('util/zIndex', () => {
4
- test('getZIndex', () => {
5
- expect(getZIndex()).toBe(1001)
6
- })
7
- test('getMinIndex', () => {
8
- expect(getMinIndex()).toBe(998)
9
- })
10
- })