@antv/layout 0.3.12 → 1.0.0-alpha.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 (555) hide show
  1. package/README.md +45 -32
  2. package/dist/3a54d760230d1933f953.worker.js +2 -0
  3. package/dist/3a54d760230d1933f953.worker.js.map +1 -0
  4. package/dist/index.min.js +2 -0
  5. package/dist/index.min.js.map +1 -0
  6. package/lib/Circular.d.ts +40 -0
  7. package/lib/Supervisor.d.ts +65 -0
  8. package/lib/index.d.ts +3 -3
  9. package/lib/registry.d.ts +3 -0
  10. package/lib/types.d.ts +128 -0
  11. package/lib/util/gpu.d.ts +22 -22
  12. package/lib/util/index.d.ts +6 -6
  13. package/lib/util/math.d.ts +3 -3
  14. package/lib/worker.d.ts +3 -0
  15. package/package.json +21 -95
  16. package/dist/layout.min.js +0 -3
  17. package/dist/layout.min.js.LICENSE.txt +0 -1
  18. package/dist/layout.min.js.map +0 -1
  19. package/es/index.d.ts +0 -3
  20. package/es/index.js +0 -6
  21. package/es/index.js.map +0 -1
  22. package/es/layout/base.d.ts +0 -22
  23. package/es/layout/base.js +0 -51
  24. package/es/layout/base.js.map +0 -1
  25. package/es/layout/circular.d.ts +0 -80
  26. package/es/layout/circular.js +0 -314
  27. package/es/layout/circular.js.map +0 -1
  28. package/es/layout/comboCombined.d.ts +0 -54
  29. package/es/layout/comboCombined.js +0 -354
  30. package/es/layout/comboCombined.js.map +0 -1
  31. package/es/layout/comboForce.d.ts +0 -134
  32. package/es/layout/comboForce.js +0 -801
  33. package/es/layout/comboForce.js.map +0 -1
  34. package/es/layout/concentric.d.ts +0 -67
  35. package/es/layout/concentric.js +0 -219
  36. package/es/layout/concentric.js.map +0 -1
  37. package/es/layout/constants.d.ts +0 -12
  38. package/es/layout/constants.js +0 -22
  39. package/es/layout/constants.js.map +0 -1
  40. package/es/layout/dagre/graph.d.ts +0 -91
  41. package/es/layout/dagre/graph.js +0 -4
  42. package/es/layout/dagre/graph.js.map +0 -1
  43. package/es/layout/dagre/index.d.ts +0 -8
  44. package/es/layout/dagre/index.js +0 -31
  45. package/es/layout/dagre/index.js.map +0 -1
  46. package/es/layout/dagre/src/acyclic.d.ts +0 -6
  47. package/es/layout/dagre/src/acyclic.js +0 -52
  48. package/es/layout/dagre/src/acyclic.js.map +0 -1
  49. package/es/layout/dagre/src/add-border-segments.d.ts +0 -3
  50. package/es/layout/dagre/src/add-border-segments.js +0 -32
  51. package/es/layout/dagre/src/add-border-segments.js.map +0 -1
  52. package/es/layout/dagre/src/coordinate-system.d.ts +0 -6
  53. package/es/layout/dagre/src/coordinate-system.js +0 -69
  54. package/es/layout/dagre/src/coordinate-system.js.map +0 -1
  55. package/es/layout/dagre/src/data/list.d.ts +0 -12
  56. package/es/layout/dagre/src/data/list.js +0 -48
  57. package/es/layout/dagre/src/data/list.js.map +0 -1
  58. package/es/layout/dagre/src/debug.d.ts +0 -3
  59. package/es/layout/dagre/src/debug.js +0 -24
  60. package/es/layout/dagre/src/debug.js.map +0 -1
  61. package/es/layout/dagre/src/greedy-fas.d.ts +0 -3
  62. package/es/layout/dagre/src/greedy-fas.js +0 -114
  63. package/es/layout/dagre/src/greedy-fas.js.map +0 -1
  64. package/es/layout/dagre/src/layout.d.ts +0 -3
  65. package/es/layout/dagre/src/layout.js +0 -518
  66. package/es/layout/dagre/src/layout.js.map +0 -1
  67. package/es/layout/dagre/src/nesting-graph.d.ts +0 -6
  68. package/es/layout/dagre/src/nesting-graph.js +0 -117
  69. package/es/layout/dagre/src/nesting-graph.js.map +0 -1
  70. package/es/layout/dagre/src/normalize.d.ts +0 -6
  71. package/es/layout/dagre/src/normalize.js +0 -89
  72. package/es/layout/dagre/src/normalize.js.map +0 -1
  73. package/es/layout/dagre/src/order/add-subgraph-constraints.d.ts +0 -3
  74. package/es/layout/dagre/src/order/add-subgraph-constraints.js +0 -27
  75. package/es/layout/dagre/src/order/add-subgraph-constraints.js.map +0 -1
  76. package/es/layout/dagre/src/order/barycenter.d.ts +0 -11
  77. package/es/layout/dagre/src/order/barycenter.js +0 -24
  78. package/es/layout/dagre/src/order/barycenter.js.map +0 -1
  79. package/es/layout/dagre/src/order/build-layer-graph.d.ts +0 -3
  80. package/es/layout/dagre/src/order/build-layer-graph.js +0 -71
  81. package/es/layout/dagre/src/order/build-layer-graph.js.map +0 -1
  82. package/es/layout/dagre/src/order/cross-count.d.ts +0 -3
  83. package/es/layout/dagre/src/order/cross-count.js +0 -65
  84. package/es/layout/dagre/src/order/cross-count.js.map +0 -1
  85. package/es/layout/dagre/src/order/index.d.ts +0 -3
  86. package/es/layout/dagre/src/order/index.js +0 -91
  87. package/es/layout/dagre/src/order/index.js.map +0 -1
  88. package/es/layout/dagre/src/order/init-data-order.d.ts +0 -6
  89. package/es/layout/dagre/src/order/init-data-order.js +0 -25
  90. package/es/layout/dagre/src/order/init-data-order.js.map +0 -1
  91. package/es/layout/dagre/src/order/init-order.d.ts +0 -3
  92. package/es/layout/dagre/src/order/init-order.js +0 -52
  93. package/es/layout/dagre/src/order/init-order.js.map +0 -1
  94. package/es/layout/dagre/src/order/resolve-conflicts.d.ts +0 -19
  95. package/es/layout/dagre/src/order/resolve-conflicts.js +0 -93
  96. package/es/layout/dagre/src/order/resolve-conflicts.js.map +0 -1
  97. package/es/layout/dagre/src/order/sort-subgraph.d.ts +0 -7
  98. package/es/layout/dagre/src/order/sort-subgraph.js +0 -85
  99. package/es/layout/dagre/src/order/sort-subgraph.js.map +0 -1
  100. package/es/layout/dagre/src/order/sort.d.ts +0 -7
  101. package/es/layout/dagre/src/order/sort.js +0 -68
  102. package/es/layout/dagre/src/order/sort.js.map +0 -1
  103. package/es/layout/dagre/src/parent-dummy-chains.d.ts +0 -3
  104. package/es/layout/dagre/src/parent-dummy-chains.js +0 -81
  105. package/es/layout/dagre/src/parent-dummy-chains.js.map +0 -1
  106. package/es/layout/dagre/src/position/bk.d.ts +0 -23
  107. package/es/layout/dagre/src/position/bk.js +0 -370
  108. package/es/layout/dagre/src/position/bk.js.map +0 -1
  109. package/es/layout/dagre/src/position/index.d.ts +0 -3
  110. package/es/layout/dagre/src/position/index.js +0 -51
  111. package/es/layout/dagre/src/position/index.js.map +0 -1
  112. package/es/layout/dagre/src/rank/feasible-tree.d.ts +0 -9
  113. package/es/layout/dagre/src/rank/feasible-tree.js +0 -148
  114. package/es/layout/dagre/src/rank/feasible-tree.js.map +0 -1
  115. package/es/layout/dagre/src/rank/index.d.ts +0 -3
  116. package/es/layout/dagre/src/rank/index.js +0 -53
  117. package/es/layout/dagre/src/rank/index.js.map +0 -1
  118. package/es/layout/dagre/src/rank/network-simplex.d.ts +0 -9
  119. package/es/layout/dagre/src/rank/network-simplex.js +0 -195
  120. package/es/layout/dagre/src/rank/network-simplex.js.map +0 -1
  121. package/es/layout/dagre/src/rank/util.d.ts +0 -11
  122. package/es/layout/dagre/src/rank/util.js +0 -141
  123. package/es/layout/dagre/src/rank/util.js.map +0 -1
  124. package/es/layout/dagre/src/util.d.ts +0 -31
  125. package/es/layout/dagre/src/util.js +0 -261
  126. package/es/layout/dagre/src/util.js.map +0 -1
  127. package/es/layout/dagre.d.ts +0 -71
  128. package/es/layout/dagre.js +0 -433
  129. package/es/layout/dagre.js.map +0 -1
  130. package/es/layout/dagreCompound.d.ts +0 -121
  131. package/es/layout/dagreCompound.js +0 -391
  132. package/es/layout/dagreCompound.js.map +0 -1
  133. package/es/layout/er/core.d.ts +0 -1
  134. package/es/layout/er/core.js +0 -107
  135. package/es/layout/er/core.js.map +0 -1
  136. package/es/layout/er/forceGrid.d.ts +0 -8
  137. package/es/layout/er/forceGrid.js +0 -88
  138. package/es/layout/er/forceGrid.js.map +0 -1
  139. package/es/layout/er/grid.d.ts +0 -26
  140. package/es/layout/er/grid.js +0 -162
  141. package/es/layout/er/grid.js.map +0 -1
  142. package/es/layout/er/index.d.ts +0 -29
  143. package/es/layout/er/index.js +0 -54
  144. package/es/layout/er/index.js.map +0 -1
  145. package/es/layout/er/mysqlWorkbench.d.ts +0 -6
  146. package/es/layout/er/mysqlWorkbench.js +0 -324
  147. package/es/layout/er/mysqlWorkbench.js.map +0 -1
  148. package/es/layout/er/type.d.ts +0 -35
  149. package/es/layout/er/type.js +0 -2
  150. package/es/layout/er/type.js.map +0 -1
  151. package/es/layout/force/force-in-a-box.d.ts +0 -28
  152. package/es/layout/force/force-in-a-box.js +0 -330
  153. package/es/layout/force/force-in-a-box.js.map +0 -1
  154. package/es/layout/force/force.d.ts +0 -100
  155. package/es/layout/force/force.js +0 -340
  156. package/es/layout/force/force.js.map +0 -1
  157. package/es/layout/force/index.d.ts +0 -1
  158. package/es/layout/force/index.js +0 -2
  159. package/es/layout/force/index.js.map +0 -1
  160. package/es/layout/force2/ForceNBody.d.ts +0 -7
  161. package/es/layout/force2/ForceNBody.js +0 -94
  162. package/es/layout/force2/ForceNBody.js.map +0 -1
  163. package/es/layout/force2/index.d.ts +0 -119
  164. package/es/layout/force2/index.js +0 -608
  165. package/es/layout/force2/index.js.map +0 -1
  166. package/es/layout/forceAtlas2/body.d.ts +0 -33
  167. package/es/layout/forceAtlas2/body.js +0 -89
  168. package/es/layout/forceAtlas2/body.js.map +0 -1
  169. package/es/layout/forceAtlas2/index.d.ts +0 -115
  170. package/es/layout/forceAtlas2/index.js +0 -484
  171. package/es/layout/forceAtlas2/index.js.map +0 -1
  172. package/es/layout/forceAtlas2/quad.d.ts +0 -27
  173. package/es/layout/forceAtlas2/quad.js +0 -96
  174. package/es/layout/forceAtlas2/quad.js.map +0 -1
  175. package/es/layout/forceAtlas2/quadTree.d.ts +0 -20
  176. package/es/layout/forceAtlas2/quadTree.js +0 -103
  177. package/es/layout/forceAtlas2/quadTree.js.map +0 -1
  178. package/es/layout/fruchterman.d.ts +0 -73
  179. package/es/layout/fruchterman.js +0 -296
  180. package/es/layout/fruchterman.js.map +0 -1
  181. package/es/layout/gForce.d.ts +0 -96
  182. package/es/layout/gForce.js +0 -399
  183. package/es/layout/gForce.js.map +0 -1
  184. package/es/layout/gpu/fruchterman.d.ts +0 -57
  185. package/es/layout/gpu/fruchterman.js +0 -267
  186. package/es/layout/gpu/fruchterman.js.map +0 -1
  187. package/es/layout/gpu/fruchtermanShader.d.ts +0 -4
  188. package/es/layout/gpu/fruchtermanShader.js +0 -201
  189. package/es/layout/gpu/fruchtermanShader.js.map +0 -1
  190. package/es/layout/gpu/gForce.d.ts +0 -68
  191. package/es/layout/gpu/gForce.js +0 -330
  192. package/es/layout/gpu/gForce.js.map +0 -1
  193. package/es/layout/gpu/gForceShader.d.ts +0 -4
  194. package/es/layout/gpu/gForceShader.js +0 -218
  195. package/es/layout/gpu/gForceShader.js.map +0 -1
  196. package/es/layout/grid.d.ts +0 -83
  197. package/es/layout/grid.js +0 -317
  198. package/es/layout/grid.js.map +0 -1
  199. package/es/layout/index.d.ts +0 -22
  200. package/es/layout/index.js +0 -25
  201. package/es/layout/index.js.map +0 -1
  202. package/es/layout/layout.d.ts +0 -26
  203. package/es/layout/layout.js +0 -97
  204. package/es/layout/layout.js.map +0 -1
  205. package/es/layout/mds.d.ts +0 -39
  206. package/es/layout/mds.js +0 -122
  207. package/es/layout/mds.js.map +0 -1
  208. package/es/layout/radial/index.d.ts +0 -1
  209. package/es/layout/radial/index.js +0 -2
  210. package/es/layout/radial/index.js.map +0 -1
  211. package/es/layout/radial/mds.d.ts +0 -15
  212. package/es/layout/radial/mds.js +0 -38
  213. package/es/layout/radial/mds.js.map +0 -1
  214. package/es/layout/radial/radial.d.ts +0 -74
  215. package/es/layout/radial/radial.js +0 -420
  216. package/es/layout/radial/radial.js.map +0 -1
  217. package/es/layout/radial/radialNonoverlapForce.d.ts +0 -50
  218. package/es/layout/radial/radialNonoverlapForce.js +0 -123
  219. package/es/layout/radial/radialNonoverlapForce.js.map +0 -1
  220. package/es/layout/random.d.ts +0 -35
  221. package/es/layout/random.js +0 -62
  222. package/es/layout/random.js.map +0 -1
  223. package/es/layout/types.d.ts +0 -432
  224. package/es/layout/types.js +0 -2
  225. package/es/layout/types.js.map +0 -1
  226. package/es/registy/index.d.ts +0 -3
  227. package/es/registy/index.js +0 -41
  228. package/es/registy/index.js.map +0 -1
  229. package/es/util/array.d.ts +0 -1
  230. package/es/util/array.js +0 -2
  231. package/es/util/array.js.map +0 -1
  232. package/es/util/function.d.ts +0 -6
  233. package/es/util/function.js +0 -56
  234. package/es/util/function.js.map +0 -1
  235. package/es/util/gpu.d.ts +0 -52
  236. package/es/util/gpu.js +0 -239
  237. package/es/util/gpu.js.map +0 -1
  238. package/es/util/index.d.ts +0 -6
  239. package/es/util/index.js +0 -7
  240. package/es/util/index.js.map +0 -1
  241. package/es/util/math.d.ts +0 -48
  242. package/es/util/math.js +0 -276
  243. package/es/util/math.js.map +0 -1
  244. package/es/util/number.d.ts +0 -3
  245. package/es/util/number.js +0 -7
  246. package/es/util/number.js.map +0 -1
  247. package/es/util/object.d.ts +0 -2
  248. package/es/util/object.js +0 -25
  249. package/es/util/object.js.map +0 -1
  250. package/es/util/string.d.ts +0 -2
  251. package/es/util/string.js +0 -16
  252. package/es/util/string.js.map +0 -1
  253. package/lib/index.js +0 -24
  254. package/lib/index.js.map +0 -1
  255. package/lib/layout/base.d.ts +0 -22
  256. package/lib/layout/base.js +0 -56
  257. package/lib/layout/base.js.map +0 -1
  258. package/lib/layout/circular.d.ts +0 -80
  259. package/lib/layout/circular.js +0 -337
  260. package/lib/layout/circular.js.map +0 -1
  261. package/lib/layout/comboCombined.d.ts +0 -54
  262. package/lib/layout/comboCombined.js +0 -390
  263. package/lib/layout/comboCombined.js.map +0 -1
  264. package/lib/layout/comboForce.d.ts +0 -134
  265. package/lib/layout/comboForce.js +0 -826
  266. package/lib/layout/comboForce.js.map +0 -1
  267. package/lib/layout/concentric.d.ts +0 -67
  268. package/lib/layout/concentric.js +0 -243
  269. package/lib/layout/concentric.js.map +0 -1
  270. package/lib/layout/constants.d.ts +0 -12
  271. package/lib/layout/constants.js +0 -25
  272. package/lib/layout/constants.js.map +0 -1
  273. package/lib/layout/dagre/graph.d.ts +0 -91
  274. package/lib/layout/dagre/graph.js +0 -28
  275. package/lib/layout/dagre/graph.js.map +0 -1
  276. package/lib/layout/dagre/index.d.ts +0 -8
  277. package/lib/layout/dagre/index.js +0 -36
  278. package/lib/layout/dagre/index.js.map +0 -1
  279. package/lib/layout/dagre/src/acyclic.d.ts +0 -6
  280. package/lib/layout/dagre/src/acyclic.js +0 -57
  281. package/lib/layout/dagre/src/acyclic.js.map +0 -1
  282. package/lib/layout/dagre/src/add-border-segments.d.ts +0 -3
  283. package/lib/layout/dagre/src/add-border-segments.js +0 -34
  284. package/lib/layout/dagre/src/add-border-segments.js.map +0 -1
  285. package/lib/layout/dagre/src/coordinate-system.d.ts +0 -6
  286. package/lib/layout/dagre/src/coordinate-system.js +0 -71
  287. package/lib/layout/dagre/src/coordinate-system.js.map +0 -1
  288. package/lib/layout/dagre/src/data/list.d.ts +0 -12
  289. package/lib/layout/dagre/src/data/list.js +0 -52
  290. package/lib/layout/dagre/src/data/list.js.map +0 -1
  291. package/lib/layout/dagre/src/debug.d.ts +0 -3
  292. package/lib/layout/dagre/src/debug.js +0 -26
  293. package/lib/layout/dagre/src/debug.js.map +0 -1
  294. package/lib/layout/dagre/src/greedy-fas.d.ts +0 -3
  295. package/lib/layout/dagre/src/greedy-fas.js +0 -144
  296. package/lib/layout/dagre/src/greedy-fas.js.map +0 -1
  297. package/lib/layout/dagre/src/layout.d.ts +0 -3
  298. package/lib/layout/dagre/src/layout.js +0 -535
  299. package/lib/layout/dagre/src/layout.js.map +0 -1
  300. package/lib/layout/dagre/src/nesting-graph.d.ts +0 -6
  301. package/lib/layout/dagre/src/nesting-graph.js +0 -119
  302. package/lib/layout/dagre/src/nesting-graph.js.map +0 -1
  303. package/lib/layout/dagre/src/normalize.d.ts +0 -6
  304. package/lib/layout/dagre/src/normalize.js +0 -91
  305. package/lib/layout/dagre/src/normalize.js.map +0 -1
  306. package/lib/layout/dagre/src/order/add-subgraph-constraints.d.ts +0 -3
  307. package/lib/layout/dagre/src/order/add-subgraph-constraints.js +0 -29
  308. package/lib/layout/dagre/src/order/add-subgraph-constraints.js.map +0 -1
  309. package/lib/layout/dagre/src/order/barycenter.d.ts +0 -11
  310. package/lib/layout/dagre/src/order/barycenter.js +0 -26
  311. package/lib/layout/dagre/src/order/barycenter.js.map +0 -1
  312. package/lib/layout/dagre/src/order/build-layer-graph.d.ts +0 -3
  313. package/lib/layout/dagre/src/order/build-layer-graph.js +0 -73
  314. package/lib/layout/dagre/src/order/build-layer-graph.js.map +0 -1
  315. package/lib/layout/dagre/src/order/cross-count.d.ts +0 -3
  316. package/lib/layout/dagre/src/order/cross-count.js +0 -67
  317. package/lib/layout/dagre/src/order/cross-count.js.map +0 -1
  318. package/lib/layout/dagre/src/order/index.d.ts +0 -3
  319. package/lib/layout/dagre/src/order/index.js +0 -96
  320. package/lib/layout/dagre/src/order/index.js.map +0 -1
  321. package/lib/layout/dagre/src/order/init-data-order.d.ts +0 -6
  322. package/lib/layout/dagre/src/order/init-data-order.js +0 -27
  323. package/lib/layout/dagre/src/order/init-data-order.js.map +0 -1
  324. package/lib/layout/dagre/src/order/init-order.d.ts +0 -3
  325. package/lib/layout/dagre/src/order/init-order.js +0 -54
  326. package/lib/layout/dagre/src/order/init-order.js.map +0 -1
  327. package/lib/layout/dagre/src/order/resolve-conflicts.d.ts +0 -19
  328. package/lib/layout/dagre/src/order/resolve-conflicts.js +0 -98
  329. package/lib/layout/dagre/src/order/resolve-conflicts.js.map +0 -1
  330. package/lib/layout/dagre/src/order/sort-subgraph.d.ts +0 -7
  331. package/lib/layout/dagre/src/order/sort-subgraph.js +0 -90
  332. package/lib/layout/dagre/src/order/sort-subgraph.js.map +0 -1
  333. package/lib/layout/dagre/src/order/sort.d.ts +0 -7
  334. package/lib/layout/dagre/src/order/sort.js +0 -70
  335. package/lib/layout/dagre/src/order/sort.js.map +0 -1
  336. package/lib/layout/dagre/src/parent-dummy-chains.d.ts +0 -3
  337. package/lib/layout/dagre/src/parent-dummy-chains.js +0 -83
  338. package/lib/layout/dagre/src/parent-dummy-chains.js.map +0 -1
  339. package/lib/layout/dagre/src/position/bk.d.ts +0 -23
  340. package/lib/layout/dagre/src/position/bk.js +0 -409
  341. package/lib/layout/dagre/src/position/bk.js.map +0 -1
  342. package/lib/layout/dagre/src/position/index.d.ts +0 -3
  343. package/lib/layout/dagre/src/position/index.js +0 -64
  344. package/lib/layout/dagre/src/position/index.js.map +0 -1
  345. package/lib/layout/dagre/src/rank/feasible-tree.d.ts +0 -9
  346. package/lib/layout/dagre/src/rank/feasible-tree.js +0 -152
  347. package/lib/layout/dagre/src/rank/feasible-tree.js.map +0 -1
  348. package/lib/layout/dagre/src/rank/index.d.ts +0 -3
  349. package/lib/layout/dagre/src/rank/index.js +0 -58
  350. package/lib/layout/dagre/src/rank/index.js.map +0 -1
  351. package/lib/layout/dagre/src/rank/network-simplex.d.ts +0 -9
  352. package/lib/layout/dagre/src/rank/network-simplex.js +0 -205
  353. package/lib/layout/dagre/src/rank/network-simplex.js.map +0 -1
  354. package/lib/layout/dagre/src/rank/util.d.ts +0 -11
  355. package/lib/layout/dagre/src/rank/util.js +0 -146
  356. package/lib/layout/dagre/src/rank/util.js.map +0 -1
  357. package/lib/layout/dagre/src/util.d.ts +0 -31
  358. package/lib/layout/dagre/src/util.js +0 -280
  359. package/lib/layout/dagre/src/util.js.map +0 -1
  360. package/lib/layout/dagre.d.ts +0 -71
  361. package/lib/layout/dagre.js +0 -462
  362. package/lib/layout/dagre.js.map +0 -1
  363. package/lib/layout/dagreCompound.d.ts +0 -121
  364. package/lib/layout/dagreCompound.js +0 -429
  365. package/lib/layout/dagreCompound.js.map +0 -1
  366. package/lib/layout/er/core.d.ts +0 -1
  367. package/lib/layout/er/core.js +0 -147
  368. package/lib/layout/er/core.js.map +0 -1
  369. package/lib/layout/er/forceGrid.d.ts +0 -8
  370. package/lib/layout/er/forceGrid.js +0 -97
  371. package/lib/layout/er/forceGrid.js.map +0 -1
  372. package/lib/layout/er/grid.d.ts +0 -26
  373. package/lib/layout/er/grid.js +0 -177
  374. package/lib/layout/er/grid.js.map +0 -1
  375. package/lib/layout/er/index.d.ts +0 -29
  376. package/lib/layout/er/index.js +0 -80
  377. package/lib/layout/er/index.js.map +0 -1
  378. package/lib/layout/er/mysqlWorkbench.d.ts +0 -6
  379. package/lib/layout/er/mysqlWorkbench.js +0 -326
  380. package/lib/layout/er/mysqlWorkbench.js.map +0 -1
  381. package/lib/layout/er/type.d.ts +0 -35
  382. package/lib/layout/er/type.js +0 -3
  383. package/lib/layout/er/type.js.map +0 -1
  384. package/lib/layout/force/force-in-a-box.d.ts +0 -28
  385. package/lib/layout/force/force-in-a-box.js +0 -357
  386. package/lib/layout/force/force-in-a-box.js.map +0 -1
  387. package/lib/layout/force/force.d.ts +0 -100
  388. package/lib/layout/force/force.js +0 -388
  389. package/lib/layout/force/force.js.map +0 -1
  390. package/lib/layout/force/index.d.ts +0 -1
  391. package/lib/layout/force/index.js +0 -18
  392. package/lib/layout/force/index.js.map +0 -1
  393. package/lib/layout/force2/ForceNBody.d.ts +0 -7
  394. package/lib/layout/force2/ForceNBody.js +0 -98
  395. package/lib/layout/force2/ForceNBody.js.map +0 -1
  396. package/lib/layout/force2/index.d.ts +0 -119
  397. package/lib/layout/force2/index.js +0 -643
  398. package/lib/layout/force2/index.js.map +0 -1
  399. package/lib/layout/forceAtlas2/body.d.ts +0 -33
  400. package/lib/layout/forceAtlas2/body.js +0 -93
  401. package/lib/layout/forceAtlas2/body.js.map +0 -1
  402. package/lib/layout/forceAtlas2/index.d.ts +0 -115
  403. package/lib/layout/forceAtlas2/index.js +0 -509
  404. package/lib/layout/forceAtlas2/index.js.map +0 -1
  405. package/lib/layout/forceAtlas2/quad.d.ts +0 -27
  406. package/lib/layout/forceAtlas2/quad.js +0 -100
  407. package/lib/layout/forceAtlas2/quad.js.map +0 -1
  408. package/lib/layout/forceAtlas2/quadTree.d.ts +0 -20
  409. package/lib/layout/forceAtlas2/quadTree.js +0 -107
  410. package/lib/layout/forceAtlas2/quadTree.js.map +0 -1
  411. package/lib/layout/fruchterman.d.ts +0 -73
  412. package/lib/layout/fruchterman.js +0 -320
  413. package/lib/layout/fruchterman.js.map +0 -1
  414. package/lib/layout/gForce.d.ts +0 -96
  415. package/lib/layout/gForce.js +0 -421
  416. package/lib/layout/gForce.js.map +0 -1
  417. package/lib/layout/gpu/fruchterman.d.ts +0 -57
  418. package/lib/layout/gpu/fruchterman.js +0 -361
  419. package/lib/layout/gpu/fruchterman.js.map +0 -1
  420. package/lib/layout/gpu/fruchtermanShader.d.ts +0 -4
  421. package/lib/layout/gpu/fruchtermanShader.js +0 -8
  422. package/lib/layout/gpu/fruchtermanShader.js.map +0 -1
  423. package/lib/layout/gpu/gForce.d.ts +0 -68
  424. package/lib/layout/gpu/gForce.js +0 -415
  425. package/lib/layout/gpu/gForce.js.map +0 -1
  426. package/lib/layout/gpu/gForceShader.d.ts +0 -4
  427. package/lib/layout/gpu/gForceShader.js +0 -8
  428. package/lib/layout/gpu/gForceShader.js.map +0 -1
  429. package/lib/layout/grid.d.ts +0 -83
  430. package/lib/layout/grid.js +0 -339
  431. package/lib/layout/grid.js.map +0 -1
  432. package/lib/layout/index.d.ts +0 -22
  433. package/lib/layout/index.js +0 -59
  434. package/lib/layout/index.js.map +0 -1
  435. package/lib/layout/layout.d.ts +0 -26
  436. package/lib/layout/layout.js +0 -102
  437. package/lib/layout/layout.js.map +0 -1
  438. package/lib/layout/mds.d.ts +0 -39
  439. package/lib/layout/mds.js +0 -144
  440. package/lib/layout/mds.js.map +0 -1
  441. package/lib/layout/radial/index.d.ts +0 -1
  442. package/lib/layout/radial/index.js +0 -18
  443. package/lib/layout/radial/index.js.map +0 -1
  444. package/lib/layout/radial/mds.d.ts +0 -15
  445. package/lib/layout/radial/mds.js +0 -42
  446. package/lib/layout/radial/mds.js.map +0 -1
  447. package/lib/layout/radial/radial.d.ts +0 -74
  448. package/lib/layout/radial/radial.js +0 -445
  449. package/lib/layout/radial/radial.js.map +0 -1
  450. package/lib/layout/radial/radialNonoverlapForce.d.ts +0 -50
  451. package/lib/layout/radial/radialNonoverlapForce.js +0 -127
  452. package/lib/layout/radial/radialNonoverlapForce.js.map +0 -1
  453. package/lib/layout/random.d.ts +0 -35
  454. package/lib/layout/random.js +0 -84
  455. package/lib/layout/random.js.map +0 -1
  456. package/lib/layout/types.d.ts +0 -432
  457. package/lib/layout/types.js +0 -3
  458. package/lib/layout/types.js.map +0 -1
  459. package/lib/registy/index.d.ts +0 -3
  460. package/lib/registy/index.js +0 -65
  461. package/lib/registy/index.js.map +0 -1
  462. package/lib/util/array.js +0 -5
  463. package/lib/util/array.js.map +0 -1
  464. package/lib/util/function.js +0 -65
  465. package/lib/util/function.js.map +0 -1
  466. package/lib/util/gpu.js +0 -250
  467. package/lib/util/gpu.js.map +0 -1
  468. package/lib/util/index.js +0 -23
  469. package/lib/util/index.js.map +0 -1
  470. package/lib/util/math.js +0 -289
  471. package/lib/util/math.js.map +0 -1
  472. package/lib/util/number.js +0 -13
  473. package/lib/util/number.js.map +0 -1
  474. package/lib/util/object.js +0 -43
  475. package/lib/util/object.js.map +0 -1
  476. package/lib/util/string.js +0 -20
  477. package/lib/util/string.js.map +0 -1
  478. package/src/index.ts +0 -7
  479. package/src/layout/base.ts +0 -57
  480. package/src/layout/circular.ts +0 -370
  481. package/src/layout/comboCombined.ts +0 -397
  482. package/src/layout/comboForce.ts +0 -873
  483. package/src/layout/concentric.ts +0 -289
  484. package/src/layout/constants.ts +0 -22
  485. package/src/layout/dagre/graph.ts +0 -104
  486. package/src/layout/dagre/index.ts +0 -31
  487. package/src/layout/dagre/src/acyclic.ts +0 -58
  488. package/src/layout/dagre/src/add-border-segments.ts +0 -47
  489. package/src/layout/dagre/src/coordinate-system.ts +0 -77
  490. package/src/layout/dagre/src/data/list.ts +0 -60
  491. package/src/layout/dagre/src/debug.ts +0 -30
  492. package/src/layout/dagre/src/greedy-fas.ts +0 -144
  493. package/src/layout/dagre/src/layout.ts +0 -579
  494. package/src/layout/dagre/src/nesting-graph.ts +0 -143
  495. package/src/layout/dagre/src/normalize.ts +0 -96
  496. package/src/layout/dagre/src/order/add-subgraph-constraints.ts +0 -29
  497. package/src/layout/dagre/src/order/barycenter.ts +0 -26
  498. package/src/layout/dagre/src/order/build-layer-graph.ts +0 -82
  499. package/src/layout/dagre/src/order/cross-count.ts +0 -77
  500. package/src/layout/dagre/src/order/index.ts +0 -105
  501. package/src/layout/dagre/src/order/init-data-order.ts +0 -27
  502. package/src/layout/dagre/src/order/init-order.ts +0 -56
  503. package/src/layout/dagre/src/order/resolve-conflicts.ts +0 -152
  504. package/src/layout/dagre/src/order/sort-subgraph.ts +0 -105
  505. package/src/layout/dagre/src/order/sort.ts +0 -76
  506. package/src/layout/dagre/src/parent-dummy-chains.ts +0 -102
  507. package/src/layout/dagre/src/position/bk.ts +0 -493
  508. package/src/layout/dagre/src/position/index.ts +0 -82
  509. package/src/layout/dagre/src/rank/feasible-tree.ts +0 -165
  510. package/src/layout/dagre/src/rank/index.ts +0 -54
  511. package/src/layout/dagre/src/rank/network-simplex.ts +0 -225
  512. package/src/layout/dagre/src/rank/util.ts +0 -166
  513. package/src/layout/dagre/src/util.ts +0 -309
  514. package/src/layout/dagre.ts +0 -460
  515. package/src/layout/dagreCompound.ts +0 -518
  516. package/src/layout/er/core.ts +0 -117
  517. package/src/layout/er/forceGrid.ts +0 -95
  518. package/src/layout/er/grid.ts +0 -185
  519. package/src/layout/er/index.ts +0 -68
  520. package/src/layout/er/mysqlWorkbench.ts +0 -345
  521. package/src/layout/er/type.ts +0 -39
  522. package/src/layout/force/force-in-a-box.ts +0 -400
  523. package/src/layout/force/force.ts +0 -391
  524. package/src/layout/force/index.ts +0 -1
  525. package/src/layout/force2/ForceNBody.ts +0 -128
  526. package/src/layout/force2/index.ts +0 -741
  527. package/src/layout/forceAtlas2/body.ts +0 -115
  528. package/src/layout/forceAtlas2/index.ts +0 -556
  529. package/src/layout/forceAtlas2/quad.ts +0 -115
  530. package/src/layout/forceAtlas2/quadTree.ts +0 -107
  531. package/src/layout/fruchterman.ts +0 -361
  532. package/src/layout/gForce.ts +0 -488
  533. package/src/layout/gpu/fruchterman.ts +0 -314
  534. package/src/layout/gpu/fruchtermanShader.ts +0 -203
  535. package/src/layout/gpu/gForce.ts +0 -407
  536. package/src/layout/gpu/gForceShader.ts +0 -220
  537. package/src/layout/grid.ts +0 -404
  538. package/src/layout/index.ts +0 -47
  539. package/src/layout/layout.ts +0 -110
  540. package/src/layout/mds.ts +0 -140
  541. package/src/layout/radial/index.ts +0 -1
  542. package/src/layout/radial/mds.ts +0 -51
  543. package/src/layout/radial/radial.ts +0 -500
  544. package/src/layout/radial/radialNonoverlapForce.ts +0 -189
  545. package/src/layout/random.ts +0 -75
  546. package/src/layout/types.ts +0 -496
  547. package/src/registy/index.ts +0 -43
  548. package/src/util/array.ts +0 -1
  549. package/src/util/function.ts +0 -64
  550. package/src/util/gpu.ts +0 -256
  551. package/src/util/index.ts +0 -6
  552. package/src/util/math.ts +0 -294
  553. package/src/util/number.ts +0 -8
  554. package/src/util/object.ts +0 -28
  555. package/src/util/string.ts +0 -18
