@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,826 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileOverview Combo force 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
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.ComboForceLayout = void 0;
23
- var base_1 = require("./base");
24
- var util_1 = require("../util");
25
- /**
26
- * force layout for graph with combos
27
- */
28
- var ComboForceLayout = /** @class */ (function (_super) {
29
- __extends(ComboForceLayout, _super);
30
- function ComboForceLayout(options) {
31
- var _this = _super.call(this) || this;
32
- /** 布局中心 */
33
- _this.center = [0, 0];
34
- /** 停止迭代的最大迭代数 */
35
- _this.maxIteration = 100;
36
- /** 重力大小,影响图的紧凑程度 */
37
- _this.gravity = 10;
38
- /** 群组中心力大小 */
39
- _this.comboGravity = 10;
40
- /** 默认边长度 */
41
- _this.linkDistance = 10;
42
- /** 每次迭代位移的衰减相关参数 */
43
- _this.alpha = 1;
44
- _this.alphaMin = 0.001;
45
- _this.alphaDecay = 1 - Math.pow(_this.alphaMin, (1 / 300));
46
- _this.alphaTarget = 0;
47
- /** 节点运动速度衰减参数 */
48
- _this.velocityDecay = 0.6;
49
- /** 边引力大小 */
50
- _this.edgeStrength = 0.6;
51
- /** 节点引力大小 */
52
- _this.nodeStrength = 30;
53
- /** 是否开启防止重叠 */
54
- _this.preventOverlap = false;
55
- /** 是否开启节点之间的防止重叠 */
56
- _this.preventNodeOverlap = false;
57
- /** 是否开启 Combo 之间的防止重叠 */
58
- _this.preventComboOverlap = false;
59
- /** 防止重叠的碰撞力大小 */
60
- _this.collideStrength = undefined;
61
- /** 防止重叠的碰撞力大小 */
62
- _this.nodeCollideStrength = 0.5;
63
- /** 防止重叠的碰撞力大小 */
64
- _this.comboCollideStrength = 0.5;
65
- /** Combo 最小间距,防止重叠时的间隙 */
66
- _this.comboSpacing = 20;
67
- /** Combo 内部的 padding */
68
- _this.comboPadding = 10;
69
- /** 优化计算斥力的速度,两节点间距超过 optimizeRangeFactor * width 则不再计算斥力和重叠斥力 */
70
- _this.optimizeRangeFactor = 1;
71
- /** 每次迭代的回调函数 */
72
- _this.onTick = function () { };
73
- /** 迭代结束的回调函数 */
74
- _this.onLayoutEnd = function () { };
75
- /** 根据边两端节点层级差距的调整引力系数的因子,取值范围 [0, 1]。层级差距越大,引力越小 */
76
- _this.depthAttractiveForceScale = 1;
77
- /** 根据边两端节点层级差距的调整斥力系数的因子,取值范围 [1, Infinity]。层级差距越大,斥力越大 */
78
- _this.depthRepulsiveForceScale = 2;
79
- /** 内部计算参数 */
80
- _this.nodes = [];
81
- _this.edges = [];
82
- _this.combos = [];
83
- _this.comboTrees = [];
84
- _this.width = 300;
85
- _this.height = 300;
86
- _this.bias = [];
87
- _this.nodeMap = {};
88
- _this.oriComboMap = {};
89
- _this.indexMap = {};
90
- _this.comboMap = {};
91
- _this.previousLayouted = false;
92
- _this.updateCfg(options);
93
- return _this;
94
- }
95
- ComboForceLayout.prototype.getDefaultCfg = function () {
96
- return {
97
- maxIteration: 100,
98
- center: [0, 0],
99
- gravity: 10,
100
- speed: 1,
101
- comboGravity: 30,
102
- preventOverlap: false,
103
- preventComboOverlap: true,
104
- preventNodeOverlap: true,
105
- nodeSpacing: undefined,
106
- collideStrength: undefined,
107
- nodeCollideStrength: 0.5,
108
- comboCollideStrength: 0.5,
109
- comboSpacing: 20,
110
- comboPadding: 10,
111
- edgeStrength: 0.6,
112
- nodeStrength: 30,
113
- linkDistance: 10
114
- };
115
- };
116
- /**
117
- * 执行布局
118
- */
119
- ComboForceLayout.prototype.execute = function () {
120
- var self = this;
121
- var nodes = self.nodes;
122
- var center = self.center;
123
- self.comboTree = {
124
- id: "comboTreeRoot",
125
- depth: -1,
126
- children: self.comboTrees
127
- };
128
- if (!nodes || nodes.length === 0) {
129
- if (self.onLayoutEnd)
130
- self.onLayoutEnd();
131
- return;
132
- }
133
- if (nodes.length === 1) {
134
- nodes[0].x = center[0];
135
- nodes[0].y = center[1];
136
- if (self.onLayoutEnd)
137
- self.onLayoutEnd();
138
- return;
139
- }
140
- self.initVals();
141
- // layout
142
- self.run();
143
- if (self.onLayoutEnd)
144
- self.onLayoutEnd();
145
- };
146
- ComboForceLayout.prototype.run = function () {
147
- var self = this;
148
- var nodes = self.nodes;
149
- var maxIteration = self.previousLayouted
150
- ? self.maxIteration / 5
151
- : self.maxIteration;
152
- if (!self.width && typeof window !== "undefined") {
153
- self.width = window.innerWidth;
154
- }
155
- if (!self.height && typeof window !== "undefined") {
156
- self.height = window.innerHeight;
157
- }
158
- var center = self.center;
159
- var velocityDecay = self.velocityDecay;
160
- // init the positions to make the nodes with same combo gather around the combo
161
- var comboMap = self.comboMap;
162
- if (!self.previousLayouted)
163
- self.initPos(comboMap);
164
- var _loop_1 = function (i) {
165
- var displacements = [];
166
- nodes.forEach(function (_, j) {
167
- displacements[j] = { x: 0, y: 0 };
168
- });
169
- self.applyCalculate(displacements);
170
- // gravity for combos
171
- self.applyComboCenterForce(displacements);
172
- // move
173
- nodes.forEach(function (n, j) {
174
- if (!(0, util_1.isNumber)(n.x) || !(0, util_1.isNumber)(n.y))
175
- return;
176
- n.x += displacements[j].x * velocityDecay;
177
- n.y += displacements[j].y * velocityDecay;
178
- });
179
- self.alpha += (self.alphaTarget - self.alpha) * self.alphaDecay;
180
- self.onTick();
181
- };
182
- // iterate
183
- for (var i = 0; i < maxIteration; i++) {
184
- _loop_1(i);
185
- }
186
- // move to center
187
- var meanCenter = [0, 0];
188
- nodes.forEach(function (n) {
189
- if (!(0, util_1.isNumber)(n.x) || !(0, util_1.isNumber)(n.y))
190
- return;
191
- meanCenter[0] += n.x;
192
- meanCenter[1] += n.y;
193
- });
194
- meanCenter[0] /= nodes.length;
195
- meanCenter[1] /= nodes.length;
196
- var centerOffset = [center[0] - meanCenter[0], center[1] - meanCenter[1]];
197
- nodes.forEach(function (n, j) {
198
- if (!(0, util_1.isNumber)(n.x) || !(0, util_1.isNumber)(n.y))
199
- return;
200
- n.x += centerOffset[0];
201
- n.y += centerOffset[1];
202
- });
203
- // arrange the empty combo
204
- self.combos.forEach(function (combo) {
205
- var mapped = comboMap[combo.id];
206
- if (mapped && mapped.empty) {
207
- combo.x = mapped.cx || combo.x;
208
- combo.y = mapped.cy || combo.y;
209
- }
210
- });
211
- self.previousLayouted = true;
212
- };
213
- ComboForceLayout.prototype.initVals = function () {
214
- var self = this;
215
- var edges = self.edges;
216
- var nodes = self.nodes;
217
- var combos = self.combos;
218
- var count = {};
219
- var nodeMap = {};
220
- var indexMap = {};
221
- nodes.forEach(function (node, i) {
222
- nodeMap[node.id] = node;
223
- indexMap[node.id] = i;
224
- });
225
- self.nodeMap = nodeMap;
226
- self.indexMap = indexMap;
227
- var oriComboMap = {};
228
- combos.forEach(function (combo) {
229
- oriComboMap[combo.id] = combo;
230
- });
231
- self.oriComboMap = oriComboMap;
232
- self.comboMap = self.getComboMap();
233
- var preventOverlap = self.preventOverlap;
234
- self.preventComboOverlap = self.preventComboOverlap || preventOverlap;
235
- self.preventNodeOverlap = self.preventNodeOverlap || preventOverlap;
236
- var collideStrength = self.collideStrength;
237
- if (collideStrength) {
238
- self.comboCollideStrength = collideStrength;
239
- self.nodeCollideStrength = collideStrength;
240
- }
241
- self.comboCollideStrength = self.comboCollideStrength
242
- ? self.comboCollideStrength
243
- : 0;
244
- self.nodeCollideStrength = self.nodeCollideStrength
245
- ? self.nodeCollideStrength
246
- : 0;
247
- // get edge bias
248
- for (var i = 0; i < edges.length; ++i) {
249
- var source = (0, util_1.getEdgeTerminal)(edges[i], 'source');
250
- var target = (0, util_1.getEdgeTerminal)(edges[i], 'target');
251
- if (count[source])
252
- count[source]++;
253
- else
254
- count[source] = 1;
255
- if (count[target])
256
- count[target]++;
257
- else
258
- count[target] = 1;
259
- }
260
- var bias = [];
261
- for (var i = 0; i < edges.length; ++i) {
262
- var source = (0, util_1.getEdgeTerminal)(edges[i], 'source');
263
- var target = (0, util_1.getEdgeTerminal)(edges[i], 'target');
264
- bias[i] = count[source] / (count[source] + count[target]);
265
- }
266
- this.bias = bias;
267
- var nodeSize = self.nodeSize;
268
- var nodeSpacing = self.nodeSpacing;
269
- var nodeSizeFunc;
270
- var nodeSpacingFunc;
271
- // nodeSpacing to function
272
- if ((0, util_1.isNumber)(nodeSpacing)) {
273
- nodeSpacingFunc = function () { return nodeSpacing; };
274
- }
275
- else if ((0, util_1.isFunction)(nodeSpacing)) {
276
- nodeSpacingFunc = nodeSpacing;
277
- }
278
- else {
279
- nodeSpacingFunc = function () { return 0; };
280
- }
281
- this.nodeSpacing = nodeSpacingFunc;
282
- // nodeSize to function
283
- if (!nodeSize) {
284
- nodeSizeFunc = function (d) {
285
- if (d.size) {
286
- if ((0, util_1.isArray)(d.size)) {
287
- var res = d.size[0] > d.size[1] ? d.size[0] : d.size[1];
288
- return res / 2;
289
- }
290
- if ((0, util_1.isObject)(d.size)) {
291
- var res = d.size.width > d.size.height ? d.size.width : d.size.height;
292
- return res / 2;
293
- }
294
- return d.size / 2;
295
- }
296
- return 10;
297
- };
298
- }
299
- else if ((0, util_1.isFunction)(nodeSize)) {
300
- nodeSizeFunc = function (d) {
301
- return nodeSize(d);
302
- };
303
- }
304
- else if ((0, util_1.isArray)(nodeSize)) {
305
- var larger = nodeSize[0] > nodeSize[1] ? nodeSize[0] : nodeSize[1];
306
- var radius_1 = larger / 2;
307
- nodeSizeFunc = function (d) { return radius_1; };
308
- }
309
- else {
310
- // number type
311
- var radius_2 = nodeSize / 2;
312
- nodeSizeFunc = function (d) { return radius_2; };
313
- }
314
- this.nodeSize = nodeSizeFunc;
315
- // comboSpacing to function
316
- var comboSpacing = self.comboSpacing;
317
- var comboSpacingFunc;
318
- if ((0, util_1.isNumber)(comboSpacing)) {
319
- comboSpacingFunc = function () { return comboSpacing; };
320
- }
321
- else if ((0, util_1.isFunction)(comboSpacing)) {
322
- comboSpacingFunc = comboSpacing;
323
- }
324
- else {
325
- // null type
326
- comboSpacingFunc = function () { return 0; };
327
- }
328
- this.comboSpacing = comboSpacingFunc;
329
- // comboPadding to function
330
- var comboPadding = self.comboPadding;
331
- var comboPaddingFunc;
332
- if ((0, util_1.isNumber)(comboPadding)) {
333
- comboPaddingFunc = function () { return comboPadding; };
334
- }
335
- else if ((0, util_1.isArray)(comboPadding)) {
336
- comboPaddingFunc = function () { return Math.max.apply(null, comboPadding); };
337
- }
338
- else if ((0, util_1.isFunction)(comboPadding)) {
339
- comboPaddingFunc = comboPadding;
340
- }
341
- else {
342
- // null type
343
- comboPaddingFunc = function () { return 0; };
344
- }
345
- this.comboPadding = comboPaddingFunc;
346
- // linkDistance to function
347
- var linkDistance = this.linkDistance;
348
- var linkDistanceFunc;
349
- if (!linkDistance) {
350
- linkDistance = 10;
351
- }
352
- if ((0, util_1.isNumber)(linkDistance)) {
353
- linkDistanceFunc = function (d) {
354
- return linkDistance;
355
- };
356
- }
357
- else {
358
- linkDistanceFunc = linkDistance;
359
- }
360
- this.linkDistance = linkDistanceFunc;
361
- // linkStrength to function
362
- var edgeStrength = this.edgeStrength;
363
- var edgeStrengthFunc;
364
- if (!edgeStrength) {
365
- edgeStrength = 1;
366
- }
367
- if ((0, util_1.isNumber)(edgeStrength)) {
368
- edgeStrengthFunc = function (d) {
369
- return edgeStrength;
370
- };
371
- }
372
- else {
373
- edgeStrengthFunc = edgeStrength;
374
- }
375
- this.edgeStrength = edgeStrengthFunc;
376
- // nodeStrength to function
377
- var nodeStrength = this.nodeStrength;
378
- var nodeStrengthFunc;
379
- if (!nodeStrength) {
380
- nodeStrength = 30;
381
- }
382
- if ((0, util_1.isNumber)(nodeStrength)) {
383
- nodeStrengthFunc = function (d) {
384
- return nodeStrength;
385
- };
386
- }
387
- else {
388
- nodeStrengthFunc = nodeStrength;
389
- }
390
- this.nodeStrength = nodeStrengthFunc;
391
- };
392
- ComboForceLayout.prototype.initPos = function (comboMap) {
393
- var self = this;
394
- var nodes = self.nodes;
395
- nodes.forEach(function (node, i) {
396
- var comboId = node.comboId;
397
- var combo = comboMap[comboId];
398
- if (comboId && combo) {
399
- node.x = combo.cx + 100 / (i + 1);
400
- node.y = combo.cy + 100 / (i + 1);
401
- }
402
- else {
403
- node.x = 100 / (i + 1);
404
- node.y = 100 / (i + 1);
405
- }
406
- });
407
- };
408
- ComboForceLayout.prototype.getComboMap = function () {
409
- var self = this;
410
- var nodeMap = self.nodeMap;
411
- var comboTrees = self.comboTrees;
412
- var oriComboMap = self.oriComboMap;
413
- var comboMap = {};
414
- (comboTrees || []).forEach(function (ctree) {
415
- var treeChildren = [];
416
- (0, util_1.traverseTreeUp)(ctree, function (treeNode) {
417
- if (treeNode.itemType === "node")
418
- return true; // skip it
419
- if (!oriComboMap[treeNode.id])
420
- return true; // means it is hidden, skip it
421
- if (comboMap[treeNode.id] === undefined) {
422
- var combo = {
423
- id: treeNode.id,
424
- name: treeNode.id,
425
- cx: 0,
426
- cy: 0,
427
- count: 0,
428
- depth: self.oriComboMap[treeNode.id].depth || 0,
429
- children: []
430
- };
431
- comboMap[treeNode.id] = combo;
432
- }
433
- var children = treeNode.children;
434
- if (children) {
435
- children.forEach(function (child) {
436
- if (!comboMap[child.id] && !nodeMap[child.id])
437
- return true; // means it is hidden
438
- treeChildren.push(child);
439
- });
440
- }
441
- var c = comboMap[treeNode.id];
442
- c.cx = 0;
443
- c.cy = 0;
444
- if (treeChildren.length === 0) {
445
- c.empty = true;
446
- var oriCombo = oriComboMap[treeNode.id];
447
- c.cx = oriCombo.x;
448
- c.cy = oriCombo.y;
449
- }
450
- treeChildren.forEach(function (child) {
451
- c.count++;
452
- if (child.itemType !== "node") {
453
- var childCombo = comboMap[child.id];
454
- if ((0, util_1.isNumber)(childCombo.cx))
455
- c.cx += childCombo.cx;
456
- if ((0, util_1.isNumber)(childCombo.cy))
457
- c.cy += childCombo.cy;
458
- return;
459
- }
460
- var node = nodeMap[child.id];
461
- // means the node is hidden, skip it
462
- if (!node)
463
- return;
464
- if ((0, util_1.isNumber)(node.x)) {
465
- c.cx += node.x;
466
- }
467
- if ((0, util_1.isNumber)(node.y)) {
468
- c.cy += node.y;
469
- }
470
- });
471
- c.cx /= (c.count || 1);
472
- c.cy /= (c.count || 1);
473
- c.children = treeChildren;
474
- return true;
475
- });
476
- });
477
- return comboMap;
478
- };
479
- ComboForceLayout.prototype.applyComboCenterForce = function (displacements) {
480
- var self = this;
481
- var gravity = self.gravity;
482
- var comboGravity = self.comboGravity || gravity;
483
- var alpha = this.alpha;
484
- var comboTrees = self.comboTrees;
485
- var indexMap = self.indexMap;
486
- var nodeMap = self.nodeMap;
487
- var comboMap = self.comboMap;
488
- (comboTrees || []).forEach(function (ctree) {
489
- (0, util_1.traverseTreeUp)(ctree, function (treeNode) {
490
- if (treeNode.itemType === "node")
491
- return true; // skip it
492
- var combo = comboMap[treeNode.id];
493
- // means the combo is hidden, skip it
494
- if (!combo)
495
- return true;
496
- var c = comboMap[treeNode.id];
497
- // higher depth the combo, larger the gravity
498
- var gravityScale = ((c.depth + 1) / 10) * 0.5;
499
- // apply combo center force for all the descend nodes in this combo
500
- // and update the center position and count for this combo
501
- var comboX = c.cx;
502
- var comboY = c.cy;
503
- c.cx = 0;
504
- c.cy = 0;
505
- c.children.forEach(function (child) {
506
- if (child.itemType !== "node") {
507
- var childCombo = comboMap[child.id];
508
- if (childCombo && (0, util_1.isNumber)(childCombo.cx))
509
- c.cx += childCombo.cx;
510
- if (childCombo && (0, util_1.isNumber)(childCombo.cy))
511
- c.cy += childCombo.cy;
512
- return;
513
- }
514
- var node = nodeMap[child.id];
515
- var vecX = (node.x - comboX) || 0.005;
516
- var vecY = (node.y - comboY) || 0.005;
517
- var l = Math.sqrt(vecX * vecX + vecY * vecY);
518
- var childIdx = indexMap[node.id];
519
- var params = ((comboGravity * alpha) / l) * gravityScale;
520
- displacements[childIdx].x -= vecX * params;
521
- displacements[childIdx].y -= vecY * params;
522
- if ((0, util_1.isNumber)(node.x))
523
- c.cx += node.x;
524
- if ((0, util_1.isNumber)(node.y))
525
- c.cy += node.y;
526
- });
527
- c.cx /= (c.count || 1);
528
- c.cy /= (c.count || 1);
529
- return true;
530
- });
531
- });
532
- };
533
- ComboForceLayout.prototype.applyCalculate = function (displacements) {
534
- var self = this;
535
- var comboMap = self.comboMap;
536
- var nodes = self.nodes;
537
- // store the vx, vy, and distance to reduce dulplicate calculation
538
- var vecMap = {};
539
- nodes.forEach(function (v, i) {
540
- nodes.forEach(function (u, j) {
541
- if (i < j)
542
- return;
543
- var vx = (v.x - u.x) || 0.005;
544
- var vy = (v.y - u.y) || 0.005;
545
- var vl2 = vx * vx + vy * vy;
546
- var vl = Math.sqrt(vl2);
547
- if (vl2 < 1)
548
- vl2 = vl;
549
- vecMap["".concat(v.id, "-").concat(u.id)] = { vx: vx, vy: vy, vl2: vl2, vl: vl };
550
- vecMap["".concat(u.id, "-").concat(v.id)] = { vl2: vl2, vl: vl, vx: -vx, vy: -vy };
551
- });
552
- });
553
- // get the sizes of the combos
554
- self.updateComboSizes(comboMap);
555
- self.calRepulsive(displacements, vecMap);
556
- self.calAttractive(displacements, vecMap);
557
- var preventComboOverlap = self.preventComboOverlap;
558
- if (preventComboOverlap)
559
- self.comboNonOverlapping(displacements, comboMap);
560
- };
561
- /**
562
- * Update the sizes of the combos according to their children
563
- * Used for combos nonoverlap, but not re-render the combo shapes
564
- */
565
- ComboForceLayout.prototype.updateComboSizes = function (comboMap) {
566
- var self = this;
567
- var comboTrees = self.comboTrees;
568
- var nodeMap = self.nodeMap;
569
- var nodeSize = self.nodeSize;
570
- var comboSpacing = self.comboSpacing;
571
- var comboPadding = self.comboPadding;
572
- (comboTrees || []).forEach(function (ctree) {
573
- var treeChildren = [];
574
- (0, util_1.traverseTreeUp)(ctree, function (treeNode) {
575
- if (treeNode.itemType === "node")
576
- return true; // skip it
577
- var c = comboMap[treeNode.id];
578
- // means the combo is hidden, skip it
579
- if (!c)
580
- return false;
581
- var children = treeNode.children;
582
- if (children) {
583
- children.forEach(function (child) {
584
- // means the combo is hidden.
585
- if (!comboMap[child.id] && !nodeMap[child.id])
586
- return;
587
- treeChildren.push(child);
588
- });
589
- }
590
- c.minX = Infinity;
591
- c.minY = Infinity;
592
- c.maxX = -Infinity;
593
- c.maxY = -Infinity;
594
- treeChildren.forEach(function (child) {
595
- if (child.itemType !== "node")
596
- return true; // skip it
597
- var node = nodeMap[child.id];
598
- if (!node)
599
- return true; // means it is hidden
600
- var r = nodeSize(node);
601
- var nodeMinX = node.x - r;
602
- var nodeMinY = node.y - r;
603
- var nodeMaxX = node.x + r;
604
- var nodeMaxY = node.y + r;
605
- if (c.minX > nodeMinX)
606
- c.minX = nodeMinX;
607
- if (c.minY > nodeMinY)
608
- c.minY = nodeMinY;
609
- if (c.maxX < nodeMaxX)
610
- c.maxX = nodeMaxX;
611
- if (c.maxY < nodeMaxY)
612
- c.maxY = nodeMaxY;
613
- });
614
- var minSize = self.oriComboMap[treeNode.id].size || 10;
615
- if ((0, util_1.isArray)(minSize))
616
- minSize = minSize[0];
617
- var maxLength = Math.max(c.maxX - c.minX, c.maxY - c.minY, minSize);
618
- c.r = maxLength / 2 + comboSpacing(c) / 2 + comboPadding(c);
619
- return true;
620
- });
621
- });
622
- };
623
- /**
624
- * prevent the overlappings among combos
625
- */
626
- ComboForceLayout.prototype.comboNonOverlapping = function (displacements, comboMap) {
627
- var self = this;
628
- var comboTree = self.comboTree;
629
- var comboCollideStrength = self.comboCollideStrength;
630
- var indexMap = self.indexMap;
631
- var nodeMap = self.nodeMap;
632
- (0, util_1.traverseTreeUp)(comboTree, function (treeNode) {
633
- if (!comboMap[treeNode.id] &&
634
- !nodeMap[treeNode.id] &&
635
- treeNode.id !== "comboTreeRoot") {
636
- return false;
637
- } // means it is hidden
638
- var children = treeNode.children;
639
- // 同个子树下的子 combo 间两两对比
640
- if (children && children.length > 1) {
641
- children.forEach(function (v, i) {
642
- if (v.itemType === "node")
643
- return false; // skip it
644
- var cv = comboMap[v.id];
645
- if (!cv)
646
- return; // means it is hidden, skip it
647
- children.forEach(function (u, j) {
648
- if (i <= j)
649
- return false;
650
- if (u.itemType === "node")
651
- return false; // skip it
652
- var cu = comboMap[u.id];
653
- if (!cu)
654
- return false; // means it is hidden, skip it
655
- var vx = (cv.cx - cu.cx) || 0.005;
656
- var vy = (cv.cy - cu.cy) || 0.005;
657
- var l = vx * vx + vy * vy;
658
- var rv = cv.r || 1;
659
- var ru = cu.r || 1;
660
- var r = rv + ru;
661
- var ru2 = ru * ru;
662
- var rv2 = rv * rv;
663
- // overlapping
664
- if (l < r * r) {
665
- var vnodes = v.children;
666
- if (!vnodes || vnodes.length === 0)
667
- return false; // skip it
668
- var unodes_1 = u.children;
669
- if (!unodes_1 || unodes_1.length === 0)
670
- return false; // skip it
671
- var sqrtl = Math.sqrt(l);
672
- var ll = ((r - sqrtl) / sqrtl) * comboCollideStrength;
673
- var xl_1 = vx * ll;
674
- var yl_1 = vy * ll;
675
- var rratio_1 = ru2 / (rv2 + ru2);
676
- var irratio_1 = 1 - rratio_1;
677
- // 两兄弟 combo 的子节点上施加斥力
678
- vnodes.forEach(function (vn) {
679
- if (vn.itemType !== "node")
680
- return false; // skip it
681
- if (!nodeMap[vn.id])
682
- return; // means it is hidden, skip it
683
- var vindex = indexMap[vn.id];
684
- unodes_1.forEach(function (un) {
685
- if (un.itemType !== "node")
686
- return false;
687
- if (!nodeMap[un.id])
688
- return false; // means it is hidden, skip it
689
- var uindex = indexMap[un.id];
690
- displacements[vindex].x += xl_1 * rratio_1;
691
- displacements[vindex].y += yl_1 * rratio_1;
692
- displacements[uindex].x -= xl_1 * irratio_1;
693
- displacements[uindex].y -= yl_1 * irratio_1;
694
- });
695
- });
696
- }
697
- });
698
- });
699
- }
700
- return true;
701
- });
702
- };
703
- /**
704
- * Calculate the repulsive force between each node pair
705
- * @param displacements The array stores the displacements for nodes
706
- * @param vecMap The map stores vector between each node pair
707
- */
708
- ComboForceLayout.prototype.calRepulsive = function (displacements, vecMap) {
709
- var self = this;
710
- var nodes = self.nodes;
711
- var max = self.width * self.optimizeRangeFactor;
712
- var nodeStrength = self.nodeStrength;
713
- var alpha = self.alpha;
714
- var nodeCollideStrength = self.nodeCollideStrength;
715
- var preventNodeOverlap = self.preventNodeOverlap;
716
- var nodeSizeFunc = self.nodeSize;
717
- var nodeSpacingFunc = self.nodeSpacing;
718
- var scale = self.depthRepulsiveForceScale;
719
- var center = self.center;
720
- nodes.forEach(function (v, i) {
721
- if (!v.x || !v.y)
722
- return;
723
- // center gravity
724
- if (center) {
725
- var gravity = self.gravity;
726
- var vecX = (v.x - center[0]) || 0.005;
727
- var vecY = (v.y - center[1]) || 0.005;
728
- var l = Math.sqrt(vecX * vecX + vecY * vecY);
729
- displacements[i].x -= (vecX * gravity * alpha) / l;
730
- displacements[i].y -= (vecY * gravity * alpha) / l;
731
- }
732
- nodes.forEach(function (u, j) {
733
- if (i === j) {
734
- return;
735
- }
736
- if (!u.x || !u.y)
737
- return;
738
- var _a = vecMap["".concat(v.id, "-").concat(u.id)], vl2 = _a.vl2, vl = _a.vl;
739
- if (vl > max)
740
- return;
741
- var _b = vecMap["".concat(v.id, "-").concat(u.id)], vx = _b.vx, vy = _b.vy;
742
- var depthDiff = Math.log(Math.abs(u.depth - v.depth) / 10) + 1 || 1;
743
- depthDiff = depthDiff < 1 ? 1 : depthDiff;
744
- if (u.comboId !== v.comboId)
745
- depthDiff += 1;
746
- var depthParam = depthDiff ? Math.pow(scale, depthDiff) : 1;
747
- var params = ((nodeStrength(u) * alpha) / vl2) * depthParam;
748
- displacements[i].x += vx * params;
749
- displacements[i].y += vy * params;
750
- // prevent node overlappings
751
- if (i < j && preventNodeOverlap) {
752
- var ri = (nodeSizeFunc(v) + nodeSpacingFunc(v)) || 1;
753
- var rj = (nodeSizeFunc(u) + nodeSpacingFunc(u)) || 1;
754
- var r = ri + rj;
755
- if (vl2 < r * r) {
756
- var ll = ((r - vl) / vl) * nodeCollideStrength;
757
- var rj2 = rj * rj;
758
- var rratio = rj2 / (ri * ri + rj2);
759
- var xl = vx * ll;
760
- var yl = vy * ll;
761
- displacements[i].x += xl * rratio;
762
- displacements[i].y += yl * rratio;
763
- rratio = 1 - rratio;
764
- displacements[j].x -= xl * rratio;
765
- displacements[j].y -= yl * rratio;
766
- }
767
- }
768
- });
769
- });
770
- };
771
- /**
772
- * Calculate the attractive force between the node pair with edge
773
- * @param displacements The array stores the displacements for nodes
774
- * @param vecMap The map stores vector between each node pair
775
- */
776
- ComboForceLayout.prototype.calAttractive = function (displacements, vecMap) {
777
- var self = this;
778
- var edges = self.edges;
779
- var linkDistance = self.linkDistance;
780
- var alpha = self.alpha;
781
- var edgeStrength = self.edgeStrength;
782
- var bias = self.bias;
783
- var scale = self.depthAttractiveForceScale;
784
- edges.forEach(function (e, i) {
785
- var source = (0, util_1.getEdgeTerminal)(e, 'source');
786
- var target = (0, util_1.getEdgeTerminal)(e, 'target');
787
- if (!source || !target || source === target)
788
- return;
789
- var uIndex = self.indexMap[source];
790
- var vIndex = self.indexMap[target];
791
- var u = self.nodeMap[source];
792
- var v = self.nodeMap[target];
793
- if (!u || !v)
794
- return;
795
- var depthDiff = u.depth === v.depth ? 0 : Math.log(Math.abs(u.depth - v.depth) / 10);
796
- if (u.comboId === v.comboId) {
797
- depthDiff = depthDiff / 2;
798
- }
799
- var depthParam = depthDiff ? Math.pow(scale, depthDiff) : 1;
800
- if (u.comboId !== v.comboId && depthParam === 1) {
801
- depthParam = scale / 2;
802
- }
803
- else if (u.comboId === v.comboId) {
804
- depthParam = 2;
805
- }
806
- if (!(0, util_1.isNumber)(v.x) || !(0, util_1.isNumber)(u.x) || !(0, util_1.isNumber)(v.y) || !(0, util_1.isNumber)(u.y)) {
807
- return;
808
- }
809
- var _a = vecMap["".concat(target, "-").concat(source)], vl = _a.vl, vx = _a.vx, vy = _a.vy;
810
- var l = ((vl - linkDistance(e)) / vl) * alpha * edgeStrength(e) * depthParam;
811
- var vecX = vx * l;
812
- var vecY = vy * l;
813
- var b = bias[i];
814
- displacements[vIndex].x -= vecX * b;
815
- displacements[vIndex].y -= vecY * b;
816
- displacements[uIndex].x += vecX * (1 - b);
817
- displacements[uIndex].y += vecY * (1 - b);
818
- });
819
- };
820
- ComboForceLayout.prototype.getType = function () {
821
- return "comboForce";
822
- };
823
- return ComboForceLayout;
824
- }(base_1.Base));
825
- exports.ComboForceLayout = ComboForceLayout;
826
- //# sourceMappingURL=comboForce.js.map