@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,289 +0,0 @@
1
- /**
2
- * @fileOverview concentric layout
3
- * @author shiwu.wyy@antfin.com
4
- * this algorithm refers to <cytoscape.js> - https://github.com/cytoscape/cytoscape.js/
5
- */
6
-
7
- import {
8
- OutNode,
9
- Edge,
10
- PointTuple,
11
- Size,
12
- IndexMap,
13
- ConcentricLayoutOptions
14
- } from "./types";
15
- import { isString, isArray, isNumber, getDegree, isObject, isFunction } from "../util";
16
- import { Base } from "./base";
17
-
18
- type INode = OutNode & {
19
- degree: number;
20
- size: number | PointTuple | Size;
21
- };
22
-
23
- type NodeMap = {
24
- [key: string]: INode;
25
- };
26
-
27
- /**
28
- * 同心圆布局
29
- */
30
- export class ConcentricLayout extends Base {
31
- /** 布局中心 */
32
- public center: PointTuple;
33
-
34
- public nodeSize: number | PointTuple = 30;
35
-
36
- /** min spacing between outside of nodes (used for radius adjustment) */
37
- public minNodeSpacing: number = 10;
38
-
39
- /** same as minNodeSpacing. min spacing between outside of nodes (used for radius adjustment) */
40
- public nodeSpacing: number | number[] | ((d?: unknown) => number) | undefined = 10;
41
-
42
- /** prevents node overlap, may overflow boundingBox if not enough space */
43
- public preventOverlap: boolean = false;
44
-
45
- /** how many radians should be between the first and last node (defaults to full circle) */
46
- public sweep: number | undefined;
47
-
48
- /** whether levels have an equal radial distance betwen them, may cause bounding box overflow */
49
- public equidistant: boolean = false;
50
-
51
- /** where nodes start in radians */
52
- public startAngle: number = (3 / 2) * Math.PI;
53
-
54
- /** whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) */
55
- public clockwise: boolean = true;
56
-
57
- /** the letiation of concentric values in each level */
58
- public maxLevelDiff: undefined | number;
59
-
60
- /** 根据 sortBy 指定的属性进行排布,数值高的放在中心,如果是 sortBy 则会计算节点度数,度数最高的放在中心 */
61
- public sortBy: string = "degree";
62
-
63
- public nodes: INode[] = [];
64
-
65
- public edges: Edge[] = [];
66
-
67
- public width: number = 300;
68
-
69
- public height: number = 300;
70
-
71
- /** 迭代结束的回调函数 */
72
- public onLayoutEnd: () => void = () => {};
73
-
74
- private maxValueNode: INode | undefined;
75
-
76
- private counterclockwise: boolean | undefined;
77
-
78
- constructor(options?: ConcentricLayoutOptions) {
79
- super();
80
- this.updateCfg(options);
81
- }
82
-
83
- public getDefaultCfg() {
84
- return {
85
- nodeSize: 30,
86
- minNodeSpacing: 10,
87
- nodeSpacing: 10,
88
- preventOverlap: false,
89
- sweep: undefined,
90
- equidistant: false,
91
- startAngle: (3 / 2) * Math.PI,
92
- clockwise: true,
93
- maxLevelDiff: undefined,
94
- sortBy: "degree"
95
- };
96
- }
97
-
98
- /**
99
- * 执行布局
100
- */
101
- public execute() {
102
- const self = this;
103
- const { nodes, edges } = self;
104
- const n = nodes.length;
105
- if (n === 0) {
106
- self.onLayoutEnd?.();
107
- return;
108
- }
109
-
110
- if (!self.width && typeof window !== "undefined") {
111
- self.width = window.innerWidth;
112
- }
113
- if (!self.height && typeof window !== "undefined") {
114
- self.height = window.innerHeight;
115
- }
116
- if (!self.center) {
117
- self.center = [self.width / 2, self.height / 2];
118
- }
119
- const center = self.center;
120
-
121
- if (n === 1) {
122
- nodes[0].x = center[0];
123
- nodes[0].y = center[1];
124
- self.onLayoutEnd?.();
125
- return;
126
- }
127
-
128
- const { nodeSize, nodeSpacing } = self;
129
-
130
- const layoutNodes: INode[] = [];
131
- let maxNodeSize: number;
132
- let maxNodeSpacing: number = 0;
133
- if (isArray(nodeSize)) {
134
- maxNodeSize = Math.max(nodeSize[0], nodeSize[1]);
135
- } else {
136
- maxNodeSize = nodeSize;
137
- }
138
- if (isArray(nodeSpacing)) {
139
- maxNodeSpacing = Math.max(nodeSpacing[0], nodeSpacing[1]);
140
- } else if (isNumber(nodeSpacing)) {
141
- maxNodeSpacing = nodeSpacing;
142
- }
143
- nodes.forEach((node) => {
144
- layoutNodes.push(node);
145
- let nodeSize: number = maxNodeSize;
146
- if (isArray(node.size)) {
147
- nodeSize = Math.max(node.size[0], node.size[1]);
148
- } else if (isNumber(node.size)) {
149
- nodeSize = node.size;
150
- } else if (isObject(node.size)) {
151
- nodeSize = Math.max((node.size as any).width, (node.size as any).height);
152
- }
153
- maxNodeSize = Math.max(maxNodeSize, nodeSize);
154
-
155
- if (isFunction(nodeSpacing)) {
156
- maxNodeSpacing = Math.max(nodeSpacing(node), maxNodeSpacing);
157
- }
158
- });
159
-
160
- self.clockwise =
161
- self.counterclockwise !== undefined
162
- ? !self.counterclockwise
163
- : self.clockwise;
164
-
165
- // layout
166
- const nodeMap: NodeMap = {};
167
- const indexMap: IndexMap = {};
168
- layoutNodes.forEach((node, i) => {
169
- nodeMap[node.id] = node;
170
- indexMap[node.id] = i;
171
- });
172
-
173
- // get the node degrees
174
- if (
175
- self.sortBy === "degree" ||
176
- !isString(self.sortBy) ||
177
- (layoutNodes[0] as any)[self.sortBy] === undefined
178
- ) {
179
- self.sortBy = "degree";
180
- if (!isNumber(nodes[0].degree)) {
181
- const values = getDegree(nodes.length, indexMap, edges);
182
- layoutNodes.forEach((node, i) => {
183
- node.degree = values[i].all;
184
- });
185
- }
186
- }
187
- // sort nodes by value
188
- layoutNodes.sort(
189
- (n1: INode, n2: INode) =>
190
- (n2 as any)[self.sortBy] - (n1 as any)[self.sortBy]
191
- );
192
-
193
- self.maxValueNode = layoutNodes[0];
194
-
195
- self.maxLevelDiff =
196
- self.maxLevelDiff || (self.maxValueNode as any)[self.sortBy] / 4;
197
-
198
- // put the values into levels
199
- const levels: any[] = [[]];
200
- let currentLevel = levels[0];
201
- layoutNodes.forEach((node) => {
202
- if (currentLevel.length > 0) {
203
- const diff = Math.abs(
204
- currentLevel[0][self.sortBy] - (node as any)[self.sortBy]
205
- );
206
- if (self.maxLevelDiff && diff >= self.maxLevelDiff) {
207
- currentLevel = [];
208
- levels.push(currentLevel);
209
- }
210
- }
211
- currentLevel.push(node);
212
- });
213
-
214
- // create positions for levels
215
- let minDist = maxNodeSize + (maxNodeSpacing || self.minNodeSpacing); // min dist between nodes
216
- if (!self.preventOverlap) {
217
- // then strictly constrain to bb
218
- const firstLvlHasMulti = levels.length > 0 && levels[0].length > 1;
219
- const maxR = Math.min(self.width, self.height) / 2 - minDist;
220
- const rStep = maxR / (levels.length + (firstLvlHasMulti ? 1 : 0));
221
-
222
- minDist = Math.min(minDist, rStep);
223
- }
224
-
225
- // find the metrics for each level
226
- let r = 0;
227
- levels.forEach((level) => {
228
- let sweep = self.sweep;
229
- if (sweep === undefined) {
230
- sweep = 2 * Math.PI - (2 * Math.PI) / level.length;
231
- }
232
- const dTheta = (level.dTheta = sweep / Math.max(1, level.length - 1));
233
-
234
- // calculate the radius
235
- if (level.length > 1 && self.preventOverlap) {
236
- // but only if more than one node (can't overlap)
237
- const dcos = Math.cos(dTheta) - Math.cos(0);
238
- const dsin = Math.sin(dTheta) - Math.sin(0);
239
- const rMin = Math.sqrt(
240
- (minDist * minDist) / (dcos * dcos + dsin * dsin)
241
- ); // s.t. no nodes overlapping
242
-
243
- r = Math.max(rMin, r);
244
- }
245
- level.r = r;
246
- r += minDist;
247
- });
248
-
249
- if (self.equidistant) {
250
- let rDeltaMax = 0;
251
- let rr = 0;
252
- for (let i = 0; i < levels.length; i++) {
253
- const level = levels[i];
254
- const rDelta = level.r - rr;
255
- rDeltaMax = Math.max(rDeltaMax, rDelta);
256
- }
257
- rr = 0;
258
- levels.forEach((level, i) => {
259
- if (i === 0) {
260
- rr = level.r;
261
- }
262
- level.r = rr;
263
- rr += rDeltaMax;
264
- });
265
- }
266
-
267
- // calculate the node positions
268
- levels.forEach((level) => {
269
- const dTheta = level.dTheta;
270
- const rr = level.r;
271
- level.forEach((node: INode, j: number) => {
272
- const theta = self.startAngle + (self.clockwise ? 1 : -1) * dTheta * j;
273
- node.x = center[0] + rr * Math.cos(theta);
274
- node.y = center[1] + rr * Math.sin(theta);
275
- });
276
- });
277
-
278
- if (self.onLayoutEnd) self.onLayoutEnd();
279
-
280
- return {
281
- nodes,
282
- edges
283
- };
284
- }
285
-
286
- public getType() {
287
- return "concentric";
288
- }
289
- }
@@ -1,22 +0,0 @@
1
- /** layout message type */
2
- export const LAYOUT_MESSAGE = {
3
- // run layout
4
- RUN: "LAYOUT_RUN",
5
- // layout ended with success
6
- END: "LAYOUT_END",
7
- // layout error
8
- ERROR: "LAYOUT_ERROR",
9
- // layout tick, used in force directed layout
10
- TICK: "LAYOUT_TICK",
11
- GPURUN: "GPU_LAYOUT_RUN",
12
- GPUEND: "GPU_LAYOUT_END"
13
- };
14
-
15
- export const FORCE_LAYOUT_TYPE_MAP: { [key: string]: boolean } = {
16
- 'gForce': true,
17
- 'force2': true,
18
- 'fruchterman': true,
19
- 'forceAtlas2': true,
20
- 'force': true,
21
- 'graphin-force': true,
22
- };
@@ -1,104 +0,0 @@
1
- import { Graph as RawGraph } from "@antv/graphlib";
2
-
3
- export class Graph extends RawGraph<
4
- string,
5
- Node<Record<string, any>> & NodeConfig,
6
- Partial<EdgeConfig & Edge & GraphEdge>,
7
- Partial<GraphLabel>
8
- > {}
9
-
10
- export interface GraphLabel {
11
- width?: number | undefined;
12
- height?: number | undefined;
13
- compound?: boolean | undefined;
14
- rankdir?: string | undefined;
15
- align?: string | undefined;
16
- nodesep?: number | undefined;
17
- edgesep?: number | undefined;
18
- ranksep?: number | undefined;
19
- marginx?: number | undefined;
20
- marginy?: number | undefined;
21
- acyclicer?: string | undefined;
22
- ranker?: string | undefined;
23
- maxRank?: number;
24
- nestingRoot?: string;
25
- nodeRankFactor?: number;
26
- dummyChains?: string[];
27
- root?: string;
28
- }
29
-
30
- export interface NodeConfig {
31
- width?: number | undefined;
32
- height?: number | undefined;
33
- }
34
-
35
- export interface EdgeConfig {
36
- minlen?: number | undefined;
37
- weight?: number | undefined;
38
- width?: number | undefined;
39
- height?: number | undefined;
40
- lablepos?: "l" | "c" | "r" | undefined;
41
- labeloffest?: number | undefined;
42
- }
43
-
44
- export interface CustomConfig {
45
- edgeLabelSpace?: boolean | undefined;
46
- keepNodeOrder?: boolean | undefined;
47
- nodeOrder?: string[] | undefined;
48
- prevGraph?: Graph | undefined;
49
- }
50
-
51
- export type layout = (
52
- graph: Graph,
53
- layout?: GraphLabel & NodeConfig & EdgeConfig & CustomConfig
54
- ) => void;
55
-
56
- export interface Edge {
57
- v: string;
58
- w: string;
59
- name?: string | undefined;
60
- label?: any;
61
- e?: any;
62
- }
63
-
64
- export interface GraphEdge {
65
- points: { x: number; y: number }[];
66
- [key: string]: any;
67
- }
68
-
69
- export type Node<T = {}> = T & {
70
- x?: number;
71
- y?: number;
72
- width?: number;
73
- height?: number;
74
- class?: string | undefined;
75
- label?: any;
76
- padding?: number | undefined;
77
- paddingX?: number | undefined;
78
- paddingY?: number | undefined;
79
- rx?: number | undefined;
80
- ry?: number | undefined;
81
- shape?: string | undefined;
82
- order?: number;
83
- rank?: number;
84
- in?: number;
85
- out?: number;
86
- fixorder?: number;
87
- _order?: number;
88
- _rank?: number;
89
- dummy?: string;
90
- selfEdges?: any;
91
- borderTop?: any;
92
- borderBottom?: any;
93
- borderLeft?: any;
94
- borderRight?: any;
95
- minRank?: number;
96
- maxRank?: number;
97
- layer?: number;
98
- edgeLabel?: any;
99
- edgeObj?: Edge;
100
- borderType?: string;
101
- labelpos?: string;
102
- parent?: string;
103
- lim?: number;
104
- };
@@ -1,31 +0,0 @@
1
- /*
2
- Copyright (c) 2012-2014 Chris Pettitt
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is
9
- furnished to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in
12
- all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- THE SOFTWARE.
21
- */
22
- import layout from './src/layout';
23
- import { time, notime } from './src/util';
24
-
25
- export default {
26
- layout,
27
- util: {
28
- time,
29
- notime
30
- },
31
- };
@@ -1,58 +0,0 @@
1
- import { Edge, Graph } from "../graph";
2
- import greedyFAS from "./greedy-fas";
3
-
4
- const run = (g: Graph) => {
5
- const weightFn = (g: Graph) => {
6
- return (e: Edge) => g.edge(e)?.weight || 1;
7
- };
8
- const fas =
9
- g.graph().acyclicer === "greedy" ? greedyFAS(g, weightFn(g)) : dfsFAS(g);
10
- fas?.forEach((e: Edge) => {
11
- const label = g.edge(e)!;
12
- g.removeEdgeObj(e);
13
- label.forwardName = e.name;
14
- label.reversed = true;
15
- g.setEdge(e.w, e.v, label, `rev-${Math.random()}`);
16
- });
17
- };
18
-
19
- const dfsFAS = (g: Graph) => {
20
- const fas: Edge[] = [];
21
- const stack: Record<string, boolean> = {};
22
- const visited: Record<string, boolean> = {};
23
-
24
- const dfs = (v: string) => {
25
- if (visited[v]) {
26
- return;
27
- }
28
- visited[v] = true;
29
- stack[v] = true;
30
- g.outEdges(v)?.forEach((e) => {
31
- if (stack[e.w]) {
32
- fas.push(e);
33
- } else {
34
- dfs(e.w);
35
- }
36
- });
37
- delete stack[v];
38
- };
39
-
40
- g.nodes().forEach(dfs);
41
- return fas;
42
- };
43
-
44
- const undo = (g: Graph) => {
45
- g.edges().forEach((e) => {
46
- const label = g.edge(e)!;
47
- if (label.reversed) {
48
- g.removeEdgeObj(e);
49
-
50
- const forwardName = label.forwardName;
51
- delete label.reversed;
52
- delete label.forwardName;
53
- g.setEdge(e.w, e.v, label, forwardName);
54
- }
55
- });
56
- };
57
-
58
- export default { run, undo };
@@ -1,47 +0,0 @@
1
- import { Graph, Node } from "../graph";
2
- import { addDummyNode } from "./util";
3
-
4
- const addBorderSegments = (g: Graph) => {
5
- const dfs = (v: string) => {
6
- const children = g.children(v);
7
- const node = g.node(v)!;
8
- if (children?.length) {
9
- children.forEach((child) => dfs(child));
10
- }
11
-
12
- if (node.hasOwnProperty("minRank")) {
13
- node.borderLeft = [];
14
- node.borderRight = [];
15
- for (
16
- let rank = node.minRank!, maxRank = node.maxRank! + 1;
17
- rank < maxRank;
18
- rank += 1
19
- ) {
20
- addBorderNode(g, "borderLeft", "_bl", v, node, rank);
21
- addBorderNode(g, "borderRight", "_br", v, node, rank);
22
- }
23
- }
24
- };
25
-
26
- g.children()?.forEach((child) => dfs(child));
27
- };
28
-
29
- const addBorderNode = (
30
- g: Graph,
31
- prop: string,
32
- prefix: string,
33
- sg: string,
34
- sgNode: Node<Record<string, any>>,
35
- rank: number
36
- ) => {
37
- const label = { rank, borderType: prop, width: 0, height: 0 };
38
- const prev = sgNode[prop][rank - 1];
39
- const curr = addDummyNode(g, "border", label, prefix);
40
- sgNode[prop][rank] = curr;
41
- g.setParent(curr, sg);
42
- if (prev) {
43
- g.setEdge(prev, curr, { weight: 1 });
44
- }
45
- };
46
-
47
- export default addBorderSegments;
@@ -1,77 +0,0 @@
1
- import { Graph } from "../graph";
2
-
3
- const adjust = (g: Graph) => {
4
- const rankDir = g.graph().rankdir?.toLowerCase();
5
- if (rankDir === "lr" || rankDir === "rl") {
6
- swapWidthHeight(g);
7
- }
8
- };
9
-
10
- const undo = (g: Graph) => {
11
- const rankDir = g.graph().rankdir?.toLowerCase();
12
- if (rankDir === "bt" || rankDir === "rl") {
13
- reverseY(g);
14
- }
15
-
16
- if (rankDir === "lr" || rankDir === "rl") {
17
- swapXY(g);
18
- swapWidthHeight(g);
19
- }
20
- };
21
-
22
- const swapWidthHeight = (g: Graph) => {
23
- g.nodes().forEach((v) => {
24
- swapWidthHeightOne(g.node(v)!);
25
- });
26
- g.edges().forEach((e) => {
27
- swapWidthHeightOne(g.edge(e)!);
28
- });
29
- };
30
-
31
- const swapWidthHeightOne = (attrs: { width?: number; height?: number }) => {
32
- const w = attrs.width;
33
- attrs.width = attrs.height;
34
- attrs.height = w;
35
- };
36
-
37
- const reverseY = (g: Graph) => {
38
- g.nodes().forEach((v) => {
39
- reverseYOne(g.node(v)!);
40
- });
41
-
42
- g.edges().forEach((e) => {
43
- const edge = g.edge(e)!;
44
- edge.points?.forEach((point) => reverseYOne(point));
45
- if (edge.hasOwnProperty("y")) {
46
- reverseYOne(edge as { y: number });
47
- }
48
- });
49
- };
50
-
51
- const reverseYOne = (attrs: { y?: number }) => {
52
- if (attrs?.y) {
53
- attrs.y = -attrs.y;
54
- }
55
- };
56
-
57
- const swapXY = (g: Graph) => {
58
- g.nodes().forEach((v) => {
59
- swapXYOne(g.node(v));
60
- });
61
-
62
- g.edges().forEach((e) => {
63
- const edge = g.edge(e)!;
64
- edge.points?.forEach((point) => swapXYOne(point));
65
- if (edge.hasOwnProperty("x")) {
66
- swapXYOne(edge);
67
- }
68
- });
69
- };
70
-
71
- const swapXYOne = (attrs: any) => {
72
- const x = attrs.x;
73
- attrs.x = attrs.y;
74
- attrs.y = x;
75
- };
76
-
77
- export default { adjust, undo };
@@ -1,60 +0,0 @@
1
- const filterOutLinks = (k: string, v: string) => {
2
- if (k !== "next" && k !== "prev") {
3
- return v;
4
- }
5
- };
6
-
7
- type LinkedNode<T> = {
8
- prev?: LinkedNode<T>;
9
- next?: LinkedNode<T>;
10
- } & T;
11
-
12
- const unlink = <T>(entry: LinkedNode<T>) => {
13
- entry.prev!.next = entry.next;
14
- entry.next!.prev = entry.prev;
15
- delete entry.next;
16
- delete entry.prev;
17
- };
18
-
19
- export default class List<T> {
20
- // a shortcut that next is head and prev is tail
21
- public shortcut: LinkedNode<T>;
22
-
23
- constructor() {
24
- const shortcut: LinkedNode<any> = {};
25
- shortcut.prev = shortcut;
26
- shortcut.next = shortcut.prev;
27
- this.shortcut = shortcut;
28
- }
29
-
30
- public dequeue() {
31
- const shortcut = this.shortcut;
32
- const entry = shortcut.prev;
33
- if (entry && entry !== shortcut) {
34
- unlink(entry);
35
- return entry;
36
- }
37
- }
38
-
39
- public enqueue(entry: LinkedNode<T>) {
40
- const shortcut = this.shortcut;
41
- if (entry.prev && entry.next) {
42
- unlink(entry);
43
- }
44
- entry.next = shortcut.next;
45
- shortcut.next!.prev = entry;
46
- shortcut.next = entry;
47
- entry.prev = shortcut;
48
- }
49
-
50
- public toString() {
51
- const strs = [];
52
- const sentinel = this.shortcut;
53
- let curr = sentinel.prev;
54
- while (curr !== sentinel) {
55
- strs.push(JSON.stringify(curr, filterOutLinks));
56
- curr = curr?.prev;
57
- }
58
- return `[${strs.join(", ")}]`;
59
- }
60
- }