@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,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toNumber = exports.isNaN = exports.isNumber = void 0;
4
- var isNumber = function (val) { return typeof val === 'number'; };
5
- exports.isNumber = isNumber;
6
- var isNaN = function (num) { return Number.isNaN(Number(num)); };
7
- exports.isNaN = isNaN;
8
- var toNumber = function (val) {
9
- var n = parseFloat(val);
10
- return (0, exports.isNaN)(n) ? val : n;
11
- };
12
- exports.toNumber = toNumber;
13
- //# sourceMappingURL=number.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/util/number.ts"],"names":[],"mappings":";;;AAAO,IAAM,QAAQ,GAAG,UAAC,GAAY,IAAoB,OAAA,OAAO,GAAG,KAAK,QAAQ,EAAvB,CAAuB,CAAC;AAApE,QAAA,QAAQ,YAA4D;AAE1E,IAAM,KAAK,GAAG,UAAC,GAAY,IAAK,OAAA,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAzB,CAAyB,CAAC;AAApD,QAAA,KAAK,SAA+C;AAE1D,IAAM,QAAQ,GAAG,UAAC,GAAQ;IAC/B,IAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,IAAA,aAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC;AAHW,QAAA,QAAQ,YAGnB"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.clone = exports.isObject = void 0;
15
- var isObject = function (val) {
16
- return val !== null && typeof val === 'object';
17
- };
18
- exports.isObject = isObject;
19
- var clone = function (target) {
20
- if (target === null) {
21
- return target;
22
- }
23
- if (target instanceof Date) {
24
- return new Date(target.getTime());
25
- }
26
- if (target instanceof Array) {
27
- var cp_1 = [];
28
- target.forEach(function (v) {
29
- cp_1.push(v);
30
- });
31
- return cp_1.map(function (n) { return (0, exports.clone)(n); });
32
- }
33
- if (typeof target === 'object' && Object.keys(target).length) {
34
- var cp_2 = __assign({}, target);
35
- Object.keys(cp_2).forEach(function (k) {
36
- cp_2[k] = (0, exports.clone)(cp_2[k]);
37
- });
38
- return cp_2;
39
- }
40
- return target;
41
- };
42
- exports.clone = clone;
43
- //# sourceMappingURL=object.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/util/object.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAO,IAAM,QAAQ,GAAG,UAAC,GAAY;IACnC,OAAA,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;AAAvC,CAAuC,CAAC;AAD7B,QAAA,QAAQ,YACqB;AAEnC,IAAM,KAAK,GAAG,UAAI,MAAS;IAChC,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,OAAO,MAAM,CAAC;KACf;IACD,IAAI,MAAM,YAAY,IAAI,EAAE;QAC1B,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAQ,CAAC;KAC1C;IACD,IAAI,MAAM,YAAY,KAAK,EAAE;QAC3B,IAAM,IAAE,GAAG,EAAW,CACrB;QAAC,MAAgB,CAAC,OAAO,CAAC,UAAC,CAAC;YAC3B,IAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QACH,OAAO,IAAE,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,IAAA,aAAK,EAAM,CAAC,CAAC,EAAb,CAAa,CAAQ,CAAC;KACjD;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;QAC5D,IAAM,IAAE,GAAG,aAAM,MAAiC,CAEjD,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC;YACxB,IAAE,CAAC,CAAC,CAAC,GAAG,IAAA,aAAK,EAAM,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,IAAO,CAAC;KAChB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAxBW,QAAA,KAAK,SAwBhB"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.camelize = exports.isString = void 0;
4
- var isString = function (val) { return typeof val === 'string'; };
5
- exports.isString = isString;
6
- var cacheStringFunction = function (fn) {
7
- var cache = Object.create(null);
8
- return (function (str) {
9
- var hit = cache[str];
10
- return hit || (cache[str] = fn(str));
11
- });
12
- };
13
- var camelizeRE = /-(\w)/g;
14
- exports.camelize = cacheStringFunction(function (str) {
15
- return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });
16
- });
17
- // export const capitalize = cacheStringFunction(
18
- // (str: string) => str.charAt(0).toUpperCase() + str.slice(1),
19
- // )
20
- //# sourceMappingURL=string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/util/string.ts"],"names":[],"mappings":";;;AAAO,IAAM,QAAQ,GAAG,UAAC,GAAY,IAAoB,OAAA,OAAO,GAAG,KAAK,QAAQ,EAAvB,CAAuB,CAAC;AAApE,QAAA,QAAQ,YAA4D;AAEjF,IAAM,mBAAmB,GAAG,UAAoC,EAAK;IACnE,IAAM,KAAK,GAA2B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO,CAAC,UAAC,GAAW;QAClB,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC,CAAQ,CAAC;AACZ,CAAC,CAAC;AAEF,IAAM,UAAU,GAAG,QAAQ,CAAC;AACf,QAAA,QAAQ,GAAG,mBAAmB,CAAC,UAAC,GAAW;IACtD,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAA1B,CAA0B,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEH,iDAAiD;AACjD,iEAAiE;AACjE,IAAI"}
package/src/index.ts DELETED
@@ -1,7 +0,0 @@
1
- import { registerLayout, unRegisterLayout, getLayoutByName } from "./registy";
2
-
3
- // register layout
4
- export { registerLayout, unRegisterLayout, getLayoutByName };
5
-
6
- // layout, layout types file, worker
7
- export * from "./layout";
@@ -1,57 +0,0 @@
1
- import { Node, Edge, Combo, Model, PointTuple } from './types';
2
-
3
- export class Base {
4
- public nodes: Node[] | null = [];
5
- public edges: Edge[] | null = [];
6
- public combos: Combo[] | null = [];
7
- public comboEdges: Edge[] | null = [];
8
- public hiddenNodes: Node[] | null = [];
9
- public hiddenEdges: Edge[] | null = [];
10
- public hiddenCombos: Combo[] | null = [];
11
- // temp edges e.g. the edge generated for releated collapsed combo
12
- public vedges: Edge[] | null = [];
13
- public positions: PointTuple[] | null = [];
14
- public destroyed: boolean = false;
15
- public onLayoutEnd: () => void = () => { };
16
-
17
- public layout(data: Model): Model {
18
- this.init(data);
19
- return this.execute(true);
20
- }
21
-
22
- public init(data: Model) {
23
- this.nodes = data.nodes || [];
24
- this.edges = data.edges || [];
25
- this.combos = data.combos || [];
26
- this.comboEdges = data.comboEdges || [];
27
- this.hiddenNodes = data.hiddenNodes || [];
28
- this.hiddenEdges = data.hiddenEdges || [];
29
- this.hiddenCombos = data.hiddenCombos || [];
30
- this.vedges = data.vedges || [];
31
- }
32
-
33
- public execute(reloadData?: boolean): any {}
34
- public executeWithWorker() {}
35
-
36
- public getDefaultCfg() {
37
- return {};
38
- }
39
-
40
- public updateCfg(cfg: any) {
41
- if (cfg) {
42
- Object.assign(this, cfg);
43
- }
44
- }
45
-
46
- public getType() {
47
- return 'base';
48
- }
49
-
50
- public destroy() {
51
- this.nodes = null;
52
- this.edges = null;
53
- this.combos = null;
54
- this.positions = null;
55
- this.destroyed = true;
56
- }
57
- }
@@ -1,370 +0,0 @@
1
- /**
2
- * @fileOverview random layout
3
- * @author shiwu.wyy@antfin.com
4
- */
5
-
6
- import {
7
- OutNode,
8
- Edge,
9
- PointTuple,
10
- IndexMap,
11
- CircularLayoutOptions,
12
- Degree
13
- } from "./types";
14
- import { Base } from "./base";
15
- import { getDegree, clone, getEdgeTerminal, getFuncByUnknownType } from "../util";
16
-
17
- type INode = OutNode & {
18
- degree: number;
19
- size: number | PointTuple;
20
- weight: number;
21
- children: string[];
22
- parent: string[];
23
- };
24
-
25
- function initHierarchy(
26
- nodes: INode[],
27
- edges: Edge[],
28
- nodeMap: IndexMap,
29
- directed: boolean
30
- ) {
31
- nodes.forEach((_, i: number) => {
32
- nodes[i].children = [];
33
- nodes[i].parent = [];
34
- });
35
- if (directed) {
36
- edges.forEach((e) => {
37
- const source = getEdgeTerminal(e, 'source');
38
- const target = getEdgeTerminal(e, 'target');
39
- let sourceIdx = 0;
40
- if (source) {
41
- sourceIdx = nodeMap[source];
42
- }
43
- let targetIdx = 0;
44
- if (target) {
45
- targetIdx = nodeMap[target];
46
- }
47
- const child = nodes[sourceIdx].children!;
48
- const parent = nodes[targetIdx].parent!;
49
- child.push(nodes[targetIdx].id);
50
- parent.push(nodes[sourceIdx].id);
51
- });
52
- } else {
53
- edges.forEach((e) => {
54
- const source = getEdgeTerminal(e, 'source');
55
- const target = getEdgeTerminal(e, 'target');
56
- let sourceIdx = 0;
57
- if (source) {
58
- sourceIdx = nodeMap[source];
59
- }
60
- let targetIdx = 0;
61
- if (target) {
62
- targetIdx = nodeMap[target];
63
- }
64
- const sourceChildren = nodes[sourceIdx].children!;
65
- const targetChildren = nodes[targetIdx].children!;
66
- sourceChildren.push(nodes[targetIdx].id);
67
- targetChildren.push(nodes[sourceIdx].id);
68
- });
69
- }
70
- }
71
-
72
- function connect(a: INode, b: INode, edges: Edge[]) {
73
- const m = edges.length;
74
- for (let i = 0; i < m; i++) {
75
- const source = getEdgeTerminal(edges[i], 'source');
76
- const target = getEdgeTerminal(edges[i], 'target');
77
- if (
78
- (a.id === source && b.id === target) ||
79
- (b.id === source && a.id === target)
80
- ) {
81
- return true;
82
- }
83
- }
84
- return false;
85
- }
86
-
87
- function compareDegree(a: INode, b: INode) {
88
- const aDegree = a.degree!;
89
- const bDegree = b.degree!;
90
- if (aDegree < bDegree) {
91
- return -1;
92
- }
93
- if (aDegree > bDegree) {
94
- return 1;
95
- }
96
- return 0;
97
- }
98
-
99
- /**
100
- * 圆形布局
101
- */
102
- export class CircularLayout extends Base {
103
- /** 布局中心 */
104
- public center: PointTuple;
105
-
106
- /** 固定半径,若设置了 radius,则 startRadius 与 endRadius 不起效 */
107
- public radius: number | null = null;
108
-
109
- /** 节点间距,若设置 nodeSpacing,则 radius 将被自动计算,即设置 radius 不生效 */
110
- public nodeSpacing: ((d?: unknown) => number) | number | undefined;
111
-
112
- /** 节点大小,配合 nodeSpacing,一起用于计算 radius。若不配置,节点大小默认为 30 */
113
- public nodeSize: number | undefined = undefined;
114
-
115
- /** 起始半径 */
116
- public startRadius: number | null = null;
117
-
118
- /** 终止半径 */
119
- public endRadius: number | null = null;
120
-
121
- /** 起始角度 */
122
- public startAngle: number = 0;
123
-
124
- /** 终止角度 */
125
- public endAngle: number = 2 * Math.PI;
126
-
127
- /** 是否顺时针 */
128
- public clockwise: boolean = true;
129
-
130
- /** 节点在环上分成段数(几个段将均匀分布),在 endRadius - startRadius != 0 时生效 */
131
- public divisions: number = 1;
132
-
133
- /** 节点在环上排序的依据,可选: 'topology', 'degree', 'null' */
134
- public ordering: "topology" | "topology-directed" | "degree" | null = null;
135
-
136
- /** how many 2*pi from first to last nodes */
137
- public angleRatio = 1;
138
-
139
- public nodes: INode[] = [];
140
-
141
- public edges: Edge[] = [];
142
-
143
- private nodeMap: IndexMap = {};
144
-
145
- private degrees: Degree[] = [];
146
-
147
- public width: number = 300;
148
-
149
- public height: number = 300;
150
-
151
- public onLayoutEnd: () => void;
152
-
153
- constructor(options?: CircularLayoutOptions) {
154
- super();
155
- this.updateCfg(options);
156
- }
157
-
158
- public getDefaultCfg() {
159
- return {
160
- radius: null,
161
- startRadius: null,
162
- endRadius: null,
163
- startAngle: 0,
164
- endAngle: 2 * Math.PI,
165
- clockwise: true,
166
- divisions: 1,
167
- ordering: null,
168
- angleRatio: 1
169
- };
170
- }
171
-
172
- /**
173
- * 执行布局
174
- */
175
- public execute() {
176
- const self = this;
177
- const nodes = self.nodes;
178
- const edges = self.edges;
179
- const n = nodes.length;
180
- if (n === 0) {
181
- if (self.onLayoutEnd) self.onLayoutEnd();
182
- return;
183
- }
184
-
185
- if (!self.width && typeof window !== "undefined") {
186
- self.width = window.innerWidth;
187
- }
188
- if (!self.height && typeof window !== "undefined") {
189
- self.height = window.innerHeight;
190
- }
191
- if (!self.center) {
192
- self.center = [self.width / 2, self.height / 2];
193
- }
194
- const center = self.center;
195
-
196
- if (n === 1) {
197
- nodes[0].x = center[0];
198
- nodes[0].y = center[1];
199
- if (self.onLayoutEnd) self.onLayoutEnd();
200
- return;
201
- }
202
-
203
- let { radius, startRadius, endRadius } = self;
204
- const { divisions, startAngle, endAngle, angleRatio, ordering, clockwise, nodeSpacing: paramNodeSpacing, nodeSize: paramNodeSize } = self;
205
- const angleStep = (endAngle - startAngle) / n;
206
- // layout
207
- const nodeMap: IndexMap = {};
208
- nodes.forEach((node, i) => {
209
- nodeMap[node.id] = i;
210
- });
211
- self.nodeMap = nodeMap;
212
- const degrees = getDegree(nodes.length, nodeMap, edges);
213
- self.degrees = degrees;
214
- if (paramNodeSpacing) {
215
- const nodeSpacing: Function = getFuncByUnknownType(10, paramNodeSpacing);
216
- const nodeSize: Function = getFuncByUnknownType(10, paramNodeSize);
217
- let maxNodeSize = -Infinity;
218
- nodes.forEach((node) => {
219
- const nSize = nodeSize(node);
220
- if (maxNodeSize < nSize) maxNodeSize = nSize;
221
- });
222
- let length = 0;
223
- nodes.forEach((node, i) => {
224
- if (i === 0) length += (maxNodeSize || 10);
225
- else length += (nodeSpacing(node) || 0) + (maxNodeSize || 10);
226
- });
227
- radius = length / (2 * Math.PI);
228
- } else if (!radius && !startRadius && !endRadius) {
229
- radius = self.height > self.width ? self.width / 2 : self.height / 2;
230
- } else if (!startRadius && endRadius) {
231
- startRadius = endRadius;
232
- } else if (startRadius && !endRadius) {
233
- endRadius = startRadius;
234
- }
235
- const astep = angleStep * angleRatio;
236
-
237
- let layoutNodes = [];
238
- if (ordering === "topology") {
239
- // layout according to the topology
240
- layoutNodes = self.topologyOrdering();
241
- } else if (ordering === "topology-directed") {
242
- // layout according to the topology
243
- layoutNodes = self.topologyOrdering(true);
244
- } else if (ordering === "degree") {
245
- // layout according to the descent order of degrees
246
- layoutNodes = self.degreeOrdering();
247
- } else {
248
- // layout according to the original order in the data.nodes
249
- layoutNodes = nodes;
250
- }
251
-
252
- const divN = Math.ceil(n / divisions); // node number in each division
253
- for (let i = 0; i < n; ++i) {
254
- let r = radius;
255
- if (!r && startRadius !== null && endRadius !== null) {
256
- r = startRadius + (i * (endRadius - startRadius)) / (n - 1);
257
- }
258
- if (!r) {
259
- r = 10 + (i * 100) / (n - 1);
260
- }
261
- let angle =
262
- startAngle +
263
- (i % divN) * astep +
264
- ((2 * Math.PI) / divisions) * Math.floor(i / divN);
265
- if (!clockwise) {
266
- angle =
267
- endAngle -
268
- (i % divN) * astep -
269
- ((2 * Math.PI) / divisions) * Math.floor(i / divN);
270
- }
271
- layoutNodes[i].x = center[0] + Math.cos(angle) * r;
272
- layoutNodes[i].y = center[1] + Math.sin(angle) * r;
273
- layoutNodes[i].weight = degrees[i].all;
274
- }
275
-
276
- self.onLayoutEnd?.();
277
-
278
- return {
279
- nodes: layoutNodes,
280
- edges: this.edges
281
- };
282
- }
283
-
284
- /**
285
- * 根据节点的拓扑结构排序
286
- * @return {array} orderedNodes 排序后的结果
287
- */
288
- public topologyOrdering(directed: boolean = false) {
289
- const self = this;
290
- const degrees = self.degrees;
291
- const edges = self.edges;
292
- const nodes = self.nodes;
293
- const cnodes = clone(nodes);
294
- const nodeMap = self.nodeMap;
295
- const orderedCNodes = [cnodes[0]];
296
- const resNodes = [nodes[0]];
297
- const pickFlags: boolean[] = [];
298
- const n = nodes.length;
299
- pickFlags[0] = true;
300
- initHierarchy(cnodes, edges, nodeMap, directed);
301
- let k = 0;
302
- cnodes.forEach((cnode, i) => {
303
- if (i !== 0) {
304
- if (
305
- (i === n - 1 ||
306
- degrees[i].all !== degrees[i + 1].all ||
307
- connect(
308
- orderedCNodes[k],
309
- cnode,
310
- edges
311
- )) &&
312
- !pickFlags[i]
313
- ) {
314
- orderedCNodes.push(cnode);
315
- resNodes.push(nodes[nodeMap[cnode.id]]);
316
- pickFlags[i] = true;
317
- k++;
318
- } else {
319
- const children = orderedCNodes[k].children!;
320
- let foundChild = false;
321
- for (let j = 0; j < children.length; j++) {
322
- const childIdx = nodeMap[children[j]];
323
- if (degrees[childIdx].all === degrees[i].all && !pickFlags[childIdx]) {
324
- orderedCNodes.push(cnodes[childIdx]);
325
- resNodes.push(nodes[nodeMap[cnodes[childIdx].id]]);
326
- pickFlags[childIdx] = true;
327
- foundChild = true;
328
- break;
329
- }
330
- }
331
- let ii = 0;
332
- while (!foundChild) {
333
- if (!pickFlags[ii]) {
334
- orderedCNodes.push(cnodes[ii]);
335
- resNodes.push(nodes[nodeMap[cnodes[ii].id]]);
336
- pickFlags[ii] = true;
337
- foundChild = true;
338
- }
339
- ii++;
340
- if (ii === n) {
341
- break;
342
- }
343
- }
344
- }
345
- }
346
- });
347
- return resNodes;
348
- }
349
-
350
- /**
351
- * 根据节点度数大小排序
352
- * @return {array} orderedNodes 排序后的结果
353
- */
354
- public degreeOrdering(): INode[] {
355
- const self = this;
356
- const nodes = self.nodes;
357
- const orderedNodes: INode[] = [];
358
- const degrees = self.degrees;
359
- nodes.forEach((node, i) => {
360
- node.degree = degrees[i].all;
361
- orderedNodes.push(node);
362
- });
363
- orderedNodes.sort(compareDegree);
364
- return orderedNodes;
365
- }
366
-
367
- public getType() {
368
- return "circular";
369
- }
370
- }