@@ -1,26 +0,0 @@
1
- import { ICell, INode } from './type';
2
- export default class Grid {
3
- cells: ICell[][];
4
- columnNum: number;
5
- rowNum: number;
6
- additionColumn: number[];
7
- additionRow: number[];
8
- private static MIN_DIST;
9
- private static DEFAULT_CELL_W;
10
- private static DEFAULT_CELL_H;
11
- private CELL_W;
12
- private CELL_H;
13
- init(width: number, height: number, gridSize: {
14
- CELL_W: number;
15
- CELL_H: number;
16
- }): void;
17
- findGridByNodeId(nodeId: string): {
18
- column: number;
19
- row: number;
20
- } | null;
21
- sqdist(a: any, b: any): number;
22
- occupyNearest(p: INode): ICell | null;
23
- insertColumn(columnIndex: number, length: number): void;
24
- insertRow(rowIndex: number, length: number): void;
25
- getNodes(): ICell[];
26
- }
@@ -1,162 +0,0 @@
1
- export default class Grid {
2
- constructor() {
3
- this.cells = [];
4
- this.columnNum = 0;
5
- this.rowNum = 0;
6
- this.additionColumn = [];
7
- this.additionRow = [];
8
- }
9
- init(width, height, gridSize) {
10
- this.cells = [];
11
- this.CELL_W = gridSize.CELL_W || Grid.DEFAULT_CELL_W;
12
- this.CELL_H = gridSize.CELL_H || Grid.DEFAULT_CELL_H;
13
- this.columnNum = Math.ceil(width / this.CELL_W);
14
- this.rowNum = Math.ceil(height / this.CELL_H);
15
- Grid.MIN_DIST = Math.pow(width, 2) + Math.pow(height, 2);
16
- for (let i = 0; i < this.columnNum; i++) {
17
- const tmp = [];
18
- for (let j = 0; j < this.rowNum; j++) {
19
- const cell = {
20
- dx: i,
21
- dy: j,
22
- x: i * this.CELL_W,
23
- y: j * this.CELL_H,
24
- occupied: false
25
- };
26
- tmp.push(cell);
27
- }
28
- this.cells.push(tmp);
29
- }
30
- }
31
- findGridByNodeId(nodeId) {
32
- var _a, _b;
33
- for (let i = 0; i < this.columnNum; i++) {
34
- for (let j = 0; j < this.rowNum; j++) {
35
- if (this.cells[i][j].node) {
36
- if (((_b = (_a = this.cells[i][j]) === null || _a === void 0 ? void 0 : _a.node) === null || _b === void 0 ? void 0 : _b.id) === nodeId) {
37
- return { column: i, row: j };
38
- }
39
- }
40
- }
41
- }
42
- return null;
43
- }
44
- sqdist(a, b) {
45
- return Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2);
46
- }
47
- occupyNearest(p) {
48
- let minDist = Grid.MIN_DIST;
49
- let d;
50
- let candidate = null;
51
- for (let i = 0; i < this.columnNum; i++) {
52
- for (let j = 0; j < this.rowNum; j++) {
53
- if (!this.cells[i][j].occupied && (d = this.sqdist(p, this.cells[i][j])) < minDist) {
54
- minDist = d;
55
- candidate = this.cells[i][j];
56
- }
57
- }
58
- }
59
- if (candidate) {
60
- candidate.occupied = true;
61
- }
62
- return candidate;
63
- }
64
- insertColumn(columnIndex, length) {
65
- if (length <= 0)
66
- return;
67
- // 插入空列
68
- for (let i = 0; i < length; i++) {
69
- this.cells[i + this.columnNum] = [];
70
- for (let j = 0; j < this.rowNum; j++) {
71
- this.cells[i + this.columnNum][j] = {
72
- dx: i,
73
- dy: j,
74
- x: i * this.CELL_W,
75
- y: j * this.CELL_H,
76
- occupied: false,
77
- node: null,
78
- };
79
- }
80
- }
81
- // 交换数据
82
- for (let i = (this.columnNum - 1); i > columnIndex; i--) {
83
- for (let j = 0; j < this.rowNum; j++) {
84
- this.cells[i + length][j] = Object.assign(Object.assign({}, this.cells[i][j]), { x: (i + length) * this.CELL_W, y: j * this.CELL_H });
85
- this.cells[i][j] = {
86
- x: i * this.CELL_W,
87
- y: j * this.CELL_H,
88
- occupied: true,
89
- node: null,
90
- };
91
- }
92
- }
93
- // 已有行列的处理
94
- for (let j = 0; j < this.additionColumn.length; j++) {
95
- if (this.additionColumn[j] >= columnIndex) {
96
- this.additionColumn[j] += length;
97
- }
98
- }
99
- // 记录新增的行列
100
- for (let i = 0; i < length; i++) {
101
- this.additionColumn.push(columnIndex + i + 1);
102
- }
103
- this.columnNum += length;
104
- }
105
- insertRow(rowIndex, length) {
106
- if (length <= 0)
107
- return;
108
- // 插入空行
109
- for (let j = 0; j < length; j++) {
110
- for (let i = 0; i < this.columnNum; i++) {
111
- this.cells[i][j + this.rowNum] = {
112
- dx: i,
113
- dy: j,
114
- x: i * this.CELL_W,
115
- y: j * this.CELL_H,
116
- occupied: false,
117
- node: null,
118
- };
119
- }
120
- }
121
- // 交换数据
122
- for (let i = 0; i < this.columnNum; i++) {
123
- for (let j = (this.rowNum - 1); j > rowIndex; j--) {
124
- this.cells[i][j + length] = Object.assign(Object.assign({}, this.cells[i][j]), { dx: i, dy: j + length, x: i * this.CELL_W, y: (j + length) * this.CELL_H });
125
- this.cells[i][j] = {
126
- dx: i,
127
- dy: j,
128
- x: i * this.CELL_W,
129
- y: j * this.CELL_H,
130
- occupied: false,
131
- node: null,
132
- };
133
- }
134
- }
135
- // 已有行列的处理
136
- for (let j = 0; j < this.additionRow.length; j++) {
137
- if (this.additionRow[j] >= rowIndex) {
138
- this.additionRow[j] += length;
139
- }
140
- }
141
- // 记录新增的行列
142
- for (let i = 0; i < length; i++) {
143
- this.additionRow.push(rowIndex + i + 1);
144
- }
145
- this.rowNum += length;
146
- }
147
- getNodes() {
148
- const nodes = [];
149
- for (let i = 0; i < this.columnNum; i++) {
150
- for (let j = 0; j < this.rowNum; j++) {
151
- if (this.cells[i][j].node) {
152
- nodes.push(this.cells[i][j]);
153
- }
154
- }
155
- }
156
- return nodes;
157
- }
158
- }
159
- Grid.MIN_DIST = 50;
160
- Grid.DEFAULT_CELL_W = 80;
161
- Grid.DEFAULT_CELL_H = 80;
162
- //# sourceMappingURL=grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../src/layout/er/grid.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * @fileOverview Force Layout Grid Align layout
3
- * @author wenyanqi
4
- */
5
- import { Base } from "../base";
6
- export interface ERLayoutOptions {
7
- type: "er";
8
- width?: number;
9
- height?: number;
10
- nodeMinGap?: number;
11
- }
12
- export declare class ERLayout extends Base {
13
- width: number;
14
- height: number;
15
- nodeMinGap: number;
16
- /** 迭代结束的回调函数 */
17
- onLayoutEnd: () => void;
18
- constructor(options?: any);
19
- getDefaultCfg(): {
20
- width: number;
21
- height: number;
22
- nodeMinGap: number;
23
- };
24
- /**
25
- * 执行布局
26
- */
27
- execute(): Promise<void>;
28
- getType(): string;
29
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * @fileOverview Force Layout Grid Align layout
3
- * @author wenyanqi
4
- */
5
- import { Base } from "../base";
6
- import layout from './core';
7
- export class ERLayout extends Base {
8
- constructor(options) {
9
- super();
10
- this.width = 300;
11
- this.height = 300;
12
- this.nodeMinGap = 50;
13
- /** 迭代结束的回调函数 */
14
- this.onLayoutEnd = () => { };
15
- if (options) {
16
- this.updateCfg(options);
17
- }
18
- }
19
- getDefaultCfg() {
20
- return {
21
- width: 300,
22
- height: 300,
23
- nodeMinGap: 50,
24
- };
25
- }
26
- /**
27
- * 执行布局
28
- */
29
- execute() {
30
- const self = this;
31
- const nodes = self.nodes;
32
- const edges = self.edges;
33
- // 节点初始化,size初始化
34
- nodes === null || nodes === void 0 ? void 0 : nodes.forEach((node) => {
35
- if (!node.size) {
36
- node.size = [50, 50];
37
- }
38
- });
39
- return layout({
40
- nodes, edges,
41
- }, {
42
- width: this.width,
43
- height: this.height,
44
- nodeMinGap: this.nodeMinGap,
45
- }).then(() => {
46
- if (self.onLayoutEnd)
47
- self.onLayoutEnd();
48
- });
49
- }
50
- getType() {
51
- return "er";
52
- }
53
- }
54
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/er/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAU5B,MAAM,OAAO,QAAS,SAAQ,IAAI;IAShC,YAAY,OAAa;QACvB,KAAK,EAAE,CAAC;QARH,UAAK,GAAW,GAAG,CAAC;QACpB,WAAM,GAAW,GAAG,CAAC;QACrB,eAAU,GAAW,EAAE,CAAC;QAE/B,gBAAgB;QACT,gBAAW,GAAe,GAAG,EAAE,GAAG,CAAC,CAAC;QAIzC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACzB;IACH,CAAC;IAEM,aAAa;QAClB,OAAO;YACL,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,gBAAgB;QAChB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,IAAW,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;YACZ,KAAK,EAAE,KAAK;SACb,EAAE;YACD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,6 +0,0 @@
1
- import { IEdge, IMysqlNode } from './type';
2
- declare function layout(nodes: IMysqlNode[], edges: IEdge[]): {
3
- nodes: IMysqlNode[];
4
- edges: IEdge[];
5
- };
6
- export default layout;
@@ -1,324 +0,0 @@
1
- const graphWidth = 1200;
2
- const graphHeight = 800;
3
- const OVERLAP_QUOT = 10000000;
4
- const MIN_DIST = 10;
5
- const M_PI = 3.14159265358979323846;
6
- const M_PI_2 = 1.57079632679489661923;
7
- const PI_38 = M_PI * 0.375;
8
- const PI_58 = M_PI * 0.625;
9
- const nodeEdgeMap = new Map();
10
- const CELL_W = 10;
11
- const CELL_H = 10;
12
- let T = 0.8;
13
- const T_MIN = 0.1;
14
- const R = 0.5;
15
- function distanceToNode(node1, node2, isHoriz) {
16
- const x11 = node1.x - node1.size[0] / 2;
17
- const y11 = node1.y - node1.size[1] / 2;
18
- const x12 = node1.x + node1.size[0] / 2;
19
- const y12 = node1.y + node1.size[1] / 2;
20
- const x21 = node2.x - node2.size[0] / 2;
21
- const y21 = node2.y - node2.size[1] / 2;
22
- const x22 = node2.x + node2.size[0] / 2;
23
- const y22 = node2.y + node2.size[1] / 2;
24
- const cx1 = node1.x;
25
- const cy1 = node1.y;
26
- const cx2 = node2.x;
27
- const cy2 = node2.y;
28
- const dcx = cx2 - cx1;
29
- // 两个节点间的方位角
30
- const qr = Math.atan2(dcx, (cy2 - cy1));
31
- let dx = 0;
32
- let dy = 0;
33
- let l1 = 0;
34
- let l2 = 0;
35
- if (qr > M_PI_2) {
36
- dy = y11 - y22;
37
- dx = x21 - x12;
38
- l1 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : (dx).toFixed(2));
39
- l2 = parseFloat(dx ? (dx / Math.sin(qr)).toFixed(2) : (dy).toFixed(2));
40
- }
41
- else if (0.0 < qr && qr <= M_PI_2) {
42
- dy = y21 - y12;
43
- dx = x21 - x12;
44
- if (dy > dx) {
45
- l1 = l2 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : (dx).toFixed(2));
46
- }
47
- else {
48
- l1 = l2 = parseFloat(dx ? (dx / Math.sin(qr)).toFixed(2) : (dy).toFixed(2));
49
- }
50
- }
51
- else if (qr < -M_PI_2) {
52
- dy = y11 - y22;
53
- dx = -(x22 - x11);
54
- if (dy > dx) {
55
- l1 = l2 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : (dx).toFixed(2));
56
- }
57
- else {
58
- l1 = l2 = parseFloat(dx ? (dx / Math.sin(qr)).toFixed(2) : (dy).toFixed(2));
59
- }
60
- }
61
- else {
62
- dy = y21 - y12;
63
- if (Math.abs(dcx) > (x12 - x11) / 2) {
64
- dx = x11 - x22;
65
- }
66
- else {
67
- dx = dcx;
68
- }
69
- if (dy > dx) {
70
- l1 = l2 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : (dx).toFixed(2));
71
- }
72
- else {
73
- l1 = l2 = parseFloat((dx && qr !== 0.0) ? (dx / Math.sin(qr)).toFixed(2) : (dy).toFixed(2));
74
- }
75
- }
76
- const aqr = parseFloat(qr.toFixed(2));
77
- // 判断是否水平,角度
78
- let newHoriz = isHoriz;
79
- if (isHoriz) {
80
- newHoriz = PI_38 < aqr && aqr < PI_58;
81
- }
82
- return {
83
- distance: Math.abs(l1 < l2 ? l1 : l2),
84
- isHoriz: newHoriz,
85
- };
86
- }
87
- function calcNodePair(nodeA, nodeB) {
88
- // 确定两个节点间是否存在连线
89
- const edges = nodeEdgeMap.get(nodeA.id) || [];
90
- const isLinked = edges.find((edge) => {
91
- return edge.source === nodeB.id || edge.target === nodeB.id;
92
- });
93
- const areaA = nodeA.size[0] * nodeA.size[1];
94
- const areaB = nodeB.size[0] * nodeB.size[1];
95
- const node1 = areaA > areaB ? nodeB : nodeA;
96
- const node2 = areaA > areaB ? nodeA : nodeB;
97
- const x11 = node1.x - node1.size[0] / 2;
98
- const y11 = node1.y - node1.size[1] / 2;
99
- const x12 = node1.x + node1.size[0] / 2;
100
- const y12 = node1.y + node1.size[1] / 2;
101
- const x21 = node2.x - node2.size[0] / 2;
102
- const y21 = node2.y - node2.size[1] / 2;
103
- const x22 = node2.x + node2.size[0] / 2;
104
- const y22 = node2.y + node2.size[1] / 2;
105
- const cx1 = node1.x;
106
- const cy1 = node1.y;
107
- const cx2 = node2.x;
108
- const cy2 = node2.y;
109
- // Detect if nodes overlap 检查节点之间是否存在覆盖问题
110
- const isoverlap = ((x12 >= x21) && (x22 >= x11) && (y12 >= y21) && (y22 >= y11));
111
- let e = 0;
112
- let distance = 0;
113
- if (isoverlap) {
114
- distance = Math.sqrt(Math.pow((cx2 - cx1), 2) + Math.pow((cy2 - cy1), 2));
115
- // calc area of overlap 计算重复区域的坐标和面积
116
- const sx1 = x11 > x21 ? x11 : x21;
117
- const sy1 = y11 > y21 ? y11 : y21;
118
- const sx2 = x12 < x22 ? x12 : x22;
119
- const sy2 = y12 < y22 ? y12 : y22;
120
- const dsx = sx2 - sx1;
121
- const dsy = sy2 - sy1;
122
- const sov = dsx * dsy;
123
- if (distance === 0.0) {
124
- distance = 0.0000001;
125
- }
126
- e = MIN_DIST * 1 / distance * 100 + sov;
127
- e *= OVERLAP_QUOT;
128
- }
129
- else {
130
- let isHoriz = false;
131
- const res = distanceToNode(node1, node2, isHoriz);
132
- distance = res.distance;
133
- isHoriz = res.isHoriz;
134
- if (distance <= MIN_DIST) {
135
- if (distance !== 0) {
136
- if (isLinked) {
137
- e += MIN_DIST + OVERLAP_QUOT * 1 / distance;
138
- }
139
- else {
140
- e += MIN_DIST + OVERLAP_QUOT * MIN_DIST / distance;
141
- }
142
- }
143
- else {
144
- e += OVERLAP_QUOT;
145
- }
146
- }
147
- else {
148
- e += distance;
149
- if (isLinked) {
150
- e += distance * distance;
151
- }
152
- }
153
- }
154
- return e;
155
- }
156
- function calcEnergy(nodes) {
157
- let energy = 0;
158
- for (let i = 0; i < nodes.length; i++) {
159
- const node = nodes[i];
160
- if ((node.x < 0) || (node.y < 0) || (node.x > graphWidth) || (node.y > graphHeight)) {
161
- energy += 1000000000000;
162
- }
163
- for (let j = i + 1; j < nodes.length; j++) {
164
- energy += calcNodePair(node, nodes[j]);
165
- }
166
- }
167
- return energy;
168
- }
169
- function isCorrectPosition(node, newPosition, nodes, edges) {
170
- const nodeIdxMap = new Map();
171
- nodes.forEach((o, i) => {
172
- nodeIdxMap.set(o.id, o);
173
- });
174
- const relateEdges = edges.filter((edge) => edge.source === node.id || edge.target === node.id) || [];
175
- const relateNodes = [];
176
- relateEdges.forEach((edge) => {
177
- const otherNodeId = edge.source === node.id ? edge.target : edge.source;
178
- const otherNode = nodeIdxMap.get(otherNodeId);
179
- if (otherNode) {
180
- relateNodes.push(otherNode);
181
- }
182
- });
183
- let flag = true;
184
- for (let i = 0; i < relateNodes.length; i++) {
185
- const item = relateNodes[i];
186
- // 判断条件调整,节点的坐标不需要完全一致。可以根据节点间的夹角来判断
187
- const delta = Math.atan((node.y - item.y) / (item.x - node.y)) * 180;
188
- const newDelta = Math.atan((newPosition.y - item.y) / (item.x - newPosition.y)) * 180;
189
- const isHor = delta < 30 || delta > 150;
190
- const newIsHor = newDelta < 30 || newDelta > 150;
191
- const isVer = delta > 70 && delta < 110;
192
- const newIsVer = newDelta > 70 && newDelta < 110;
193
- // 定义四个相似角度区间,0-15度,75-90度,90到105度,165到180度。
194
- if (isHor && !newIsHor || ((delta * newDelta) < 0)) {
195
- flag = false;
196
- break;
197
- }
198
- else if (isVer && !newIsVer || ((delta * newDelta) < 0)) {
199
- flag = false;
200
- break;
201
- }
202
- else if ((item.x - node.x) * (item.x - newPosition.x) < 0) {
203
- flag = false;
204
- break;
205
- }
206
- else if ((item.y - node.y) * (item.y - newPosition.y) < 0) {
207
- flag = false;
208
- break;
209
- }
210
- }
211
- return flag;
212
- }
213
- function shuffle(nodes, edges) {
214
- let foundSmallerEnergy = false;
215
- // 多次测试发现step为1时的效果最佳。
216
- const step = 1;
217
- const wstep = CELL_W * step;
218
- const hstep = CELL_H * step;
219
- const wsteps = [wstep, -wstep, 0, 0,];
220
- const hsteps = [0, 0, hstep, -hstep,];
221
- for (let i = 0; i < nodes.length; ++i) {
222
- const node = nodes[i];
223
- let nodeEnergy = calcNodeEnergy(node, nodes);
224
- for (let ns = 0; ns < wsteps.length; ns++) {
225
- // 判断新位置与其他连线节点的位置关系是否违规
226
- const flag = isCorrectPosition(node, { x: node.x + wsteps[ns], y: node.y + hsteps[ns] }, nodes, edges);
227
- if (flag) {
228
- // 节点朝上下左右四个方向移动,找到能量最小的那个位置
229
- node.x += wsteps[ns];
230
- node.y += hsteps[ns];
231
- // 计算移动后节点的能量
232
- const energy = calcNodeEnergy(node, nodes);
233
- const rdm = Math.random();
234
- if (energy < nodeEnergy) {
235
- nodeEnergy = energy;
236
- foundSmallerEnergy = true;
237
- }
238
- else if (rdm < T && rdm > T_MIN) {
239
- nodeEnergy = energy;
240
- foundSmallerEnergy = true;
241
- }
242
- else {
243
- // 回归原位
244
- node.x -= wsteps[ns];
245
- node.y -= hsteps[ns];
246
- }
247
- }
248
- }
249
- }
250
- if (T > T_MIN) {
251
- T *= R;
252
- }
253
- // 重新计算图整体的能量
254
- if (foundSmallerEnergy) {
255
- return calcEnergy(nodes);
256
- }
257
- return 0;
258
- }
259
- // 计算节点的能量,
260
- function calcNodeEnergy(node, nodes) {
261
- let e = 0.0;
262
- if ((node.x < 0) || (node.y < 0) ||
263
- (node.x + node.size[0] + 20 > graphWidth) ||
264
- (node.y + node.size[1] + 20 > graphHeight)) {
265
- e += 1000000000000.0;
266
- }
267
- for (let i = 0; i < nodes.length; ++i) {
268
- if (node.id !== nodes[i].id) {
269
- e += calcNodePair(node, nodes[i]);
270
- }
271
- }
272
- return e;
273
- }
274
- function layout(nodes, edges) {
275
- if (nodes.length === 0) {
276
- return { nodes, edges };
277
- }
278
- nodes.forEach((node) => {
279
- const relateEdge = edges.filter((edge) => edge.source === node.id || edge.target === node.id);
280
- nodeEdgeMap.set(node, relateEdge);
281
- });
282
- // 1. 初始化
283
- // 将node按照连接数进行排序
284
- nodes.sort((node1, node2) => {
285
- var _a, _b;
286
- return ((_a = nodeEdgeMap.get(node1.id)) === null || _a === void 0 ? void 0 : _a.length) - ((_b = nodeEdgeMap.get(node2.id)) === null || _b === void 0 ? void 0 : _b.length);
287
- });
288
- // 2. 计算图能量
289
- let minEnergy = calcEnergy(nodes);
290
- let deSameCount = 20; // de=0 count
291
- let de = 1; // energy delta
292
- let prevEnergy = 0;
293
- // 定义总的迭代次数。超过就停掉,防止死循环
294
- const MAX_COUNT = 50;
295
- let count = 0;
296
- while (deSameCount > 0) {
297
- count++;
298
- if (count >= MAX_COUNT) {
299
- break;
300
- }
301
- const ea = shuffle(nodes, edges);
302
- if (ea !== 0) {
303
- prevEnergy = ea;
304
- }
305
- de = prevEnergy - minEnergy;
306
- minEnergy = prevEnergy;
307
- if (de === 0) {
308
- --deSameCount;
309
- }
310
- else {
311
- deSameCount = 20;
312
- }
313
- }
314
- nodes.forEach((node) => {
315
- node.x = node.x - node.size[0] / 2;
316
- node.y = node.y - node.size[1] / 2;
317
- });
318
- return {
319
- nodes,
320
- edges,
321
- };
322
- }
323
- export default layout;
324
- //# sourceMappingURL=mysqlWorkbench.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mysqlWorkbench.js","sourceRoot":"","sources":["../../../src/layout/er/mysqlWorkbench.ts"],"names":[],"mappings":"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"}