Skip to content

Commit 2866f3f

Browse files
authored
fix: dagre error; (#63)
1 parent a36670b commit 2866f3f

File tree

5 files changed

+16
-6
lines changed

5 files changed

+16
-6
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# ChangeLog
22

3+
#### 0.1.26
4+
5+
- fix: dagre error;
6+
37
#### 0.1.25
48

59
- fix: array flat and Infinite param problem;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/layout",
3-
"version": "0.1.25",
3+
"version": "0.1.26",
44
"description": "graph layout algorithm",
55
"main": "lib/index.js",
66
"module": "es/index.js",

src/layout/dagre/src/order/init-data-order.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@ const initDataOrder = (g: Graph, nodeOrder: string[]) => {
1919
const node = g.node(n);
2020
// 只考虑原有节点,dummy节点需要按照后续算法排出
2121
if (!node || node.dummy) return;
22-
node.fixorder = layers[(node.rank as number)].length; // 设置fixorder为当层的顺序
23-
layers[node.rank as number || 0].push(n);
22+
if (!isNaN(node.rank as number)) {
23+
node.fixorder = layers[node.rank as number].length; // 设置fixorder为当层的顺序
24+
layers[node.rank as number].push(n);
25+
}
2426
});
2527
};
2628

src/layout/dagre/src/order/init-order.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ const initOrder = (g: Graph) => {
2929
if (visited.hasOwnProperty(v)) return;
3030
visited[v] = true;
3131
const node = g.node(v);
32-
layers[node.rank as number || 0].push(v);
32+
if (!isNaN(node.rank as number)) {
33+
layers[node.rank as number].push(v);
34+
}
3335
g.successors(v)?.forEach((child) => dfs(child as any));
3436
};
3537

@@ -42,7 +44,9 @@ const initOrder = (g: Graph) => {
4244
});
4345
const fixOrderNodes = beforeSort.sort((a, b) => (g.node(a).fixorder as number) - (g.node(b).fixorder as number));
4446
fixOrderNodes.forEach((n) => {
45-
layers[g.node(n).rank as number].push(n);
47+
if (!isNaN(g.node(n).rank as number)) {
48+
layers[g.node(n).rank as number].push(n);
49+
}
4650
visited[n] = true;
4751
});
4852

src/layout/dagre/src/order/sort-subgraph.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const sortSubgraph = (g: Graph, v: string, cg: Graph, biasRight: any, usePrev?:
3535

3636
// 添加fixorder信息到entries里边
3737
// TODO: 不考虑复合情况,只用第一个点的fixorder信息,后续考虑更完备的实现
38-
entries.forEach((e) => {
38+
entries.filter(e => !!e.vs || e.vs?.length > 0).forEach((e) => {
3939
const node = g.node(e.vs[0]);
4040
e.fixorder = node.fixorder;
4141
e.order = node.order;

0 commit comments

Comments
 (0)