@antv/layout 0.3.12 → 1.0.0-alpha.1

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 +4 -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,643 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileOverview fruchterman layout
4
- * @author shiwu.wyy@antfin.com
5
- */
6
- var __extends = (this && this.__extends) || (function () {
7
- var extendStatics = function (d, b) {
8
- extendStatics = Object.setPrototypeOf ||
9
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
11
- return extendStatics(d, b);
12
- };
13
- return function (d, b) {
14
- if (typeof b !== "function" && b !== null)
15
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
16
- extendStatics(d, b);
17
- function __() { this.constructor = d; }
18
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19
- };
20
- })();
21
- var __assign = (this && this.__assign) || function () {
22
- __assign = Object.assign || function(t) {
23
- for (var s, i = 1, n = arguments.length; i < n; i++) {
24
- s = arguments[i];
25
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26
- t[p] = s[p];
27
- }
28
- return t;
29
- };
30
- return __assign.apply(this, arguments);
31
- };
32
- Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.Force2Layout = void 0;
34
- var base_1 = require("../base");
35
- var util_1 = require("../../util");
36
- var ForceNBody_1 = require("./ForceNBody");
37
- var proccessToFunc = function (value, defaultV) {
38
- var func;
39
- if (!value) {
40
- func = function (d) {
41
- return defaultV || 1;
42
- };
43
- }
44
- else if ((0, util_1.isNumber)(value)) {
45
- func = function (d) {
46
- return value;
47
- };
48
- }
49
- else {
50
- func = value;
51
- }
52
- return func;
53
- };
54
- /**
55
- * graphin 中的 force 布局
56
- */
57
- var Force2Layout = /** @class */ (function (_super) {
58
- __extends(Force2Layout, _super);
59
- function Force2Layout(options) {
60
- var _this = _super.call(this) || this;
61
- /** 停止迭代的最大迭代数 */
62
- _this.maxIteration = 1000;
63
- /** 是否启动 worker */
64
- _this.workerEnabled = false;
65
- /** 弹簧引力系数 */
66
- _this.edgeStrength = 200;
67
- /** 斥力系数 */
68
- _this.nodeStrength = 1000;
69
- /** 库伦系数 */
70
- _this.coulombDisScale = 0.005;
71
- /** 阻尼系数 */
72
- _this.damping = 0.9;
73
- /** 最大速度 */
74
- _this.maxSpeed = 500;
75
- /** 一次迭代的平均移动距离小于该值时停止迭代 */
76
- _this.minMovement = 0.4;
77
- /** 迭代中衰减 */
78
- _this.interval = 0.02;
79
- /** 斥力的一个系数 */
80
- _this.factor = 1;
81
- /** 理想边长 */
82
- _this.linkDistance = 200;
83
- /** 重力大小 */
84
- _this.gravity = 0;
85
- /** 节点聚类作用力系数 */
86
- _this.clusterNodeStrength = 20;
87
- /** 是否防止重叠 */
88
- _this.preventOverlap = true;
89
- /** 阈值的使用条件,mean 代表平均移动距离小于 minMovement 时停止迭代,max 代表最大移动距离大时 minMovement 时停时迭代。默认为 mean */
90
- _this.distanceThresholdMode = 'mean';
91
- /** 每次迭代结束的回调函数 */
92
- _this.tick = function () { };
93
- _this.nodes = [];
94
- _this.edges = [];
95
- _this.width = 300;
96
- _this.height = 300;
97
- _this.nodeMap = {};
98
- _this.nodeIdxMap = {};
99
- _this.judgingDistance = 0;
100
- /** 默认的向心配置 */
101
- _this.centripetalOptions = {
102
- leaf: 2,
103
- single: 2,
104
- others: 1,
105
- // eslint-disable-next-line
106
- center: function (n) {
107
- return {
108
- x: _this.width / 2,
109
- y: _this.height / 2,
110
- };
111
- },
112
- };
113
- var getMass = options.getMass;
114
- _this.propsGetMass = getMass;
115
- _this.updateCfg(options);
116
- return _this;
117
- }
118
- Force2Layout.prototype.getCentripetalOptions = function () {
119
- var _a = this, leafCluster = _a.leafCluster, clustering = _a.clustering, nodeClusterBy = _a.nodeClusterBy, nodes = _a.nodes, nodeMap = _a.nodeMap, propsClusterNodeStrength = _a.clusterNodeStrength;
120
- var getClusterNodeStrength = function (node) {
121
- return typeof propsClusterNodeStrength === 'function' ? propsClusterNodeStrength(node) : propsClusterNodeStrength;
122
- };
123
- var centripetalOptions = {};
124
- var sameTypeLeafMap;
125
- // 如果传入了需要叶子节点聚类
126
- if (leafCluster) {
127
- sameTypeLeafMap = this.getSameTypeLeafMap() || {};
128
- var relativeNodesType_1 = Array.from(new Set(nodes === null || nodes === void 0 ? void 0 : nodes.map(function (node) { return node[nodeClusterBy]; }))) || [];
129
- centripetalOptions = {
130
- single: 100,
131
- leaf: function (node, nodes, edges) {
132
- // 找出与它关联的边的起点或终点出发的所有一度节点中同类型的叶子节点
133
- var _a = sameTypeLeafMap[node.id] || {}, relativeLeafNodes = _a.relativeLeafNodes, sameTypeLeafNodes = _a.sameTypeLeafNodes;
134
- // 如果都是同一类型或者每种类型只有1个,则施加默认向心力
135
- if ((sameTypeLeafNodes === null || sameTypeLeafNodes === void 0 ? void 0 : sameTypeLeafNodes.length) === (relativeLeafNodes === null || relativeLeafNodes === void 0 ? void 0 : relativeLeafNodes.length) || (relativeNodesType_1 === null || relativeNodesType_1 === void 0 ? void 0 : relativeNodesType_1.length) === 1) {
136
- return 1;
137
- }
138
- return getClusterNodeStrength(node);
139
- },
140
- others: 1,
141
- center: function (node, nodes, edges) {
142
- var _a;
143
- var degree = (((_a = node.data) === null || _a === void 0 ? void 0 : _a.layout) || {}).degree;
144
- // 孤点默认给1个远离的中心点
145
- if (!degree) {
146
- return {
147
- x: 100,
148
- y: 100,
149
- };
150
- }
151
- var centerNode;
152
- if (degree === 1) {
153
- // 如果为叶子节点
154
- // 找出与它关联的边的起点出发的所有一度节点中同类型的叶子节点
155
- var _b = (sameTypeLeafMap[node.id] || {}).sameTypeLeafNodes, sameTypeLeafNodes = _b === void 0 ? [] : _b;
156
- if (sameTypeLeafNodes.length === 1) {
157
- // 如果同类型的叶子节点只有1个,中心节点置为undefined
158
- centerNode = undefined;
159
- }
160
- else if (sameTypeLeafNodes.length > 1) {
161
- // 找出同类型节点平均位置节点的距离最近的节点作为中心节点
162
- centerNode = (0, util_1.getAvgNodePosition)(sameTypeLeafNodes);
163
- }
164
- }
165
- else {
166
- centerNode = undefined;
167
- }
168
- return {
169
- x: centerNode === null || centerNode === void 0 ? void 0 : centerNode.x,
170
- y: centerNode === null || centerNode === void 0 ? void 0 : centerNode.y,
171
- };
172
- },
173
- };
174
- }
175
- // 如果传入了全局节点聚类
176
- if (clustering) {
177
- if (!sameTypeLeafMap)
178
- sameTypeLeafMap = this.getSameTypeLeafMap();
179
- var clusters = Array.from(new Set(nodes.map(function (node, i) {
180
- return node[nodeClusterBy];
181
- }))).filter(function (item) { return item !== undefined; });
182
- var centerNodeInfo_1 = {};
183
- clusters.forEach(function (cluster) {
184
- var sameTypeNodes = nodes.filter(function (item) { return item[nodeClusterBy] === cluster; }).map(function (node) { return nodeMap[node.id]; });
185
- // 找出同类型节点平均位置节点的距离最近的节点作为中心节点
186
- centerNodeInfo_1[cluster] = (0, util_1.getAvgNodePosition)(sameTypeNodes);
187
- });
188
- centripetalOptions = {
189
- single: function (node) { return getClusterNodeStrength(node); },
190
- leaf: function (node) { return getClusterNodeStrength(node); },
191
- others: function (node) { return getClusterNodeStrength(node); },
192
- center: function (node, nodes, edges) {
193
- // 找出同类型节点平均位置节点的距离最近的节点作为中心节点
194
- var centerNode = centerNodeInfo_1[node[nodeClusterBy]];
195
- return {
196
- x: centerNode === null || centerNode === void 0 ? void 0 : centerNode.x,
197
- y: centerNode === null || centerNode === void 0 ? void 0 : centerNode.y,
198
- };
199
- },
200
- };
201
- }
202
- this.centripetalOptions = __assign(__assign({}, this.centripetalOptions), centripetalOptions);
203
- var _b = this.centripetalOptions, leaf = _b.leaf, single = _b.single, others = _b.others;
204
- if (leaf && typeof leaf !== 'function')
205
- this.centripetalOptions.leaf = function () { return leaf; };
206
- if (single && typeof single !== 'function')
207
- this.centripetalOptions.single = function () { return single; };
208
- if (others && typeof others !== 'function')
209
- this.centripetalOptions.others = function () { return others; };
210
- };
211
- Force2Layout.prototype.updateCfg = function (cfg) {
212
- if (cfg)
213
- Object.assign(this, cfg);
214
- };
215
- Force2Layout.prototype.getDefaultCfg = function () {
216
- return {
217
- maxIteration: 500,
218
- gravity: 10,
219
- enableTick: true,
220
- animate: true,
221
- };
222
- };
223
- /**
224
- * 执行布局
225
- */
226
- Force2Layout.prototype.execute = function () {
227
- var self = this;
228
- self.stop();
229
- var nodes = self.nodes, edges = self.edges, defSpringLen = self.defSpringLen;
230
- self.judgingDistance = 0;
231
- if (!nodes || nodes.length === 0) {
232
- self.onLayoutEnd([]);
233
- return;
234
- }
235
- if (!self.width && typeof window !== "undefined") {
236
- self.width = window.innerWidth;
237
- }
238
- if (!self.height && typeof window !== "undefined") {
239
- self.height = window.innerHeight;
240
- }
241
- if (!self.center) {
242
- self.center = [self.width / 2, self.height / 2];
243
- }
244
- var center = self.center;
245
- if (nodes.length === 1) {
246
- nodes[0].x = center[0];
247
- nodes[0].y = center[1];
248
- self.onLayoutEnd([__assign({}, nodes[0])]);
249
- return;
250
- }
251
- self.degreesMap = (0, util_1.getDegreeMap)(nodes, edges);
252
- if (self.propsGetMass) {
253
- self.getMass = self.propsGetMass;
254
- }
255
- else {
256
- self.getMass = function (d) {
257
- var massWeight = 1;
258
- if ((0, util_1.isNumber)(d.mass))
259
- massWeight = d.mass;
260
- var degree = self.degreesMap[d.id].all;
261
- return (!degree || degree < 5) ? massWeight : degree * 5 * massWeight;
262
- };
263
- }
264
- // node size function
265
- var nodeSize = self.nodeSize;
266
- var nodeSizeFunc;
267
- if (self.preventOverlap) {
268
- var nodeSpacing_1 = self.nodeSpacing;
269
- var nodeSpacingFunc_1;
270
- if ((0, util_1.isNumber)(nodeSpacing_1)) {
271
- nodeSpacingFunc_1 = function () { return nodeSpacing_1; };
272
- }
273
- else if ((0, util_1.isFunction)(nodeSpacing_1)) {
274
- nodeSpacingFunc_1 = nodeSpacing_1;
275
- }
276
- else {
277
- nodeSpacingFunc_1 = function () { return 0; };
278
- }
279
- if (!nodeSize) {
280
- nodeSizeFunc = function (d) {
281
- if (d.size) {
282
- if ((0, util_1.isArray)(d.size)) {
283
- return Math.max(d.size[0], d.size[1]) + nodeSpacingFunc_1(d);
284
- }
285
- if ((0, util_1.isObject)(d.size)) {
286
- return Math.max(d.size.width, d.size.height) + nodeSpacingFunc_1(d);
287
- }
288
- return d.size + nodeSpacingFunc_1(d);
289
- }
290
- return 10 + nodeSpacingFunc_1(d);
291
- };
292
- }
293
- else if ((0, util_1.isArray)(nodeSize)) {
294
- nodeSizeFunc = function (d) {
295
- return Math.max(nodeSize[0], nodeSize[1]) + nodeSpacingFunc_1(d);
296
- };
297
- }
298
- else {
299
- nodeSizeFunc = function (d) { return nodeSize + nodeSpacingFunc_1(d); };
300
- }
301
- }
302
- self.nodeSize = nodeSizeFunc;
303
- self.linkDistance = proccessToFunc(self.linkDistance, 1);
304
- self.nodeStrength = proccessToFunc(self.nodeStrength, 1);
305
- self.edgeStrength = proccessToFunc(self.edgeStrength, 1);
306
- var nodeMap = {};
307
- var nodeIdxMap = {};
308
- nodes.forEach(function (node, i) {
309
- if (!(0, util_1.isNumber)(node.x))
310
- node.x = Math.random() * self.width;
311
- if (!(0, util_1.isNumber)(node.y))
312
- node.y = Math.random() * self.height;
313
- var degree = self.degreesMap[node.id];
314
- nodeMap[node.id] = __assign(__assign({}, node), { data: __assign(__assign({}, node.data), { size: self.nodeSize(node) || 30, layout: {
315
- inDegree: degree.in,
316
- outDegree: degree.out,
317
- degree: degree.all,
318
- tDegree: degree.in,
319
- sDegree: degree.out,
320
- force: {
321
- mass: self.getMass(node),
322
- nodeStrength: self.nodeStrength(node)
323
- }
324
- } }) });
325
- nodeIdxMap[node.id] = i;
326
- });
327
- self.nodeMap = nodeMap;
328
- self.nodeIdxMap = nodeIdxMap;
329
- self.edgeInfos = [];
330
- edges === null || edges === void 0 ? void 0 : edges.forEach(function (edge) {
331
- var sourceNode = nodeMap[edge.source];
332
- var targetNode = nodeMap[edge.target];
333
- if (!sourceNode || !targetNode) {
334
- elf.edgeInfos.push({});
335
- }
336
- else {
337
- self.edgeInfos.push({
338
- edgeStrength: self.edgeStrength(edge),
339
- linkDistance: defSpringLen ? defSpringLen(__assign(__assign({}, edge), { source: sourceNode, target: targetNode }), sourceNode, targetNode) : self.linkDistance(edge, sourceNode, targetNode) || 1 + ((nodeSize(sourceNode) + nodeSize(sourceNode)) || 0) / 2
340
- });
341
- }
342
- });
343
- this.getCentripetalOptions();
344
- self.onLayoutEnd = self.onLayoutEnd || (function () { });
345
- self.run();
346
- };
347
- Force2Layout.prototype.run = function () {
348
- var self = this;
349
- var maxIteration = self.maxIteration, nodes = self.nodes, workerEnabled = self.workerEnabled, minMovement = self.minMovement, animate = self.animate, nodeMap = self.nodeMap;
350
- if (!nodes)
351
- return;
352
- var velArray = [];
353
- nodes.forEach(function (_, i) {
354
- velArray[2 * i] = 0;
355
- velArray[2 * i + 1] = 0;
356
- });
357
- var maxIter = maxIteration;
358
- var silence = !animate;
359
- if (workerEnabled || silence) {
360
- var usedIter = 0;
361
- for (var i = 0; (self.judgingDistance > minMovement || i < 1) && i < maxIter; i++) {
362
- usedIter = i;
363
- self.runOneStep(i, velArray);
364
- }
365
- self.onLayoutEnd(Object.values(nodeMap));
366
- }
367
- else {
368
- if (typeof window === "undefined")
369
- return;
370
- var iter_1 = 0;
371
- // interval for render the result after each iteration
372
- this.timeInterval = window.setInterval(function () {
373
- if (!nodes)
374
- return;
375
- self.runOneStep(iter_1, velArray);
376
- iter_1++;
377
- if (iter_1 >= maxIter || self.judgingDistance < minMovement) {
378
- self.onLayoutEnd(Object.values(nodeMap));
379
- window.clearInterval(self.timeInterval);
380
- }
381
- }, 0);
382
- }
383
- };
384
- Force2Layout.prototype.runOneStep = function (iter, velArray) {
385
- var _a;
386
- var self = this;
387
- var nodes = self.nodes, edges = self.edges, nodeMap = self.nodeMap, monitor = self.monitor;
388
- var accArray = [];
389
- if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length))
390
- return;
391
- self.calRepulsive(accArray);
392
- if (edges)
393
- self.calAttractive(accArray);
394
- self.calGravity(accArray);
395
- var stepInterval = self.interval; // Math.max(0.02, self.interval - iter * 0.002);
396
- self.updateVelocity(accArray, velArray, stepInterval);
397
- self.updatePosition(velArray, stepInterval);
398
- (_a = self.tick) === null || _a === void 0 ? void 0 : _a.call(self);
399
- /** 如果需要监控信息,则提供给用户 */
400
- if (monitor) {
401
- var energy = this.calTotalEnergy(accArray);
402
- monitor({ energy: energy, nodes: nodes, edges: edges, iterations: iter });
403
- }
404
- };
405
- Force2Layout.prototype.calTotalEnergy = function (accArray) {
406
- var _a = this, nodes = _a.nodes, nodeMap = _a.nodeMap;
407
- if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length))
408
- return 0;
409
- var energy = 0.0;
410
- nodes.forEach(function (node, i) {
411
- var vx = accArray[2 * i];
412
- var vy = accArray[2 * i + 1];
413
- var speed2 = vx * vx + vy * vy;
414
- var _a = nodeMap[node.id].data.layout.force.mass, mass = _a === void 0 ? 1 : _a;
415
- energy += mass * speed2 * 0.5; // p = 1/2*(mv^2)
416
- });
417
- return energy;
418
- };
419
- // coulombs law
420
- Force2Layout.prototype.calRepulsive = function (accArray) {
421
- var self = this;
422
- var nodes = self.nodes, nodeMap = self.nodeMap, factor = self.factor, coulombDisScale = self.coulombDisScale;
423
- var nodeSize = self.nodeSize;
424
- (0, ForceNBody_1.forceNBody)(nodes, nodeMap, factor, coulombDisScale * coulombDisScale, accArray);
425
- };
426
- // hooks law
427
- Force2Layout.prototype.calAttractive = function (accArray) {
428
- var self = this;
429
- var edges = self.edges, nodeMap = self.nodeMap, nodeIdxMap = self.nodeIdxMap, edgeInfos = self.edgeInfos;
430
- var nodeSize = self.nodeSize;
431
- edges.forEach(function (edge, i) {
432
- var source = (0, util_1.getEdgeTerminal)(edge, 'source');
433
- var target = (0, util_1.getEdgeTerminal)(edge, 'target');
434
- var sourceNode = nodeMap[source];
435
- var targetNode = nodeMap[target];
436
- if (!sourceNode || !targetNode)
437
- return;
438
- var vecX = targetNode.x - sourceNode.x;
439
- var vecY = targetNode.y - sourceNode.y;
440
- if (!vecX && !vecY) {
441
- vecX = Math.random() * 0.01;
442
- vecY = Math.random() * 0.01;
443
- }
444
- var vecLength = Math.sqrt(vecX * vecX + vecY * vecY);
445
- var direX = vecX / vecLength;
446
- var direY = vecY / vecLength;
447
- // @ts-ignore
448
- var _a = edgeInfos[i] || {}, _b = _a.linkDistance, linkDistance = _b === void 0 ? 200 : _b, _c = _a.edgeStrength, edgeStrength = _c === void 0 ? 200 : _c;
449
- var diff = linkDistance - vecLength;
450
- var param = diff * edgeStrength;
451
- var massSource = sourceNode.data.layout.force.mass || 1;
452
- var massTarget = targetNode.data.layout.force.mass || 1;
453
- // 质量占比越大,对另一端影响程度越大
454
- var sourceMassRatio = 1 / massSource;
455
- var targetMassRatio = 1 / massTarget;
456
- var disX = direX * param;
457
- var disY = direY * param;
458
- var sourceIdx = 2 * nodeIdxMap[source];
459
- var targetIdx = 2 * nodeIdxMap[target];
460
- accArray[sourceIdx] -= disX * sourceMassRatio;
461
- accArray[sourceIdx + 1] -= disY * sourceMassRatio;
462
- accArray[targetIdx] += disX * targetMassRatio;
463
- accArray[targetIdx + 1] += disY * targetMassRatio;
464
- });
465
- };
466
- // attract to center
467
- Force2Layout.prototype.calGravity = function (accArray) {
468
- var _a;
469
- var self = this;
470
- var nodes = self.nodes, _b = self.edges, edges = _b === void 0 ? [] : _b, nodeMap = self.nodeMap, width = self.width, height = self.height, center = self.center, defaultGravity = self.gravity, degreesMap = self.degreesMap, centripetalOptions = self.centripetalOptions;
471
- if (!nodes)
472
- return;
473
- var nodeLength = nodes.length;
474
- for (var i = 0; i < nodeLength; i++) {
475
- var idx = 2 * i;
476
- var node = nodeMap[nodes[i].id];
477
- var _c = node.data.layout.force.mass, mass = _c === void 0 ? 1 : _c;
478
- var vecX = 0;
479
- var vecY = 0;
480
- var gravity = defaultGravity;
481
- var _d = degreesMap[node.id], inDegree = _d.in, outDegree = _d.out, degree = _d.all;
482
- var forceCenter = (_a = self.getCenter) === null || _a === void 0 ? void 0 : _a.call(self, node, degree);
483
- if (forceCenter) {
484
- var centerX = forceCenter[0], centerY = forceCenter[1], strength = forceCenter[2];
485
- vecX = node.x - centerX;
486
- vecY = node.y - centerY;
487
- gravity = strength;
488
- }
489
- else {
490
- vecX = node.x - center[0];
491
- vecY = node.y - center[1];
492
- }
493
- if (gravity) {
494
- accArray[idx] -= gravity * vecX / mass;
495
- accArray[idx + 1] -= gravity * vecY / mass;
496
- }
497
- if (centripetalOptions) {
498
- var leaf = centripetalOptions.leaf, single = centripetalOptions.single, others = centripetalOptions.others, centriCenter = centripetalOptions.center;
499
- var _e = (centriCenter === null || centriCenter === void 0 ? void 0 : centriCenter(node, nodes, edges, width, height)) || { x: 0, y: 0, centerStrength: 0 }, centriX = _e.x, centriY = _e.y, centerStrength = _e.centerStrength;
500
- if (!(0, util_1.isNumber)(centriX) || !(0, util_1.isNumber)(centriY))
501
- continue;
502
- var vx = (node.x - centriX) / mass;
503
- var vy = (node.y - centriY) / mass;
504
- if (centerStrength) {
505
- accArray[idx] -= centerStrength * vx;
506
- accArray[idx + 1] -= centerStrength * vy;
507
- }
508
- // 孤点
509
- if (degree === 0) {
510
- var singleStrength = single(node);
511
- if (!singleStrength)
512
- continue;
513
- accArray[idx] -= singleStrength * vx;
514
- accArray[idx + 1] -= singleStrength * vy;
515
- continue;
516
- }
517
- // 没有出度或没有入度,都认为是叶子节点
518
- if (inDegree === 0 || outDegree === 0) {
519
- var leafStrength = leaf(node, nodes, edges);
520
- if (!leafStrength)
521
- continue;
522
- accArray[idx] -= leafStrength * vx;
523
- accArray[idx + 1] -= leafStrength * vy;
524
- continue;
525
- }
526
- /** others */
527
- var othersStrength = others(node);
528
- if (!othersStrength)
529
- continue;
530
- accArray[idx] -= othersStrength * vx;
531
- accArray[idx + 1] -= othersStrength * vy;
532
- }
533
- }
534
- };
535
- // TODO: 待 graphin 修改正确
536
- // public attractToSide(accArray: number[]) {
537
- // const { defSideCoe, height, nodes } = this;
538
- // if (!defSideCoe || typeof defSideCoe !== 'function' || !nodes?.length) return;
539
- // nodes.forEach((node, i) => {
540
- // const sideCoe = defSideCoe!(node);
541
- // if (sideCoe === 0) return;
542
- // const targetY = sideCoe > 0 ? 0 : height;
543
- // const strength = Math.abs(sideCoe);
544
- // accArray[2 * i + 1] -= strength * (targetY - node.y);
545
- // });
546
- // };
547
- Force2Layout.prototype.updateVelocity = function (accArray, velArray, stepInterval) {
548
- var self = this;
549
- var nodes = self.nodes, damping = self.damping, maxSpeed = self.maxSpeed;
550
- if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length))
551
- return;
552
- nodes.forEach(function (_, i) {
553
- var vx = (velArray[2 * i] + accArray[2 * i] * stepInterval) * damping || 0.01;
554
- var vy = (velArray[2 * i + 1] + accArray[2 * i + 1] * stepInterval) * damping || 0.01;
555
- var vLength = Math.sqrt(vx * vx + vy * vy);
556
- if (vLength > maxSpeed) {
557
- var param2 = maxSpeed / vLength;
558
- vx = param2 * vx;
559
- vy = param2 * vy;
560
- }
561
- velArray[2 * i] = vx;
562
- velArray[2 * i + 1] = vy;
563
- });
564
- };
565
- Force2Layout.prototype.updatePosition = function (velArray, stepInterval) {
566
- var self = this;
567
- var nodes = self.nodes, distanceThresholdMode = self.distanceThresholdMode, nodeMap = self.nodeMap;
568
- if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length)) {
569
- this.judgingDistance = 0;
570
- return;
571
- }
572
- var sum = 0;
573
- if (distanceThresholdMode === 'max')
574
- self.judgingDistance = -Infinity;
575
- else if (distanceThresholdMode === 'min')
576
- self.judgingDistance = Infinity;
577
- nodes.forEach(function (node, i) {
578
- var mappedNode = nodeMap[node.id];
579
- if ((0, util_1.isNumber)(node.fx) && (0, util_1.isNumber)(node.fy)) {
580
- node.x = node.fx;
581
- node.y = node.fy;
582
- mappedNode.x = node.x;
583
- mappedNode.y = node.y;
584
- return;
585
- }
586
- var distX = velArray[2 * i] * stepInterval;
587
- var distY = velArray[2 * i + 1] * stepInterval;
588
- node.x += distX;
589
- node.y += distY;
590
- mappedNode.x = node.x;
591
- mappedNode.y = node.y;
592
- var distanceMagnitude = Math.sqrt(distX * distX + distY * distY);
593
- switch (distanceThresholdMode) {
594
- case 'max':
595
- if (self.judgingDistance < distanceMagnitude)
596
- self.judgingDistance = distanceMagnitude;
597
- break;
598
- case 'min':
599
- if (self.judgingDistance > distanceMagnitude)
600
- self.judgingDistance = distanceMagnitude;
601
- break;
602
- default:
603
- sum = sum + distanceMagnitude;
604
- break;
605
- }
606
- });
607
- if (!distanceThresholdMode || distanceThresholdMode === 'mean')
608
- self.judgingDistance = sum / nodes.length;
609
- };
610
- Force2Layout.prototype.stop = function () {
611
- if (this.timeInterval && typeof window !== "undefined") {
612
- window.clearInterval(this.timeInterval);
613
- }
614
- };
615
- Force2Layout.prototype.destroy = function () {
616
- var self = this;
617
- self.stop();
618
- self.tick = null;
619
- self.nodes = null;
620
- self.edges = null;
621
- self.destroyed = true;
622
- };
623
- Force2Layout.prototype.getType = function () {
624
- return "force2";
625
- };
626
- Force2Layout.prototype.getSameTypeLeafMap = function () {
627
- var _a = this, nodeClusterBy = _a.nodeClusterBy, nodes = _a.nodes, edges = _a.edges, nodeMap = _a.nodeMap, degreesMap = _a.degreesMap;
628
- if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length))
629
- return;
630
- // eslint-disable-next-line
631
- var sameTypeLeafMap = {};
632
- nodes.forEach(function (node, i) {
633
- var degree = degreesMap[node.id].all;
634
- if (degree === 1) {
635
- sameTypeLeafMap[node.id] = (0, util_1.getCoreNodeAndRelativeLeafNodes)('leaf', node, edges, nodeClusterBy, degreesMap, nodeMap);
636
- }
637
- });
638
- return sameTypeLeafMap;
639
- };
640
- return Force2Layout;
641
- }(base_1.Base));
642
- exports.Force2Layout = Force2Layout;
643
- //# sourceMappingURL=index.js.map