@antv/layout 0.3.11 → 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 +9 -4
  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 -348
  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 -43
  242. package/es/util/math.js +0 -253
  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 -384
  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 -266
  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 -391
  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 -272
  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,484 +0,0 @@
1
- import { Base } from "../base";
2
- import { getEdgeTerminal, isArray, isNumber, isObject } from "../../util";
3
- import Body from './body';
4
- import Quad from './quad';
5
- import QuadTree from './quadTree';
6
- export class ForceAtlas2Layout extends Base {
7
- constructor(options) {
8
- super();
9
- /** 布局中心 */
10
- this.center = [0, 0];
11
- /** 宽度 */
12
- this.width = 300;
13
- /** 高度 */
14
- this.height = 300;
15
- this.nodes = [];
16
- this.edges = [];
17
- /**
18
- * the parameter for repulsive forces,
19
- * it will scale the layout but won't change the layout
20
- * larger the kr, looser the layout
21
- * @type {number}
22
- */
23
- this.kr = 5;
24
- /**
25
- * the parameter for gravity forces
26
- * @type {number}
27
- */
28
- this.kg = 1;
29
- /**
30
- * modes:
31
- * 'normal' for normal using
32
- * 'linlog' for compact clusters.
33
- * @type {string}
34
- */
35
- this.mode = 'normal';
36
- /**
37
- * whether preventing the node overlapping
38
- * @type {boolean}
39
- */
40
- this.preventOverlap = false;
41
- /**
42
- * whether active the dissuade hub mode
43
- * true: grant authorities (nodes with a high indegree)
44
- * a more central position than hubs (nodes with a high outdegree)
45
- * @type {boolean}
46
- */
47
- this.dissuadeHubs = false;
48
- /**
49
- * whether active the barnes hut optimization on computing repulsive forces
50
- * @type {boolean}
51
- */
52
- this.barnesHut = undefined;
53
- /**
54
- * the max iteration number
55
- * @type {number}
56
- */
57
- this.maxIteration = 0;
58
- /**
59
- * control the global velocity
60
- * defualt: 0.1(gephi)
61
- * @type {number}
62
- */
63
- this.ks = 0.1;
64
- /**
65
- * the max global velocity
66
- * @type {number}
67
- */
68
- this.ksmax = 10;
69
- /**
70
- * the tolerance for the global swinging
71
- * @type {number}
72
- */
73
- this.tao = 0.1;
74
- /**
75
- * the function of layout complete listener, display the legend and minimap after layout
76
- * @type {function}
77
- */
78
- this.onLayoutEnd = () => { };
79
- /**
80
- * activate prune or not.
81
- * prune the leaves during most iterations, layout the leaves in the last 50 iteraitons.
82
- * if prune === '', it will be activated when the nodes number > 100
83
- * note that it will reduce the quality of the layout
84
- * @type {boolean}
85
- */
86
- this.prune = undefined;
87
- this.updateCfg(options);
88
- }
89
- getDefaultCfg() {
90
- return {};
91
- }
92
- // execute the layout
93
- execute() {
94
- const self = this;
95
- const { nodes, onLayoutEnd, prune, } = self;
96
- let maxIteration = self.maxIteration;
97
- if (!self.width && typeof window !== "undefined") {
98
- self.width = window.innerWidth;
99
- }
100
- if (!self.height && typeof window !== "undefined") {
101
- self.height = window.innerHeight;
102
- }
103
- // the whidth of each nodes
104
- const sizes = [];
105
- const nodeNum = nodes.length;
106
- for (let i = 0; i < nodeNum; i += 1) {
107
- const node = nodes[i];
108
- let nodeWidth = 10;
109
- let nodeHeight = 10;
110
- if (isNumber(node.size)) {
111
- nodeWidth = node.size;
112
- nodeHeight = node.size;
113
- }
114
- if (isArray(node.size)) {
115
- if (!isNaN(node.size[0]))
116
- nodeWidth = node.size[0];
117
- if (!isNaN(node.size[1]))
118
- nodeHeight = node.size[1];
119
- }
120
- else if (isObject(node.size)) {
121
- nodeWidth = node.size.width;
122
- nodeHeight = node.size.height;
123
- }
124
- if (self.getWidth && !isNaN(self.getWidth(node)))
125
- nodeHeight = self.getWidth(node);
126
- if (self.getHeight && !isNaN(self.getHeight(node)))
127
- nodeWidth = self.getHeight(node);
128
- const maxSize = Math.max(nodeWidth, nodeHeight);
129
- sizes.push(maxSize);
130
- }
131
- if (self.barnesHut === undefined && nodeNum > 250)
132
- self.barnesHut = true;
133
- if (self.prune === undefined && nodeNum > 100)
134
- self.prune = true;
135
- if (this.maxIteration === 0 && !self.prune) {
136
- maxIteration = 250;
137
- if (nodeNum <= 200 && nodeNum > 100)
138
- maxIteration = 1000;
139
- else if (nodeNum > 200)
140
- maxIteration = 1200;
141
- this.maxIteration = maxIteration;
142
- }
143
- else if (this.maxIteration === 0 && prune) {
144
- maxIteration = 100;
145
- if (nodeNum <= 200 && nodeNum > 100)
146
- maxIteration = 500;
147
- else if (nodeNum > 200)
148
- maxIteration = 950;
149
- this.maxIteration = maxIteration;
150
- }
151
- if (!self.kr) {
152
- self.kr = 50;
153
- if (nodeNum > 100 && nodeNum <= 500)
154
- self.kr = 20;
155
- else if (nodeNum > 500)
156
- self.kr = 1;
157
- }
158
- if (!self.kg) {
159
- self.kg = 20;
160
- if (nodeNum > 100 && nodeNum <= 500)
161
- self.kg = 10;
162
- else if (nodeNum > 500)
163
- self.kg = 1;
164
- }
165
- this.nodes = self.updateNodesByForces(sizes);
166
- onLayoutEnd();
167
- }
168
- updateNodesByForces(sizes) {
169
- const self = this;
170
- const { edges, maxIteration } = self;
171
- let nodes = self.nodes;
172
- const nonLoopEdges = edges.filter((edge) => {
173
- const source = getEdgeTerminal(edge, 'source');
174
- const target = getEdgeTerminal(edge, 'target');
175
- return source !== target;
176
- });
177
- const size = nodes.length;
178
- const esize = nonLoopEdges.length;
179
- const degrees = [];
180
- const idMap = {};
181
- const edgeEndsIdMap = {};
182
- // tslint:disable-next-line
183
- const Es = [];
184
- for (let i = 0; i < size; i += 1) {
185
- idMap[nodes[i].id] = i;
186
- degrees[i] = 0;
187
- if (nodes[i].x === undefined || isNaN(nodes[i].x)) {
188
- nodes[i].x = Math.random() * 1000;
189
- }
190
- if (nodes[i].y === undefined || isNaN(nodes[i].y)) {
191
- nodes[i].y = Math.random() * 1000;
192
- }
193
- Es.push({ x: nodes[i].x, y: nodes[i].y });
194
- }
195
- for (let i = 0; i < esize; i += 1) {
196
- let node1;
197
- let node2;
198
- let sIdx = 0;
199
- let tIdx = 0;
200
- for (let j = 0; j < size; j += 1) {
201
- const source = getEdgeTerminal(nonLoopEdges[i], 'source');
202
- const target = getEdgeTerminal(nonLoopEdges[i], 'target');
203
- if (nodes[j].id === source) {
204
- node1 = nodes[j];
205
- sIdx = j;
206
- }
207
- else if (nodes[j].id === target) {
208
- node2 = nodes[j];
209
- tIdx = j;
210
- }
211
- edgeEndsIdMap[i] = { sourceIdx: sIdx, targetIdx: tIdx };
212
- }
213
- if (node1)
214
- degrees[idMap[node1.id]] += 1;
215
- if (node2)
216
- degrees[idMap[node2.id]] += 1;
217
- }
218
- let iteration = maxIteration;
219
- nodes = this.iterate(iteration, idMap, edgeEndsIdMap, esize, degrees, sizes);
220
- // if prune, place the leaves around their parents, and then re-layout for several iterations.
221
- if (self.prune) {
222
- for (let j = 0; j < esize; j += 1) {
223
- if (degrees[edgeEndsIdMap[j].sourceIdx] <= 1) {
224
- nodes[edgeEndsIdMap[j].sourceIdx].x = nodes[edgeEndsIdMap[j].targetIdx].x;
225
- nodes[edgeEndsIdMap[j].sourceIdx].y = nodes[edgeEndsIdMap[j].targetIdx].y;
226
- }
227
- else if (degrees[edgeEndsIdMap[j].targetIdx] <= 1) {
228
- nodes[edgeEndsIdMap[j].targetIdx].x = nodes[edgeEndsIdMap[j].sourceIdx].x;
229
- nodes[edgeEndsIdMap[j].targetIdx].y = nodes[edgeEndsIdMap[j].sourceIdx].y;
230
- }
231
- }
232
- self.prune = false;
233
- self.barnesHut = false;
234
- iteration = 100;
235
- nodes = this.iterate(iteration, idMap, edgeEndsIdMap, esize, degrees, sizes);
236
- }
237
- return nodes;
238
- }
239
- iterate(iteration, idMap, edgeEndsIdMap, esize, degrees, sizes) {
240
- const self = this;
241
- let { nodes } = self;
242
- const { kr, preventOverlap } = self;
243
- const { barnesHut } = self;
244
- const nodeNum = nodes.length;
245
- let sg = 0;
246
- const krPrime = 100;
247
- let iter = iteration;
248
- const prevoIter = 50;
249
- let forces = [];
250
- const preForces = [];
251
- const bodies = [];
252
- for (let i = 0; i < nodeNum; i += 1) {
253
- forces[2 * i] = 0;
254
- forces[2 * i + 1] = 0;
255
- if (barnesHut) {
256
- const params = {
257
- id: i,
258
- rx: nodes[i].x,
259
- ry: nodes[i].y,
260
- mass: 1,
261
- g: kr,
262
- degree: degrees[i]
263
- };
264
- bodies[i] = new Body(params);
265
- }
266
- }
267
- while (iter > 0) {
268
- for (let i = 0; i < nodeNum; i += 1) {
269
- preForces[2 * i] = forces[2 * i];
270
- preForces[2 * i + 1] = forces[2 * i + 1];
271
- forces[2 * i] = 0;
272
- forces[2 * i + 1] = 0;
273
- }
274
- // attractive forces, existing on every actual edge
275
- forces = this.getAttrForces(iter, prevoIter, esize, idMap, edgeEndsIdMap, degrees, sizes, forces);
276
- // repulsive forces and Gravity, existing on every node pair
277
- // if preventOverlap, using the no-optimized method in the last prevoIter instead.
278
- if (barnesHut && ((preventOverlap && iter > prevoIter) || !preventOverlap)) {
279
- forces = this.getOptRepGraForces(forces, bodies, degrees);
280
- }
281
- else {
282
- forces = this.getRepGraForces(iter, prevoIter, forces, krPrime, sizes, degrees);
283
- }
284
- // update the positions
285
- const res = this.updatePos(forces, preForces, sg, degrees);
286
- nodes = res.nodes;
287
- sg = res.sg;
288
- iter--;
289
- if (self.tick)
290
- self.tick();
291
- }
292
- return nodes;
293
- }
294
- getAttrForces(iter, prevoIter, esize, idMap, edgeEndsIdMap, degrees, sizes, forces) {
295
- const self = this;
296
- const { nodes, preventOverlap, dissuadeHubs, mode, prune } = self;
297
- for (let i = 0; i < esize; i += 1) {
298
- const sourceNode = nodes[edgeEndsIdMap[i].sourceIdx];
299
- const sourceIdx = edgeEndsIdMap[i].sourceIdx;
300
- const targetNode = nodes[edgeEndsIdMap[i].targetIdx];
301
- const targetIdx = edgeEndsIdMap[i].targetIdx;
302
- if (prune && (degrees[sourceIdx] <= 1 || degrees[targetIdx] <= 1))
303
- continue;
304
- const dir = [targetNode.x - sourceNode.x, targetNode.y - sourceNode.y];
305
- let eucliDis = Math.hypot(dir[0], dir[1]);
306
- eucliDis = eucliDis < 0.0001 ? 0.0001 : eucliDis;
307
- dir[0] = dir[0] / eucliDis;
308
- dir[1] = dir[1] / eucliDis;
309
- if (preventOverlap && iter < prevoIter)
310
- eucliDis = eucliDis - sizes[sourceIdx] - sizes[targetIdx];
311
- let Fa1 = eucliDis; // tslint:disable-line
312
- let Fa2 = Fa1; // tslint:disable-line
313
- if (mode === 'linlog') {
314
- Fa1 = Math.log(1 + eucliDis);
315
- Fa2 = Fa1;
316
- }
317
- if (dissuadeHubs) {
318
- Fa1 = eucliDis / degrees[sourceIdx];
319
- Fa2 = eucliDis / degrees[targetIdx];
320
- }
321
- if (preventOverlap && iter < prevoIter && eucliDis <= 0) {
322
- Fa1 = 0;
323
- Fa2 = 0;
324
- }
325
- else if (preventOverlap && iter < prevoIter && eucliDis > 0) {
326
- Fa1 = eucliDis;
327
- Fa2 = eucliDis;
328
- }
329
- forces[2 * idMap[sourceNode.id]] += Fa1 * dir[0];
330
- forces[2 * idMap[targetNode.id]] -= Fa2 * dir[0];
331
- forces[2 * idMap[sourceNode.id] + 1] += Fa1 * dir[1];
332
- forces[2 * idMap[targetNode.id] + 1] -= Fa2 * dir[1];
333
- }
334
- return forces;
335
- }
336
- getRepGraForces(iter, prevoIter, forces, krPrime, sizes, degrees) {
337
- const self = this;
338
- const { nodes, preventOverlap, kr, kg, center, prune } = self;
339
- const nodeNum = nodes.length;
340
- for (let i = 0; i < nodeNum; i += 1) {
341
- for (let j = i + 1; j < nodeNum; j += 1) {
342
- if (prune && (degrees[i] <= 1 || degrees[j] <= 1))
343
- continue;
344
- const dir = [nodes[j].x - nodes[i].x, nodes[j].y - nodes[i].y];
345
- let eucliDis = Math.hypot(dir[0], dir[1]);
346
- eucliDis = eucliDis < 0.0001 ? 0.0001 : eucliDis;
347
- dir[0] = dir[0] / eucliDis;
348
- dir[1] = dir[1] / eucliDis;
349
- if (preventOverlap && iter < prevoIter)
350
- eucliDis = eucliDis - sizes[i] - sizes[j];
351
- let Fr = kr * (degrees[i] + 1) * (degrees[j] + 1) / eucliDis; // tslint:disable-line
352
- if (preventOverlap && iter < prevoIter && eucliDis < 0) {
353
- Fr = krPrime * (degrees[i] + 1) * (degrees[j] + 1);
354
- }
355
- else if (preventOverlap && iter < prevoIter && eucliDis === 0) {
356
- Fr = 0;
357
- }
358
- else if (preventOverlap && iter < prevoIter && eucliDis > 0) {
359
- Fr = kr * (degrees[i] + 1) * (degrees[j] + 1) / eucliDis;
360
- }
361
- forces[2 * i] -= Fr * dir[0];
362
- forces[2 * j] += Fr * dir[0];
363
- forces[2 * i + 1] -= Fr * dir[1];
364
- forces[2 * j + 1] += Fr * dir[1];
365
- }
366
- // gravity
367
- const dir = [nodes[i].x - center[0], nodes[i].y - center[1]];
368
- const eucliDis = Math.hypot(dir[0], dir[1]);
369
- dir[0] = dir[0] / eucliDis;
370
- dir[1] = dir[1] / eucliDis;
371
- const Fg = kg * (degrees[i] + 1); // tslint:disable-line
372
- forces[2 * i] -= Fg * dir[0];
373
- forces[2 * i + 1] -= Fg * dir[1];
374
- }
375
- return forces;
376
- }
377
- getOptRepGraForces(forces, bodies, degrees) {
378
- const self = this;
379
- const { nodes, kg, center, prune } = self;
380
- const nodeNum = nodes.length;
381
- let minx = 9e10;
382
- let maxx = -9e10;
383
- let miny = 9e10;
384
- let maxy = -9e10;
385
- for (let i = 0; i < nodeNum; i += 1) {
386
- if (prune && (degrees[i] <= 1))
387
- continue;
388
- bodies[i].setPos(nodes[i].x, nodes[i].y);
389
- if (nodes[i].x >= maxx)
390
- maxx = nodes[i].x;
391
- if (nodes[i].x <= minx)
392
- minx = nodes[i].x;
393
- if (nodes[i].y >= maxy)
394
- maxy = nodes[i].y;
395
- if (nodes[i].y <= miny)
396
- miny = nodes[i].y;
397
- }
398
- const width = Math.max(maxx - minx, maxy - miny);
399
- const quadParams = {
400
- xmid: (maxx + minx) / 2,
401
- ymid: (maxy + miny) / 2,
402
- length: width,
403
- massCenter: center,
404
- mass: nodeNum
405
- };
406
- const quad = new Quad(quadParams);
407
- const quadTree = new QuadTree(quad);
408
- // build the tree, insert the nodes(quads) into the tree
409
- for (let i = 0; i < nodeNum; i += 1) {
410
- if (prune && (degrees[i] <= 1))
411
- continue;
412
- if (bodies[i].in(quad))
413
- quadTree.insert(bodies[i]);
414
- }
415
- // update the repulsive forces and the gravity.
416
- for (let i = 0; i < nodeNum; i += 1) {
417
- if (prune && (degrees[i] <= 1))
418
- continue;
419
- bodies[i].resetForce();
420
- quadTree.updateForce(bodies[i]);
421
- forces[2 * i] -= bodies[i].fx;
422
- forces[2 * i + 1] -= bodies[i].fy;
423
- // gravity
424
- const dir = [nodes[i].x - center[0], nodes[i].y - center[1]];
425
- let eucliDis = Math.hypot(dir[0], dir[1]);
426
- eucliDis = eucliDis < 0.0001 ? 0.0001 : eucliDis;
427
- dir[0] = dir[0] / eucliDis;
428
- dir[1] = dir[1] / eucliDis;
429
- const Fg = kg * (degrees[i] + 1); // tslint:disable-line
430
- forces[2 * i] -= Fg * dir[0];
431
- forces[2 * i + 1] -= Fg * dir[1];
432
- }
433
- return forces;
434
- }
435
- updatePos(forces, preForces, sg, degrees) {
436
- const self = this;
437
- const { nodes, ks, tao, prune, ksmax } = self;
438
- const nodeNum = nodes.length;
439
- const swgns = [];
440
- const trans = [];
441
- // swg(G) and tra(G)
442
- let swgG = 0;
443
- let traG = 0;
444
- for (let i = 0; i < nodeNum; i += 1) {
445
- if (prune && (degrees[i] <= 1))
446
- continue;
447
- const minus = [forces[2 * i] - preForces[2 * i],
448
- forces[2 * i + 1] - preForces[2 * i + 1]
449
- ];
450
- const minusNorm = Math.hypot(minus[0], minus[1]);
451
- const add = [forces[2 * i] + preForces[2 * i],
452
- forces[2 * i + 1] + preForces[2 * i + 1]
453
- ];
454
- const addNorm = Math.hypot(add[0], add[1]);
455
- swgns[i] = minusNorm;
456
- trans[i] = addNorm / 2;
457
- swgG += (degrees[i] + 1) * swgns[i];
458
- traG += (degrees[i] + 1) * trans[i];
459
- }
460
- const preSG = sg;
461
- sg = tao * traG / swgG; // tslint:disable-line
462
- if (preSG !== 0) {
463
- sg = sg > (1.5 * preSG) ? (1.5 * preSG) : sg; // tslint:disable-line
464
- }
465
- // update the node positions
466
- for (let i = 0; i < nodeNum; i += 1) {
467
- if (prune && (degrees[i] <= 1))
468
- continue;
469
- if (isNumber(nodes[i].fx) && isNumber(nodes[i].fy))
470
- continue;
471
- let sn = ks * sg / (1 + sg * Math.sqrt(swgns[i]));
472
- let absForce = Math.hypot(forces[2 * i], forces[2 * i + 1]);
473
- absForce = absForce < 0.0001 ? 0.0001 : absForce;
474
- const max = ksmax / absForce;
475
- sn = sn > max ? max : sn;
476
- const dnx = sn * forces[2 * i];
477
- const dny = sn * forces[2 * i + 1];
478
- nodes[i].x += dnx;
479
- nodes[i].y += dny;
480
- }
481
- return { nodes, sg };
482
- }
483
- }
484
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/forceAtlas2/index.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import { PointTuple } from "../types";
2
- /**
3
- * @fileOverview quad
4
- * @author shiwu.wyy@antfin.com
5
- */
6
- type QuadProps = {
7
- xmid: number;
8
- ymid: number;
9
- length: number;
10
- massCenter?: PointTuple;
11
- mass?: number;
12
- };
13
- export default class Quad {
14
- xmid: number;
15
- ymid: number;
16
- length: number;
17
- massCenter: PointTuple;
18
- mass: number;
19
- constructor(params: QuadProps);
20
- getLength(): number;
21
- contains(x: number, y: number): boolean;
22
- NW(): Quad;
23
- NE(): Quad;
24
- SW(): Quad;
25
- SE(): Quad;
26
- }
27
- export {};
@@ -1,96 +0,0 @@
1
- export default class Quad {
2
- constructor(params) {
3
- /**
4
- * the center position of this quad
5
- * @type {number}
6
- */
7
- this.xmid = params.xmid;
8
- /**
9
- * the center position of this quad
10
- * @type {number}
11
- */
12
- this.ymid = params.ymid;
13
- /**
14
- * the length of this quad
15
- * @type {number}
16
- */
17
- this.length = params.length;
18
- /**
19
- * the mass center of this quad
20
- * @type {number}
21
- */
22
- this.massCenter = params.massCenter || [0, 0];
23
- /**
24
- * the mass of this quad
25
- * @type {number}
26
- */
27
- this.mass = params.mass || 1;
28
- }
29
- getLength() {
30
- return this.length;
31
- }
32
- contains(x, y) {
33
- const halfLen = this.length / 2;
34
- return (x <= this.xmid + halfLen &&
35
- x >= this.xmid - halfLen &&
36
- y <= this.ymid + halfLen &&
37
- y >= this.ymid - halfLen);
38
- }
39
- // northwest quadrant
40
- // tslint:disable-next-line
41
- NW() {
42
- const x = this.xmid - this.length / 4;
43
- const y = this.ymid + this.length / 4;
44
- const len = this.length / 2;
45
- const params = {
46
- xmid: x,
47
- ymid: y,
48
- length: len
49
- };
50
- const NW = new Quad(params);
51
- return NW;
52
- }
53
- // northeast
54
- // tslint:disable-next-line
55
- NE() {
56
- const x = this.xmid + this.length / 4;
57
- const y = this.ymid + this.length / 4;
58
- const len = this.length / 2;
59
- const params = {
60
- xmid: x,
61
- ymid: y,
62
- length: len
63
- };
64
- const NE = new Quad(params);
65
- return NE;
66
- }
67
- // southwest
68
- // tslint:disable-next-line
69
- SW() {
70
- const x = this.xmid - this.length / 4;
71
- const y = this.ymid - this.length / 4;
72
- const len = this.length / 2;
73
- const params = {
74
- xmid: x,
75
- ymid: y,
76
- length: len
77
- };
78
- const SW = new Quad(params);
79
- return SW;
80
- }
81
- // southeast
82
- // tslint:disable-next-line
83
- SE() {
84
- const x = this.xmid + this.length / 4;
85
- const y = this.ymid - this.length / 4;
86
- const len = this.length / 2;
87
- const params = {
88
- xmid: x,
89
- ymid: y,
90
- length: len
91
- };
92
- const SE = new Quad(params);
93
- return SE;
94
- }
95
- }
96
- //# sourceMappingURL=quad.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quad.js","sourceRoot":"","sources":["../../../src/layout/forceAtlas2/quad.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import Body from './body';
2
- import Quad from './quad';
3
- /**
4
- * @fileOverview quadTree
5
- * @author shiwu.wyy@antfin.com
6
- */
7
- export default class QuadTree {
8
- body: Body | null;
9
- quad: Quad | null;
10
- theta: number;
11
- NW: QuadTree | null;
12
- NE: QuadTree | null;
13
- SW: QuadTree | null;
14
- SE: QuadTree | null;
15
- constructor(param: Quad | null);
16
- insert(bo: Body): void;
17
- _putBody(bo: Body): void;
18
- _isExternal(): boolean;
19
- updateForce(bo: Body): void;
20
- }