@antv/layout 0.3.12 → 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.
- package/README.md +45 -32
- package/dist/3a54d760230d1933f953.worker.js +2 -0
- package/dist/3a54d760230d1933f953.worker.js.map +1 -0
- package/dist/index.min.js +2 -0
- package/dist/index.min.js.map +1 -0
- package/lib/Circular.d.ts +40 -0
- package/lib/Supervisor.d.ts +65 -0
- package/lib/index.d.ts +3 -3
- package/lib/registry.d.ts +3 -0
- package/lib/types.d.ts +128 -0
- package/lib/util/gpu.d.ts +22 -22
- package/lib/util/index.d.ts +6 -6
- package/lib/util/math.d.ts +3 -3
- package/lib/worker.d.ts +3 -0
- package/package.json +21 -95
- package/dist/layout.min.js +0 -3
- package/dist/layout.min.js.LICENSE.txt +0 -1
- package/dist/layout.min.js.map +0 -1
- package/es/index.d.ts +0 -3
- package/es/index.js +0 -6
- package/es/index.js.map +0 -1
- package/es/layout/base.d.ts +0 -22
- package/es/layout/base.js +0 -51
- package/es/layout/base.js.map +0 -1
- package/es/layout/circular.d.ts +0 -80
- package/es/layout/circular.js +0 -314
- package/es/layout/circular.js.map +0 -1
- package/es/layout/comboCombined.d.ts +0 -54
- package/es/layout/comboCombined.js +0 -354
- package/es/layout/comboCombined.js.map +0 -1
- package/es/layout/comboForce.d.ts +0 -134
- package/es/layout/comboForce.js +0 -801
- package/es/layout/comboForce.js.map +0 -1
- package/es/layout/concentric.d.ts +0 -67
- package/es/layout/concentric.js +0 -219
- package/es/layout/concentric.js.map +0 -1
- package/es/layout/constants.d.ts +0 -12
- package/es/layout/constants.js +0 -22
- package/es/layout/constants.js.map +0 -1
- package/es/layout/dagre/graph.d.ts +0 -91
- package/es/layout/dagre/graph.js +0 -4
- package/es/layout/dagre/graph.js.map +0 -1
- package/es/layout/dagre/index.d.ts +0 -8
- package/es/layout/dagre/index.js +0 -31
- package/es/layout/dagre/index.js.map +0 -1
- package/es/layout/dagre/src/acyclic.d.ts +0 -6
- package/es/layout/dagre/src/acyclic.js +0 -52
- package/es/layout/dagre/src/acyclic.js.map +0 -1
- package/es/layout/dagre/src/add-border-segments.d.ts +0 -3
- package/es/layout/dagre/src/add-border-segments.js +0 -32
- package/es/layout/dagre/src/add-border-segments.js.map +0 -1
- package/es/layout/dagre/src/coordinate-system.d.ts +0 -6
- package/es/layout/dagre/src/coordinate-system.js +0 -69
- package/es/layout/dagre/src/coordinate-system.js.map +0 -1
- package/es/layout/dagre/src/data/list.d.ts +0 -12
- package/es/layout/dagre/src/data/list.js +0 -48
- package/es/layout/dagre/src/data/list.js.map +0 -1
- package/es/layout/dagre/src/debug.d.ts +0 -3
- package/es/layout/dagre/src/debug.js +0 -24
- package/es/layout/dagre/src/debug.js.map +0 -1
- package/es/layout/dagre/src/greedy-fas.d.ts +0 -3
- package/es/layout/dagre/src/greedy-fas.js +0 -114
- package/es/layout/dagre/src/greedy-fas.js.map +0 -1
- package/es/layout/dagre/src/layout.d.ts +0 -3
- package/es/layout/dagre/src/layout.js +0 -518
- package/es/layout/dagre/src/layout.js.map +0 -1
- package/es/layout/dagre/src/nesting-graph.d.ts +0 -6
- package/es/layout/dagre/src/nesting-graph.js +0 -117
- package/es/layout/dagre/src/nesting-graph.js.map +0 -1
- package/es/layout/dagre/src/normalize.d.ts +0 -6
- package/es/layout/dagre/src/normalize.js +0 -89
- package/es/layout/dagre/src/normalize.js.map +0 -1
- package/es/layout/dagre/src/order/add-subgraph-constraints.d.ts +0 -3
- package/es/layout/dagre/src/order/add-subgraph-constraints.js +0 -27
- package/es/layout/dagre/src/order/add-subgraph-constraints.js.map +0 -1
- package/es/layout/dagre/src/order/barycenter.d.ts +0 -11
- package/es/layout/dagre/src/order/barycenter.js +0 -24
- package/es/layout/dagre/src/order/barycenter.js.map +0 -1
- package/es/layout/dagre/src/order/build-layer-graph.d.ts +0 -3
- package/es/layout/dagre/src/order/build-layer-graph.js +0 -71
- package/es/layout/dagre/src/order/build-layer-graph.js.map +0 -1
- package/es/layout/dagre/src/order/cross-count.d.ts +0 -3
- package/es/layout/dagre/src/order/cross-count.js +0 -65
- package/es/layout/dagre/src/order/cross-count.js.map +0 -1
- package/es/layout/dagre/src/order/index.d.ts +0 -3
- package/es/layout/dagre/src/order/index.js +0 -91
- package/es/layout/dagre/src/order/index.js.map +0 -1
- package/es/layout/dagre/src/order/init-data-order.d.ts +0 -6
- package/es/layout/dagre/src/order/init-data-order.js +0 -25
- package/es/layout/dagre/src/order/init-data-order.js.map +0 -1
- package/es/layout/dagre/src/order/init-order.d.ts +0 -3
- package/es/layout/dagre/src/order/init-order.js +0 -52
- package/es/layout/dagre/src/order/init-order.js.map +0 -1
- package/es/layout/dagre/src/order/resolve-conflicts.d.ts +0 -19
- package/es/layout/dagre/src/order/resolve-conflicts.js +0 -93
- package/es/layout/dagre/src/order/resolve-conflicts.js.map +0 -1
- package/es/layout/dagre/src/order/sort-subgraph.d.ts +0 -7
- package/es/layout/dagre/src/order/sort-subgraph.js +0 -85
- package/es/layout/dagre/src/order/sort-subgraph.js.map +0 -1
- package/es/layout/dagre/src/order/sort.d.ts +0 -7
- package/es/layout/dagre/src/order/sort.js +0 -68
- package/es/layout/dagre/src/order/sort.js.map +0 -1
- package/es/layout/dagre/src/parent-dummy-chains.d.ts +0 -3
- package/es/layout/dagre/src/parent-dummy-chains.js +0 -81
- package/es/layout/dagre/src/parent-dummy-chains.js.map +0 -1
- package/es/layout/dagre/src/position/bk.d.ts +0 -23
- package/es/layout/dagre/src/position/bk.js +0 -370
- package/es/layout/dagre/src/position/bk.js.map +0 -1
- package/es/layout/dagre/src/position/index.d.ts +0 -3
- package/es/layout/dagre/src/position/index.js +0 -51
- package/es/layout/dagre/src/position/index.js.map +0 -1
- package/es/layout/dagre/src/rank/feasible-tree.d.ts +0 -9
- package/es/layout/dagre/src/rank/feasible-tree.js +0 -148
- package/es/layout/dagre/src/rank/feasible-tree.js.map +0 -1
- package/es/layout/dagre/src/rank/index.d.ts +0 -3
- package/es/layout/dagre/src/rank/index.js +0 -53
- package/es/layout/dagre/src/rank/index.js.map +0 -1
- package/es/layout/dagre/src/rank/network-simplex.d.ts +0 -9
- package/es/layout/dagre/src/rank/network-simplex.js +0 -195
- package/es/layout/dagre/src/rank/network-simplex.js.map +0 -1
- package/es/layout/dagre/src/rank/util.d.ts +0 -11
- package/es/layout/dagre/src/rank/util.js +0 -141
- package/es/layout/dagre/src/rank/util.js.map +0 -1
- package/es/layout/dagre/src/util.d.ts +0 -31
- package/es/layout/dagre/src/util.js +0 -261
- package/es/layout/dagre/src/util.js.map +0 -1
- package/es/layout/dagre.d.ts +0 -71
- package/es/layout/dagre.js +0 -433
- package/es/layout/dagre.js.map +0 -1
- package/es/layout/dagreCompound.d.ts +0 -121
- package/es/layout/dagreCompound.js +0 -391
- package/es/layout/dagreCompound.js.map +0 -1
- package/es/layout/er/core.d.ts +0 -1
- package/es/layout/er/core.js +0 -107
- package/es/layout/er/core.js.map +0 -1
- package/es/layout/er/forceGrid.d.ts +0 -8
- package/es/layout/er/forceGrid.js +0 -88
- package/es/layout/er/forceGrid.js.map +0 -1
- package/es/layout/er/grid.d.ts +0 -26
- package/es/layout/er/grid.js +0 -162
- package/es/layout/er/grid.js.map +0 -1
- package/es/layout/er/index.d.ts +0 -29
- package/es/layout/er/index.js +0 -54
- package/es/layout/er/index.js.map +0 -1
- package/es/layout/er/mysqlWorkbench.d.ts +0 -6
- package/es/layout/er/mysqlWorkbench.js +0 -324
- package/es/layout/er/mysqlWorkbench.js.map +0 -1
- package/es/layout/er/type.d.ts +0 -35
- package/es/layout/er/type.js +0 -2
- package/es/layout/er/type.js.map +0 -1
- package/es/layout/force/force-in-a-box.d.ts +0 -28
- package/es/layout/force/force-in-a-box.js +0 -330
- package/es/layout/force/force-in-a-box.js.map +0 -1
- package/es/layout/force/force.d.ts +0 -100
- package/es/layout/force/force.js +0 -340
- package/es/layout/force/force.js.map +0 -1
- package/es/layout/force/index.d.ts +0 -1
- package/es/layout/force/index.js +0 -2
- package/es/layout/force/index.js.map +0 -1
- package/es/layout/force2/ForceNBody.d.ts +0 -7
- package/es/layout/force2/ForceNBody.js +0 -94
- package/es/layout/force2/ForceNBody.js.map +0 -1
- package/es/layout/force2/index.d.ts +0 -119
- package/es/layout/force2/index.js +0 -608
- package/es/layout/force2/index.js.map +0 -1
- package/es/layout/forceAtlas2/body.d.ts +0 -33
- package/es/layout/forceAtlas2/body.js +0 -89
- package/es/layout/forceAtlas2/body.js.map +0 -1
- package/es/layout/forceAtlas2/index.d.ts +0 -115
- package/es/layout/forceAtlas2/index.js +0 -484
- package/es/layout/forceAtlas2/index.js.map +0 -1
- package/es/layout/forceAtlas2/quad.d.ts +0 -27
- package/es/layout/forceAtlas2/quad.js +0 -96
- package/es/layout/forceAtlas2/quad.js.map +0 -1
- package/es/layout/forceAtlas2/quadTree.d.ts +0 -20
- package/es/layout/forceAtlas2/quadTree.js +0 -103
- package/es/layout/forceAtlas2/quadTree.js.map +0 -1
- package/es/layout/fruchterman.d.ts +0 -73
- package/es/layout/fruchterman.js +0 -296
- package/es/layout/fruchterman.js.map +0 -1
- package/es/layout/gForce.d.ts +0 -96
- package/es/layout/gForce.js +0 -399
- package/es/layout/gForce.js.map +0 -1
- package/es/layout/gpu/fruchterman.d.ts +0 -57
- package/es/layout/gpu/fruchterman.js +0 -267
- package/es/layout/gpu/fruchterman.js.map +0 -1
- package/es/layout/gpu/fruchtermanShader.d.ts +0 -4
- package/es/layout/gpu/fruchtermanShader.js +0 -201
- package/es/layout/gpu/fruchtermanShader.js.map +0 -1
- package/es/layout/gpu/gForce.d.ts +0 -68
- package/es/layout/gpu/gForce.js +0 -330
- package/es/layout/gpu/gForce.js.map +0 -1
- package/es/layout/gpu/gForceShader.d.ts +0 -4
- package/es/layout/gpu/gForceShader.js +0 -218
- package/es/layout/gpu/gForceShader.js.map +0 -1
- package/es/layout/grid.d.ts +0 -83
- package/es/layout/grid.js +0 -317
- package/es/layout/grid.js.map +0 -1
- package/es/layout/index.d.ts +0 -22
- package/es/layout/index.js +0 -25
- package/es/layout/index.js.map +0 -1
- package/es/layout/layout.d.ts +0 -26
- package/es/layout/layout.js +0 -97
- package/es/layout/layout.js.map +0 -1
- package/es/layout/mds.d.ts +0 -39
- package/es/layout/mds.js +0 -122
- package/es/layout/mds.js.map +0 -1
- package/es/layout/radial/index.d.ts +0 -1
- package/es/layout/radial/index.js +0 -2
- package/es/layout/radial/index.js.map +0 -1
- package/es/layout/radial/mds.d.ts +0 -15
- package/es/layout/radial/mds.js +0 -38
- package/es/layout/radial/mds.js.map +0 -1
- package/es/layout/radial/radial.d.ts +0 -74
- package/es/layout/radial/radial.js +0 -420
- package/es/layout/radial/radial.js.map +0 -1
- package/es/layout/radial/radialNonoverlapForce.d.ts +0 -50
- package/es/layout/radial/radialNonoverlapForce.js +0 -123
- package/es/layout/radial/radialNonoverlapForce.js.map +0 -1
- package/es/layout/random.d.ts +0 -35
- package/es/layout/random.js +0 -62
- package/es/layout/random.js.map +0 -1
- package/es/layout/types.d.ts +0 -432
- package/es/layout/types.js +0 -2
- package/es/layout/types.js.map +0 -1
- package/es/registy/index.d.ts +0 -3
- package/es/registy/index.js +0 -41
- package/es/registy/index.js.map +0 -1
- package/es/util/array.d.ts +0 -1
- package/es/util/array.js +0 -2
- package/es/util/array.js.map +0 -1
- package/es/util/function.d.ts +0 -6
- package/es/util/function.js +0 -56
- package/es/util/function.js.map +0 -1
- package/es/util/gpu.d.ts +0 -52
- package/es/util/gpu.js +0 -239
- package/es/util/gpu.js.map +0 -1
- package/es/util/index.d.ts +0 -6
- package/es/util/index.js +0 -7
- package/es/util/index.js.map +0 -1
- package/es/util/math.d.ts +0 -48
- package/es/util/math.js +0 -276
- package/es/util/math.js.map +0 -1
- package/es/util/number.d.ts +0 -3
- package/es/util/number.js +0 -7
- package/es/util/number.js.map +0 -1
- package/es/util/object.d.ts +0 -2
- package/es/util/object.js +0 -25
- package/es/util/object.js.map +0 -1
- package/es/util/string.d.ts +0 -2
- package/es/util/string.js +0 -16
- package/es/util/string.js.map +0 -1
- package/lib/index.js +0 -24
- package/lib/index.js.map +0 -1
- package/lib/layout/base.d.ts +0 -22
- package/lib/layout/base.js +0 -56
- package/lib/layout/base.js.map +0 -1
- package/lib/layout/circular.d.ts +0 -80
- package/lib/layout/circular.js +0 -337
- package/lib/layout/circular.js.map +0 -1
- package/lib/layout/comboCombined.d.ts +0 -54
- package/lib/layout/comboCombined.js +0 -390
- package/lib/layout/comboCombined.js.map +0 -1
- package/lib/layout/comboForce.d.ts +0 -134
- package/lib/layout/comboForce.js +0 -826
- package/lib/layout/comboForce.js.map +0 -1
- package/lib/layout/concentric.d.ts +0 -67
- package/lib/layout/concentric.js +0 -243
- package/lib/layout/concentric.js.map +0 -1
- package/lib/layout/constants.d.ts +0 -12
- package/lib/layout/constants.js +0 -25
- package/lib/layout/constants.js.map +0 -1
- package/lib/layout/dagre/graph.d.ts +0 -91
- package/lib/layout/dagre/graph.js +0 -28
- package/lib/layout/dagre/graph.js.map +0 -1
- package/lib/layout/dagre/index.d.ts +0 -8
- package/lib/layout/dagre/index.js +0 -36
- package/lib/layout/dagre/index.js.map +0 -1
- package/lib/layout/dagre/src/acyclic.d.ts +0 -6
- package/lib/layout/dagre/src/acyclic.js +0 -57
- package/lib/layout/dagre/src/acyclic.js.map +0 -1
- package/lib/layout/dagre/src/add-border-segments.d.ts +0 -3
- package/lib/layout/dagre/src/add-border-segments.js +0 -34
- package/lib/layout/dagre/src/add-border-segments.js.map +0 -1
- package/lib/layout/dagre/src/coordinate-system.d.ts +0 -6
- package/lib/layout/dagre/src/coordinate-system.js +0 -71
- package/lib/layout/dagre/src/coordinate-system.js.map +0 -1
- package/lib/layout/dagre/src/data/list.d.ts +0 -12
- package/lib/layout/dagre/src/data/list.js +0 -52
- package/lib/layout/dagre/src/data/list.js.map +0 -1
- package/lib/layout/dagre/src/debug.d.ts +0 -3
- package/lib/layout/dagre/src/debug.js +0 -26
- package/lib/layout/dagre/src/debug.js.map +0 -1
- package/lib/layout/dagre/src/greedy-fas.d.ts +0 -3
- package/lib/layout/dagre/src/greedy-fas.js +0 -144
- package/lib/layout/dagre/src/greedy-fas.js.map +0 -1
- package/lib/layout/dagre/src/layout.d.ts +0 -3
- package/lib/layout/dagre/src/layout.js +0 -535
- package/lib/layout/dagre/src/layout.js.map +0 -1
- package/lib/layout/dagre/src/nesting-graph.d.ts +0 -6
- package/lib/layout/dagre/src/nesting-graph.js +0 -119
- package/lib/layout/dagre/src/nesting-graph.js.map +0 -1
- package/lib/layout/dagre/src/normalize.d.ts +0 -6
- package/lib/layout/dagre/src/normalize.js +0 -91
- package/lib/layout/dagre/src/normalize.js.map +0 -1
- package/lib/layout/dagre/src/order/add-subgraph-constraints.d.ts +0 -3
- package/lib/layout/dagre/src/order/add-subgraph-constraints.js +0 -29
- package/lib/layout/dagre/src/order/add-subgraph-constraints.js.map +0 -1
- package/lib/layout/dagre/src/order/barycenter.d.ts +0 -11
- package/lib/layout/dagre/src/order/barycenter.js +0 -26
- package/lib/layout/dagre/src/order/barycenter.js.map +0 -1
- package/lib/layout/dagre/src/order/build-layer-graph.d.ts +0 -3
- package/lib/layout/dagre/src/order/build-layer-graph.js +0 -73
- package/lib/layout/dagre/src/order/build-layer-graph.js.map +0 -1
- package/lib/layout/dagre/src/order/cross-count.d.ts +0 -3
- package/lib/layout/dagre/src/order/cross-count.js +0 -67
- package/lib/layout/dagre/src/order/cross-count.js.map +0 -1
- package/lib/layout/dagre/src/order/index.d.ts +0 -3
- package/lib/layout/dagre/src/order/index.js +0 -96
- package/lib/layout/dagre/src/order/index.js.map +0 -1
- package/lib/layout/dagre/src/order/init-data-order.d.ts +0 -6
- package/lib/layout/dagre/src/order/init-data-order.js +0 -27
- package/lib/layout/dagre/src/order/init-data-order.js.map +0 -1
- package/lib/layout/dagre/src/order/init-order.d.ts +0 -3
- package/lib/layout/dagre/src/order/init-order.js +0 -54
- package/lib/layout/dagre/src/order/init-order.js.map +0 -1
- package/lib/layout/dagre/src/order/resolve-conflicts.d.ts +0 -19
- package/lib/layout/dagre/src/order/resolve-conflicts.js +0 -98
- package/lib/layout/dagre/src/order/resolve-conflicts.js.map +0 -1
- package/lib/layout/dagre/src/order/sort-subgraph.d.ts +0 -7
- package/lib/layout/dagre/src/order/sort-subgraph.js +0 -90
- package/lib/layout/dagre/src/order/sort-subgraph.js.map +0 -1
- package/lib/layout/dagre/src/order/sort.d.ts +0 -7
- package/lib/layout/dagre/src/order/sort.js +0 -70
- package/lib/layout/dagre/src/order/sort.js.map +0 -1
- package/lib/layout/dagre/src/parent-dummy-chains.d.ts +0 -3
- package/lib/layout/dagre/src/parent-dummy-chains.js +0 -83
- package/lib/layout/dagre/src/parent-dummy-chains.js.map +0 -1
- package/lib/layout/dagre/src/position/bk.d.ts +0 -23
- package/lib/layout/dagre/src/position/bk.js +0 -409
- package/lib/layout/dagre/src/position/bk.js.map +0 -1
- package/lib/layout/dagre/src/position/index.d.ts +0 -3
- package/lib/layout/dagre/src/position/index.js +0 -64
- package/lib/layout/dagre/src/position/index.js.map +0 -1
- package/lib/layout/dagre/src/rank/feasible-tree.d.ts +0 -9
- package/lib/layout/dagre/src/rank/feasible-tree.js +0 -152
- package/lib/layout/dagre/src/rank/feasible-tree.js.map +0 -1
- package/lib/layout/dagre/src/rank/index.d.ts +0 -3
- package/lib/layout/dagre/src/rank/index.js +0 -58
- package/lib/layout/dagre/src/rank/index.js.map +0 -1
- package/lib/layout/dagre/src/rank/network-simplex.d.ts +0 -9
- package/lib/layout/dagre/src/rank/network-simplex.js +0 -205
- package/lib/layout/dagre/src/rank/network-simplex.js.map +0 -1
- package/lib/layout/dagre/src/rank/util.d.ts +0 -11
- package/lib/layout/dagre/src/rank/util.js +0 -146
- package/lib/layout/dagre/src/rank/util.js.map +0 -1
- package/lib/layout/dagre/src/util.d.ts +0 -31
- package/lib/layout/dagre/src/util.js +0 -280
- package/lib/layout/dagre/src/util.js.map +0 -1
- package/lib/layout/dagre.d.ts +0 -71
- package/lib/layout/dagre.js +0 -462
- package/lib/layout/dagre.js.map +0 -1
- package/lib/layout/dagreCompound.d.ts +0 -121
- package/lib/layout/dagreCompound.js +0 -429
- package/lib/layout/dagreCompound.js.map +0 -1
- package/lib/layout/er/core.d.ts +0 -1
- package/lib/layout/er/core.js +0 -147
- package/lib/layout/er/core.js.map +0 -1
- package/lib/layout/er/forceGrid.d.ts +0 -8
- package/lib/layout/er/forceGrid.js +0 -97
- package/lib/layout/er/forceGrid.js.map +0 -1
- package/lib/layout/er/grid.d.ts +0 -26
- package/lib/layout/er/grid.js +0 -177
- package/lib/layout/er/grid.js.map +0 -1
- package/lib/layout/er/index.d.ts +0 -29
- package/lib/layout/er/index.js +0 -80
- package/lib/layout/er/index.js.map +0 -1
- package/lib/layout/er/mysqlWorkbench.d.ts +0 -6
- package/lib/layout/er/mysqlWorkbench.js +0 -326
- package/lib/layout/er/mysqlWorkbench.js.map +0 -1
- package/lib/layout/er/type.d.ts +0 -35
- package/lib/layout/er/type.js +0 -3
- package/lib/layout/er/type.js.map +0 -1
- package/lib/layout/force/force-in-a-box.d.ts +0 -28
- package/lib/layout/force/force-in-a-box.js +0 -357
- package/lib/layout/force/force-in-a-box.js.map +0 -1
- package/lib/layout/force/force.d.ts +0 -100
- package/lib/layout/force/force.js +0 -388
- package/lib/layout/force/force.js.map +0 -1
- package/lib/layout/force/index.d.ts +0 -1
- package/lib/layout/force/index.js +0 -18
- package/lib/layout/force/index.js.map +0 -1
- package/lib/layout/force2/ForceNBody.d.ts +0 -7
- package/lib/layout/force2/ForceNBody.js +0 -98
- package/lib/layout/force2/ForceNBody.js.map +0 -1
- package/lib/layout/force2/index.d.ts +0 -119
- package/lib/layout/force2/index.js +0 -643
- package/lib/layout/force2/index.js.map +0 -1
- package/lib/layout/forceAtlas2/body.d.ts +0 -33
- package/lib/layout/forceAtlas2/body.js +0 -93
- package/lib/layout/forceAtlas2/body.js.map +0 -1
- package/lib/layout/forceAtlas2/index.d.ts +0 -115
- package/lib/layout/forceAtlas2/index.js +0 -509
- package/lib/layout/forceAtlas2/index.js.map +0 -1
- package/lib/layout/forceAtlas2/quad.d.ts +0 -27
- package/lib/layout/forceAtlas2/quad.js +0 -100
- package/lib/layout/forceAtlas2/quad.js.map +0 -1
- package/lib/layout/forceAtlas2/quadTree.d.ts +0 -20
- package/lib/layout/forceAtlas2/quadTree.js +0 -107
- package/lib/layout/forceAtlas2/quadTree.js.map +0 -1
- package/lib/layout/fruchterman.d.ts +0 -73
- package/lib/layout/fruchterman.js +0 -320
- package/lib/layout/fruchterman.js.map +0 -1
- package/lib/layout/gForce.d.ts +0 -96
- package/lib/layout/gForce.js +0 -421
- package/lib/layout/gForce.js.map +0 -1
- package/lib/layout/gpu/fruchterman.d.ts +0 -57
- package/lib/layout/gpu/fruchterman.js +0 -361
- package/lib/layout/gpu/fruchterman.js.map +0 -1
- package/lib/layout/gpu/fruchtermanShader.d.ts +0 -4
- package/lib/layout/gpu/fruchtermanShader.js +0 -8
- package/lib/layout/gpu/fruchtermanShader.js.map +0 -1
- package/lib/layout/gpu/gForce.d.ts +0 -68
- package/lib/layout/gpu/gForce.js +0 -415
- package/lib/layout/gpu/gForce.js.map +0 -1
- package/lib/layout/gpu/gForceShader.d.ts +0 -4
- package/lib/layout/gpu/gForceShader.js +0 -8
- package/lib/layout/gpu/gForceShader.js.map +0 -1
- package/lib/layout/grid.d.ts +0 -83
- package/lib/layout/grid.js +0 -339
- package/lib/layout/grid.js.map +0 -1
- package/lib/layout/index.d.ts +0 -22
- package/lib/layout/index.js +0 -59
- package/lib/layout/index.js.map +0 -1
- package/lib/layout/layout.d.ts +0 -26
- package/lib/layout/layout.js +0 -102
- package/lib/layout/layout.js.map +0 -1
- package/lib/layout/mds.d.ts +0 -39
- package/lib/layout/mds.js +0 -144
- package/lib/layout/mds.js.map +0 -1
- package/lib/layout/radial/index.d.ts +0 -1
- package/lib/layout/radial/index.js +0 -18
- package/lib/layout/radial/index.js.map +0 -1
- package/lib/layout/radial/mds.d.ts +0 -15
- package/lib/layout/radial/mds.js +0 -42
- package/lib/layout/radial/mds.js.map +0 -1
- package/lib/layout/radial/radial.d.ts +0 -74
- package/lib/layout/radial/radial.js +0 -445
- package/lib/layout/radial/radial.js.map +0 -1
- package/lib/layout/radial/radialNonoverlapForce.d.ts +0 -50
- package/lib/layout/radial/radialNonoverlapForce.js +0 -127
- package/lib/layout/radial/radialNonoverlapForce.js.map +0 -1
- package/lib/layout/random.d.ts +0 -35
- package/lib/layout/random.js +0 -84
- package/lib/layout/random.js.map +0 -1
- package/lib/layout/types.d.ts +0 -432
- package/lib/layout/types.js +0 -3
- package/lib/layout/types.js.map +0 -1
- package/lib/registy/index.d.ts +0 -3
- package/lib/registy/index.js +0 -65
- package/lib/registy/index.js.map +0 -1
- package/lib/util/array.js +0 -5
- package/lib/util/array.js.map +0 -1
- package/lib/util/function.js +0 -65
- package/lib/util/function.js.map +0 -1
- package/lib/util/gpu.js +0 -250
- package/lib/util/gpu.js.map +0 -1
- package/lib/util/index.js +0 -23
- package/lib/util/index.js.map +0 -1
- package/lib/util/math.js +0 -289
- package/lib/util/math.js.map +0 -1
- package/lib/util/number.js +0 -13
- package/lib/util/number.js.map +0 -1
- package/lib/util/object.js +0 -43
- package/lib/util/object.js.map +0 -1
- package/lib/util/string.js +0 -20
- package/lib/util/string.js.map +0 -1
- package/src/index.ts +0 -7
- package/src/layout/base.ts +0 -57
- package/src/layout/circular.ts +0 -370
- package/src/layout/comboCombined.ts +0 -397
- package/src/layout/comboForce.ts +0 -873
- package/src/layout/concentric.ts +0 -289
- package/src/layout/constants.ts +0 -22
- package/src/layout/dagre/graph.ts +0 -104
- package/src/layout/dagre/index.ts +0 -31
- package/src/layout/dagre/src/acyclic.ts +0 -58
- package/src/layout/dagre/src/add-border-segments.ts +0 -47
- package/src/layout/dagre/src/coordinate-system.ts +0 -77
- package/src/layout/dagre/src/data/list.ts +0 -60
- package/src/layout/dagre/src/debug.ts +0 -30
- package/src/layout/dagre/src/greedy-fas.ts +0 -144
- package/src/layout/dagre/src/layout.ts +0 -579
- package/src/layout/dagre/src/nesting-graph.ts +0 -143
- package/src/layout/dagre/src/normalize.ts +0 -96
- package/src/layout/dagre/src/order/add-subgraph-constraints.ts +0 -29
- package/src/layout/dagre/src/order/barycenter.ts +0 -26
- package/src/layout/dagre/src/order/build-layer-graph.ts +0 -82
- package/src/layout/dagre/src/order/cross-count.ts +0 -77
- package/src/layout/dagre/src/order/index.ts +0 -105
- package/src/layout/dagre/src/order/init-data-order.ts +0 -27
- package/src/layout/dagre/src/order/init-order.ts +0 -56
- package/src/layout/dagre/src/order/resolve-conflicts.ts +0 -152
- package/src/layout/dagre/src/order/sort-subgraph.ts +0 -105
- package/src/layout/dagre/src/order/sort.ts +0 -76
- package/src/layout/dagre/src/parent-dummy-chains.ts +0 -102
- package/src/layout/dagre/src/position/bk.ts +0 -493
- package/src/layout/dagre/src/position/index.ts +0 -82
- package/src/layout/dagre/src/rank/feasible-tree.ts +0 -165
- package/src/layout/dagre/src/rank/index.ts +0 -54
- package/src/layout/dagre/src/rank/network-simplex.ts +0 -225
- package/src/layout/dagre/src/rank/util.ts +0 -166
- package/src/layout/dagre/src/util.ts +0 -309
- package/src/layout/dagre.ts +0 -460
- package/src/layout/dagreCompound.ts +0 -518
- package/src/layout/er/core.ts +0 -117
- package/src/layout/er/forceGrid.ts +0 -95
- package/src/layout/er/grid.ts +0 -185
- package/src/layout/er/index.ts +0 -68
- package/src/layout/er/mysqlWorkbench.ts +0 -345
- package/src/layout/er/type.ts +0 -39
- package/src/layout/force/force-in-a-box.ts +0 -400
- package/src/layout/force/force.ts +0 -391
- package/src/layout/force/index.ts +0 -1
- package/src/layout/force2/ForceNBody.ts +0 -128
- package/src/layout/force2/index.ts +0 -741
- package/src/layout/forceAtlas2/body.ts +0 -115
- package/src/layout/forceAtlas2/index.ts +0 -556
- package/src/layout/forceAtlas2/quad.ts +0 -115
- package/src/layout/forceAtlas2/quadTree.ts +0 -107
- package/src/layout/fruchterman.ts +0 -361
- package/src/layout/gForce.ts +0 -488
- package/src/layout/gpu/fruchterman.ts +0 -314
- package/src/layout/gpu/fruchtermanShader.ts +0 -203
- package/src/layout/gpu/gForce.ts +0 -407
- package/src/layout/gpu/gForceShader.ts +0 -220
- package/src/layout/grid.ts +0 -404
- package/src/layout/index.ts +0 -47
- package/src/layout/layout.ts +0 -110
- package/src/layout/mds.ts +0 -140
- package/src/layout/radial/index.ts +0 -1
- package/src/layout/radial/mds.ts +0 -51
- package/src/layout/radial/radial.ts +0 -500
- package/src/layout/radial/radialNonoverlapForce.ts +0 -189
- package/src/layout/random.ts +0 -75
- package/src/layout/types.ts +0 -496
- package/src/registy/index.ts +0 -43
- package/src/util/array.ts +0 -1
- package/src/util/function.ts +0 -64
- package/src/util/gpu.ts +0 -256
- package/src/util/index.ts +0 -6
- package/src/util/math.ts +0 -294
- package/src/util/number.ts +0 -8
- package/src/util/object.ts +0 -28
- package/src/util/string.ts +0 -18
package/es/layout/er/grid.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ICell, INode } from './type';
|
|
2
|
-
export default class Grid {
|
|
3
|
-
cells: ICell[][];
|
|
4
|
-
columnNum: number;
|
|
5
|
-
rowNum: number;
|
|
6
|
-
additionColumn: number[];
|
|
7
|
-
additionRow: number[];
|
|
8
|
-
private static MIN_DIST;
|
|
9
|
-
private static DEFAULT_CELL_W;
|
|
10
|
-
private static DEFAULT_CELL_H;
|
|
11
|
-
private CELL_W;
|
|
12
|
-
private CELL_H;
|
|
13
|
-
init(width: number, height: number, gridSize: {
|
|
14
|
-
CELL_W: number;
|
|
15
|
-
CELL_H: number;
|
|
16
|
-
}): void;
|
|
17
|
-
findGridByNodeId(nodeId: string): {
|
|
18
|
-
column: number;
|
|
19
|
-
row: number;
|
|
20
|
-
} | null;
|
|
21
|
-
sqdist(a: any, b: any): number;
|
|
22
|
-
occupyNearest(p: INode): ICell | null;
|
|
23
|
-
insertColumn(columnIndex: number, length: number): void;
|
|
24
|
-
insertRow(rowIndex: number, length: number): void;
|
|
25
|
-
getNodes(): ICell[];
|
|
26
|
-
}
|
package/es/layout/er/grid.js
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
export default class Grid {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.cells = [];
|
|
4
|
-
this.columnNum = 0;
|
|
5
|
-
this.rowNum = 0;
|
|
6
|
-
this.additionColumn = [];
|
|
7
|
-
this.additionRow = [];
|
|
8
|
-
}
|
|
9
|
-
init(width, height, gridSize) {
|
|
10
|
-
this.cells = [];
|
|
11
|
-
this.CELL_W = gridSize.CELL_W || Grid.DEFAULT_CELL_W;
|
|
12
|
-
this.CELL_H = gridSize.CELL_H || Grid.DEFAULT_CELL_H;
|
|
13
|
-
this.columnNum = Math.ceil(width / this.CELL_W);
|
|
14
|
-
this.rowNum = Math.ceil(height / this.CELL_H);
|
|
15
|
-
Grid.MIN_DIST = Math.pow(width, 2) + Math.pow(height, 2);
|
|
16
|
-
for (let i = 0; i < this.columnNum; i++) {
|
|
17
|
-
const tmp = [];
|
|
18
|
-
for (let j = 0; j < this.rowNum; j++) {
|
|
19
|
-
const cell = {
|
|
20
|
-
dx: i,
|
|
21
|
-
dy: j,
|
|
22
|
-
x: i * this.CELL_W,
|
|
23
|
-
y: j * this.CELL_H,
|
|
24
|
-
occupied: false
|
|
25
|
-
};
|
|
26
|
-
tmp.push(cell);
|
|
27
|
-
}
|
|
28
|
-
this.cells.push(tmp);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
findGridByNodeId(nodeId) {
|
|
32
|
-
var _a, _b;
|
|
33
|
-
for (let i = 0; i < this.columnNum; i++) {
|
|
34
|
-
for (let j = 0; j < this.rowNum; j++) {
|
|
35
|
-
if (this.cells[i][j].node) {
|
|
36
|
-
if (((_b = (_a = this.cells[i][j]) === null || _a === void 0 ? void 0 : _a.node) === null || _b === void 0 ? void 0 : _b.id) === nodeId) {
|
|
37
|
-
return { column: i, row: j };
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
sqdist(a, b) {
|
|
45
|
-
return Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2);
|
|
46
|
-
}
|
|
47
|
-
occupyNearest(p) {
|
|
48
|
-
let minDist = Grid.MIN_DIST;
|
|
49
|
-
let d;
|
|
50
|
-
let candidate = null;
|
|
51
|
-
for (let i = 0; i < this.columnNum; i++) {
|
|
52
|
-
for (let j = 0; j < this.rowNum; j++) {
|
|
53
|
-
if (!this.cells[i][j].occupied && (d = this.sqdist(p, this.cells[i][j])) < minDist) {
|
|
54
|
-
minDist = d;
|
|
55
|
-
candidate = this.cells[i][j];
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (candidate) {
|
|
60
|
-
candidate.occupied = true;
|
|
61
|
-
}
|
|
62
|
-
return candidate;
|
|
63
|
-
}
|
|
64
|
-
insertColumn(columnIndex, length) {
|
|
65
|
-
if (length <= 0)
|
|
66
|
-
return;
|
|
67
|
-
// 插入空列
|
|
68
|
-
for (let i = 0; i < length; i++) {
|
|
69
|
-
this.cells[i + this.columnNum] = [];
|
|
70
|
-
for (let j = 0; j < this.rowNum; j++) {
|
|
71
|
-
this.cells[i + this.columnNum][j] = {
|
|
72
|
-
dx: i,
|
|
73
|
-
dy: j,
|
|
74
|
-
x: i * this.CELL_W,
|
|
75
|
-
y: j * this.CELL_H,
|
|
76
|
-
occupied: false,
|
|
77
|
-
node: null,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// 交换数据
|
|
82
|
-
for (let i = (this.columnNum - 1); i > columnIndex; i--) {
|
|
83
|
-
for (let j = 0; j < this.rowNum; j++) {
|
|
84
|
-
this.cells[i + length][j] = Object.assign(Object.assign({}, this.cells[i][j]), { x: (i + length) * this.CELL_W, y: j * this.CELL_H });
|
|
85
|
-
this.cells[i][j] = {
|
|
86
|
-
x: i * this.CELL_W,
|
|
87
|
-
y: j * this.CELL_H,
|
|
88
|
-
occupied: true,
|
|
89
|
-
node: null,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
// 已有行列的处理
|
|
94
|
-
for (let j = 0; j < this.additionColumn.length; j++) {
|
|
95
|
-
if (this.additionColumn[j] >= columnIndex) {
|
|
96
|
-
this.additionColumn[j] += length;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
// 记录新增的行列
|
|
100
|
-
for (let i = 0; i < length; i++) {
|
|
101
|
-
this.additionColumn.push(columnIndex + i + 1);
|
|
102
|
-
}
|
|
103
|
-
this.columnNum += length;
|
|
104
|
-
}
|
|
105
|
-
insertRow(rowIndex, length) {
|
|
106
|
-
if (length <= 0)
|
|
107
|
-
return;
|
|
108
|
-
// 插入空行
|
|
109
|
-
for (let j = 0; j < length; j++) {
|
|
110
|
-
for (let i = 0; i < this.columnNum; i++) {
|
|
111
|
-
this.cells[i][j + this.rowNum] = {
|
|
112
|
-
dx: i,
|
|
113
|
-
dy: j,
|
|
114
|
-
x: i * this.CELL_W,
|
|
115
|
-
y: j * this.CELL_H,
|
|
116
|
-
occupied: false,
|
|
117
|
-
node: null,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
// 交换数据
|
|
122
|
-
for (let i = 0; i < this.columnNum; i++) {
|
|
123
|
-
for (let j = (this.rowNum - 1); j > rowIndex; j--) {
|
|
124
|
-
this.cells[i][j + length] = Object.assign(Object.assign({}, this.cells[i][j]), { dx: i, dy: j + length, x: i * this.CELL_W, y: (j + length) * this.CELL_H });
|
|
125
|
-
this.cells[i][j] = {
|
|
126
|
-
dx: i,
|
|
127
|
-
dy: j,
|
|
128
|
-
x: i * this.CELL_W,
|
|
129
|
-
y: j * this.CELL_H,
|
|
130
|
-
occupied: false,
|
|
131
|
-
node: null,
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
// 已有行列的处理
|
|
136
|
-
for (let j = 0; j < this.additionRow.length; j++) {
|
|
137
|
-
if (this.additionRow[j] >= rowIndex) {
|
|
138
|
-
this.additionRow[j] += length;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
// 记录新增的行列
|
|
142
|
-
for (let i = 0; i < length; i++) {
|
|
143
|
-
this.additionRow.push(rowIndex + i + 1);
|
|
144
|
-
}
|
|
145
|
-
this.rowNum += length;
|
|
146
|
-
}
|
|
147
|
-
getNodes() {
|
|
148
|
-
const nodes = [];
|
|
149
|
-
for (let i = 0; i < this.columnNum; i++) {
|
|
150
|
-
for (let j = 0; j < this.rowNum; j++) {
|
|
151
|
-
if (this.cells[i][j].node) {
|
|
152
|
-
nodes.push(this.cells[i][j]);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
return nodes;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
Grid.MIN_DIST = 50;
|
|
160
|
-
Grid.DEFAULT_CELL_W = 80;
|
|
161
|
-
Grid.DEFAULT_CELL_H = 80;
|
|
162
|
-
//# sourceMappingURL=grid.js.map
|
package/es/layout/er/grid.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../src/layout/er/grid.ts"],"names":[],"mappings":"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"}
|
package/es/layout/er/index.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileOverview Force Layout Grid Align layout
|
|
3
|
-
* @author wenyanqi
|
|
4
|
-
*/
|
|
5
|
-
import { Base } from "../base";
|
|
6
|
-
export interface ERLayoutOptions {
|
|
7
|
-
type: "er";
|
|
8
|
-
width?: number;
|
|
9
|
-
height?: number;
|
|
10
|
-
nodeMinGap?: number;
|
|
11
|
-
}
|
|
12
|
-
export declare class ERLayout extends Base {
|
|
13
|
-
width: number;
|
|
14
|
-
height: number;
|
|
15
|
-
nodeMinGap: number;
|
|
16
|
-
/** 迭代结束的回调函数 */
|
|
17
|
-
onLayoutEnd: () => void;
|
|
18
|
-
constructor(options?: any);
|
|
19
|
-
getDefaultCfg(): {
|
|
20
|
-
width: number;
|
|
21
|
-
height: number;
|
|
22
|
-
nodeMinGap: number;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* 执行布局
|
|
26
|
-
*/
|
|
27
|
-
execute(): Promise<void>;
|
|
28
|
-
getType(): string;
|
|
29
|
-
}
|
package/es/layout/er/index.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileOverview Force Layout Grid Align layout
|
|
3
|
-
* @author wenyanqi
|
|
4
|
-
*/
|
|
5
|
-
import { Base } from "../base";
|
|
6
|
-
import layout from './core';
|
|
7
|
-
export class ERLayout extends Base {
|
|
8
|
-
constructor(options) {
|
|
9
|
-
super();
|
|
10
|
-
this.width = 300;
|
|
11
|
-
this.height = 300;
|
|
12
|
-
this.nodeMinGap = 50;
|
|
13
|
-
/** 迭代结束的回调函数 */
|
|
14
|
-
this.onLayoutEnd = () => { };
|
|
15
|
-
if (options) {
|
|
16
|
-
this.updateCfg(options);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
getDefaultCfg() {
|
|
20
|
-
return {
|
|
21
|
-
width: 300,
|
|
22
|
-
height: 300,
|
|
23
|
-
nodeMinGap: 50,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* 执行布局
|
|
28
|
-
*/
|
|
29
|
-
execute() {
|
|
30
|
-
const self = this;
|
|
31
|
-
const nodes = self.nodes;
|
|
32
|
-
const edges = self.edges;
|
|
33
|
-
// 节点初始化,size初始化
|
|
34
|
-
nodes === null || nodes === void 0 ? void 0 : nodes.forEach((node) => {
|
|
35
|
-
if (!node.size) {
|
|
36
|
-
node.size = [50, 50];
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
return layout({
|
|
40
|
-
nodes, edges,
|
|
41
|
-
}, {
|
|
42
|
-
width: this.width,
|
|
43
|
-
height: this.height,
|
|
44
|
-
nodeMinGap: this.nodeMinGap,
|
|
45
|
-
}).then(() => {
|
|
46
|
-
if (self.onLayoutEnd)
|
|
47
|
-
self.onLayoutEnd();
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
getType() {
|
|
51
|
-
return "er";
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/er/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAU5B,MAAM,OAAO,QAAS,SAAQ,IAAI;IAShC,YAAY,OAAa;QACvB,KAAK,EAAE,CAAC;QARH,UAAK,GAAW,GAAG,CAAC;QACpB,WAAM,GAAW,GAAG,CAAC;QACrB,eAAU,GAAW,EAAE,CAAC;QAE/B,gBAAgB;QACT,gBAAW,GAAe,GAAG,EAAE,GAAG,CAAC,CAAC;QAIzC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACzB;IACH,CAAC;IAEM,aAAa;QAClB,OAAO;YACL,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,gBAAgB;QAChB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,IAAW,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;YACZ,KAAK,EAAE,KAAK;SACb,EAAE;YACD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
const graphWidth = 1200;
|
|
2
|
-
const graphHeight = 800;
|
|
3
|
-
const OVERLAP_QUOT = 10000000;
|
|
4
|
-
const MIN_DIST = 10;
|
|
5
|
-
const M_PI = 3.14159265358979323846;
|
|
6
|
-
const M_PI_2 = 1.57079632679489661923;
|
|
7
|
-
const PI_38 = M_PI * 0.375;
|
|
8
|
-
const PI_58 = M_PI * 0.625;
|
|
9
|
-
const nodeEdgeMap = new Map();
|
|
10
|
-
const CELL_W = 10;
|
|
11
|
-
const CELL_H = 10;
|
|
12
|
-
let T = 0.8;
|
|
13
|
-
const T_MIN = 0.1;
|
|
14
|
-
const R = 0.5;
|
|
15
|
-
function distanceToNode(node1, node2, isHoriz) {
|
|
16
|
-
const x11 = node1.x - node1.size[0] / 2;
|
|
17
|
-
const y11 = node1.y - node1.size[1] / 2;
|
|
18
|
-
const x12 = node1.x + node1.size[0] / 2;
|
|
19
|
-
const y12 = node1.y + node1.size[1] / 2;
|
|
20
|
-
const x21 = node2.x - node2.size[0] / 2;
|
|
21
|
-
const y21 = node2.y - node2.size[1] / 2;
|
|
22
|
-
const x22 = node2.x + node2.size[0] / 2;
|
|
23
|
-
const y22 = node2.y + node2.size[1] / 2;
|
|
24
|
-
const cx1 = node1.x;
|
|
25
|
-
const cy1 = node1.y;
|
|
26
|
-
const cx2 = node2.x;
|
|
27
|
-
const cy2 = node2.y;
|
|
28
|
-
const dcx = cx2 - cx1;
|
|
29
|
-
// 两个节点间的方位角
|
|
30
|
-
const qr = Math.atan2(dcx, (cy2 - cy1));
|
|
31
|
-
let dx = 0;
|
|
32
|
-
let dy = 0;
|
|
33
|
-
let l1 = 0;
|
|
34
|
-
let l2 = 0;
|
|
35
|
-
if (qr > M_PI_2) {
|
|
36
|
-
dy = y11 - y22;
|
|
37
|
-
dx = x21 - x12;
|
|
38
|
-
l1 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : (dx).toFixed(2));
|
|
39
|
-
l2 = parseFloat(dx ? (dx / Math.sin(qr)).toFixed(2) : (dy).toFixed(2));
|
|
40
|
-
}
|
|
41
|
-
else if (0.0 < qr && qr <= M_PI_2) {
|
|
42
|
-
dy = y21 - y12;
|
|
43
|
-
dx = x21 - x12;
|
|
44
|
-
if (dy > dx) {
|
|
45
|
-
l1 = l2 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : (dx).toFixed(2));
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
l1 = l2 = parseFloat(dx ? (dx / Math.sin(qr)).toFixed(2) : (dy).toFixed(2));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else if (qr < -M_PI_2) {
|
|
52
|
-
dy = y11 - y22;
|
|
53
|
-
dx = -(x22 - x11);
|
|
54
|
-
if (dy > dx) {
|
|
55
|
-
l1 = l2 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : (dx).toFixed(2));
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
l1 = l2 = parseFloat(dx ? (dx / Math.sin(qr)).toFixed(2) : (dy).toFixed(2));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
dy = y21 - y12;
|
|
63
|
-
if (Math.abs(dcx) > (x12 - x11) / 2) {
|
|
64
|
-
dx = x11 - x22;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
dx = dcx;
|
|
68
|
-
}
|
|
69
|
-
if (dy > dx) {
|
|
70
|
-
l1 = l2 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : (dx).toFixed(2));
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
l1 = l2 = parseFloat((dx && qr !== 0.0) ? (dx / Math.sin(qr)).toFixed(2) : (dy).toFixed(2));
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
const aqr = parseFloat(qr.toFixed(2));
|
|
77
|
-
// 判断是否水平,角度
|
|
78
|
-
let newHoriz = isHoriz;
|
|
79
|
-
if (isHoriz) {
|
|
80
|
-
newHoriz = PI_38 < aqr && aqr < PI_58;
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
distance: Math.abs(l1 < l2 ? l1 : l2),
|
|
84
|
-
isHoriz: newHoriz,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
function calcNodePair(nodeA, nodeB) {
|
|
88
|
-
// 确定两个节点间是否存在连线
|
|
89
|
-
const edges = nodeEdgeMap.get(nodeA.id) || [];
|
|
90
|
-
const isLinked = edges.find((edge) => {
|
|
91
|
-
return edge.source === nodeB.id || edge.target === nodeB.id;
|
|
92
|
-
});
|
|
93
|
-
const areaA = nodeA.size[0] * nodeA.size[1];
|
|
94
|
-
const areaB = nodeB.size[0] * nodeB.size[1];
|
|
95
|
-
const node1 = areaA > areaB ? nodeB : nodeA;
|
|
96
|
-
const node2 = areaA > areaB ? nodeA : nodeB;
|
|
97
|
-
const x11 = node1.x - node1.size[0] / 2;
|
|
98
|
-
const y11 = node1.y - node1.size[1] / 2;
|
|
99
|
-
const x12 = node1.x + node1.size[0] / 2;
|
|
100
|
-
const y12 = node1.y + node1.size[1] / 2;
|
|
101
|
-
const x21 = node2.x - node2.size[0] / 2;
|
|
102
|
-
const y21 = node2.y - node2.size[1] / 2;
|
|
103
|
-
const x22 = node2.x + node2.size[0] / 2;
|
|
104
|
-
const y22 = node2.y + node2.size[1] / 2;
|
|
105
|
-
const cx1 = node1.x;
|
|
106
|
-
const cy1 = node1.y;
|
|
107
|
-
const cx2 = node2.x;
|
|
108
|
-
const cy2 = node2.y;
|
|
109
|
-
// Detect if nodes overlap 检查节点之间是否存在覆盖问题
|
|
110
|
-
const isoverlap = ((x12 >= x21) && (x22 >= x11) && (y12 >= y21) && (y22 >= y11));
|
|
111
|
-
let e = 0;
|
|
112
|
-
let distance = 0;
|
|
113
|
-
if (isoverlap) {
|
|
114
|
-
distance = Math.sqrt(Math.pow((cx2 - cx1), 2) + Math.pow((cy2 - cy1), 2));
|
|
115
|
-
// calc area of overlap 计算重复区域的坐标和面积
|
|
116
|
-
const sx1 = x11 > x21 ? x11 : x21;
|
|
117
|
-
const sy1 = y11 > y21 ? y11 : y21;
|
|
118
|
-
const sx2 = x12 < x22 ? x12 : x22;
|
|
119
|
-
const sy2 = y12 < y22 ? y12 : y22;
|
|
120
|
-
const dsx = sx2 - sx1;
|
|
121
|
-
const dsy = sy2 - sy1;
|
|
122
|
-
const sov = dsx * dsy;
|
|
123
|
-
if (distance === 0.0) {
|
|
124
|
-
distance = 0.0000001;
|
|
125
|
-
}
|
|
126
|
-
e = MIN_DIST * 1 / distance * 100 + sov;
|
|
127
|
-
e *= OVERLAP_QUOT;
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
let isHoriz = false;
|
|
131
|
-
const res = distanceToNode(node1, node2, isHoriz);
|
|
132
|
-
distance = res.distance;
|
|
133
|
-
isHoriz = res.isHoriz;
|
|
134
|
-
if (distance <= MIN_DIST) {
|
|
135
|
-
if (distance !== 0) {
|
|
136
|
-
if (isLinked) {
|
|
137
|
-
e += MIN_DIST + OVERLAP_QUOT * 1 / distance;
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
e += MIN_DIST + OVERLAP_QUOT * MIN_DIST / distance;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
e += OVERLAP_QUOT;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
e += distance;
|
|
149
|
-
if (isLinked) {
|
|
150
|
-
e += distance * distance;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return e;
|
|
155
|
-
}
|
|
156
|
-
function calcEnergy(nodes) {
|
|
157
|
-
let energy = 0;
|
|
158
|
-
for (let i = 0; i < nodes.length; i++) {
|
|
159
|
-
const node = nodes[i];
|
|
160
|
-
if ((node.x < 0) || (node.y < 0) || (node.x > graphWidth) || (node.y > graphHeight)) {
|
|
161
|
-
energy += 1000000000000;
|
|
162
|
-
}
|
|
163
|
-
for (let j = i + 1; j < nodes.length; j++) {
|
|
164
|
-
energy += calcNodePair(node, nodes[j]);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return energy;
|
|
168
|
-
}
|
|
169
|
-
function isCorrectPosition(node, newPosition, nodes, edges) {
|
|
170
|
-
const nodeIdxMap = new Map();
|
|
171
|
-
nodes.forEach((o, i) => {
|
|
172
|
-
nodeIdxMap.set(o.id, o);
|
|
173
|
-
});
|
|
174
|
-
const relateEdges = edges.filter((edge) => edge.source === node.id || edge.target === node.id) || [];
|
|
175
|
-
const relateNodes = [];
|
|
176
|
-
relateEdges.forEach((edge) => {
|
|
177
|
-
const otherNodeId = edge.source === node.id ? edge.target : edge.source;
|
|
178
|
-
const otherNode = nodeIdxMap.get(otherNodeId);
|
|
179
|
-
if (otherNode) {
|
|
180
|
-
relateNodes.push(otherNode);
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
let flag = true;
|
|
184
|
-
for (let i = 0; i < relateNodes.length; i++) {
|
|
185
|
-
const item = relateNodes[i];
|
|
186
|
-
// 判断条件调整,节点的坐标不需要完全一致。可以根据节点间的夹角来判断
|
|
187
|
-
const delta = Math.atan((node.y - item.y) / (item.x - node.y)) * 180;
|
|
188
|
-
const newDelta = Math.atan((newPosition.y - item.y) / (item.x - newPosition.y)) * 180;
|
|
189
|
-
const isHor = delta < 30 || delta > 150;
|
|
190
|
-
const newIsHor = newDelta < 30 || newDelta > 150;
|
|
191
|
-
const isVer = delta > 70 && delta < 110;
|
|
192
|
-
const newIsVer = newDelta > 70 && newDelta < 110;
|
|
193
|
-
// 定义四个相似角度区间,0-15度,75-90度,90到105度,165到180度。
|
|
194
|
-
if (isHor && !newIsHor || ((delta * newDelta) < 0)) {
|
|
195
|
-
flag = false;
|
|
196
|
-
break;
|
|
197
|
-
}
|
|
198
|
-
else if (isVer && !newIsVer || ((delta * newDelta) < 0)) {
|
|
199
|
-
flag = false;
|
|
200
|
-
break;
|
|
201
|
-
}
|
|
202
|
-
else if ((item.x - node.x) * (item.x - newPosition.x) < 0) {
|
|
203
|
-
flag = false;
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
else if ((item.y - node.y) * (item.y - newPosition.y) < 0) {
|
|
207
|
-
flag = false;
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
return flag;
|
|
212
|
-
}
|
|
213
|
-
function shuffle(nodes, edges) {
|
|
214
|
-
let foundSmallerEnergy = false;
|
|
215
|
-
// 多次测试发现step为1时的效果最佳。
|
|
216
|
-
const step = 1;
|
|
217
|
-
const wstep = CELL_W * step;
|
|
218
|
-
const hstep = CELL_H * step;
|
|
219
|
-
const wsteps = [wstep, -wstep, 0, 0,];
|
|
220
|
-
const hsteps = [0, 0, hstep, -hstep,];
|
|
221
|
-
for (let i = 0; i < nodes.length; ++i) {
|
|
222
|
-
const node = nodes[i];
|
|
223
|
-
let nodeEnergy = calcNodeEnergy(node, nodes);
|
|
224
|
-
for (let ns = 0; ns < wsteps.length; ns++) {
|
|
225
|
-
// 判断新位置与其他连线节点的位置关系是否违规
|
|
226
|
-
const flag = isCorrectPosition(node, { x: node.x + wsteps[ns], y: node.y + hsteps[ns] }, nodes, edges);
|
|
227
|
-
if (flag) {
|
|
228
|
-
// 节点朝上下左右四个方向移动,找到能量最小的那个位置
|
|
229
|
-
node.x += wsteps[ns];
|
|
230
|
-
node.y += hsteps[ns];
|
|
231
|
-
// 计算移动后节点的能量
|
|
232
|
-
const energy = calcNodeEnergy(node, nodes);
|
|
233
|
-
const rdm = Math.random();
|
|
234
|
-
if (energy < nodeEnergy) {
|
|
235
|
-
nodeEnergy = energy;
|
|
236
|
-
foundSmallerEnergy = true;
|
|
237
|
-
}
|
|
238
|
-
else if (rdm < T && rdm > T_MIN) {
|
|
239
|
-
nodeEnergy = energy;
|
|
240
|
-
foundSmallerEnergy = true;
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
// 回归原位
|
|
244
|
-
node.x -= wsteps[ns];
|
|
245
|
-
node.y -= hsteps[ns];
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
if (T > T_MIN) {
|
|
251
|
-
T *= R;
|
|
252
|
-
}
|
|
253
|
-
// 重新计算图整体的能量
|
|
254
|
-
if (foundSmallerEnergy) {
|
|
255
|
-
return calcEnergy(nodes);
|
|
256
|
-
}
|
|
257
|
-
return 0;
|
|
258
|
-
}
|
|
259
|
-
// 计算节点的能量,
|
|
260
|
-
function calcNodeEnergy(node, nodes) {
|
|
261
|
-
let e = 0.0;
|
|
262
|
-
if ((node.x < 0) || (node.y < 0) ||
|
|
263
|
-
(node.x + node.size[0] + 20 > graphWidth) ||
|
|
264
|
-
(node.y + node.size[1] + 20 > graphHeight)) {
|
|
265
|
-
e += 1000000000000.0;
|
|
266
|
-
}
|
|
267
|
-
for (let i = 0; i < nodes.length; ++i) {
|
|
268
|
-
if (node.id !== nodes[i].id) {
|
|
269
|
-
e += calcNodePair(node, nodes[i]);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
return e;
|
|
273
|
-
}
|
|
274
|
-
function layout(nodes, edges) {
|
|
275
|
-
if (nodes.length === 0) {
|
|
276
|
-
return { nodes, edges };
|
|
277
|
-
}
|
|
278
|
-
nodes.forEach((node) => {
|
|
279
|
-
const relateEdge = edges.filter((edge) => edge.source === node.id || edge.target === node.id);
|
|
280
|
-
nodeEdgeMap.set(node, relateEdge);
|
|
281
|
-
});
|
|
282
|
-
// 1. 初始化
|
|
283
|
-
// 将node按照连接数进行排序
|
|
284
|
-
nodes.sort((node1, node2) => {
|
|
285
|
-
var _a, _b;
|
|
286
|
-
return ((_a = nodeEdgeMap.get(node1.id)) === null || _a === void 0 ? void 0 : _a.length) - ((_b = nodeEdgeMap.get(node2.id)) === null || _b === void 0 ? void 0 : _b.length);
|
|
287
|
-
});
|
|
288
|
-
// 2. 计算图能量
|
|
289
|
-
let minEnergy = calcEnergy(nodes);
|
|
290
|
-
let deSameCount = 20; // de=0 count
|
|
291
|
-
let de = 1; // energy delta
|
|
292
|
-
let prevEnergy = 0;
|
|
293
|
-
// 定义总的迭代次数。超过就停掉,防止死循环
|
|
294
|
-
const MAX_COUNT = 50;
|
|
295
|
-
let count = 0;
|
|
296
|
-
while (deSameCount > 0) {
|
|
297
|
-
count++;
|
|
298
|
-
if (count >= MAX_COUNT) {
|
|
299
|
-
break;
|
|
300
|
-
}
|
|
301
|
-
const ea = shuffle(nodes, edges);
|
|
302
|
-
if (ea !== 0) {
|
|
303
|
-
prevEnergy = ea;
|
|
304
|
-
}
|
|
305
|
-
de = prevEnergy - minEnergy;
|
|
306
|
-
minEnergy = prevEnergy;
|
|
307
|
-
if (de === 0) {
|
|
308
|
-
--deSameCount;
|
|
309
|
-
}
|
|
310
|
-
else {
|
|
311
|
-
deSameCount = 20;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
nodes.forEach((node) => {
|
|
315
|
-
node.x = node.x - node.size[0] / 2;
|
|
316
|
-
node.y = node.y - node.size[1] / 2;
|
|
317
|
-
});
|
|
318
|
-
return {
|
|
319
|
-
nodes,
|
|
320
|
-
edges,
|
|
321
|
-
};
|
|
322
|
-
}
|
|
323
|
-
export default layout;
|
|
324
|
-
//# sourceMappingURL=mysqlWorkbench.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mysqlWorkbench.js","sourceRoot":"","sources":["../../../src/layout/er/mysqlWorkbench.ts"],"names":[],"mappings":"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"}
|