diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 4ce46f755b..98a09eb46c 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -2,6 +2,8 @@ #### Improvements 🧹 +- `dagre` layouts that have a connection where one endpoint is a container is much improved. [#1011](https://github.com/terrastruct/d2/pull/1011) + #### Bugfixes ⛑️ - Fixes `d2` erroring on malformed user paths (`fdopendir` error). [util-go#10](https://github.com/terrastruct/util-go/pull/10) diff --git a/d2layouts/d2dagrelayout/layout.go b/d2layouts/d2dagrelayout/layout.go index be2f699989..3683051d6b 100644 --- a/d2layouts/d2dagrelayout/layout.go +++ b/d2layouts/d2dagrelayout/layout.go @@ -177,11 +177,27 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err // we will chop the edge where it intersects the container border so it only shows the edge from the container src := edge.Src for len(src.Children) > 0 && src.Class == nil && src.SQLTable == nil { - src = src.ChildrenArray[0] + // We want to get the bottom node of sources, setting its rank higher than all children + src = getLongestEdgeChainTail(g, src) } dst := edge.Dst for len(dst.Children) > 0 && dst.Class == nil && dst.SQLTable == nil { dst = dst.ChildrenArray[0] + + // We want to get the top node of destinations + for _, child := range dst.ChildrenArray { + isHead := true + for _, e := range g.Edges { + if inContainer(e.Src, child) != nil && inContainer(e.Dst, dst) != nil { + isHead = false + break + } + } + if isHead { + dst = child + break + } + } } if edge.SrcArrow && !edge.DstArrow { // for `b <- a`, edge.Edge is `a -> b` and we expect this routing result @@ -550,3 +566,66 @@ func generateAddParentLine(childID, parentID string) string { func generateAddEdgeLine(fromID, toID, edgeID string, width, height int) string { return fmt.Sprintf("g.setEdge({v:`%s`, w:`%s`, name:`%s`}, { width:%d, height:%d, labelpos: `c` });\n", escapeID(fromID), escapeID(toID), escapeID(edgeID), width, height) } + +// getLongestEdgeChainTail gets the node at the end of the longest edge chain, because that will be the end of the container +// and is what external connections should connect with +func getLongestEdgeChainTail(g *d2graph.Graph, container *d2graph.Object) *d2graph.Object { + rank := make(map[*d2graph.Object]int) + + for _, obj := range container.ChildrenArray { + isHead := true + for _, e := range g.Edges { + if inContainer(e.Src, container) != nil && inContainer(e.Dst, obj) != nil { + isHead = false + break + } + } + if !isHead { + continue + } + rank[obj] = 1 + // BFS + queue := []*d2graph.Object{obj} + visited := make(map[*d2graph.Object]struct{}) + for len(queue) > 0 { + curr := queue[0] + queue = queue[1:] + if _, ok := visited[curr]; ok { + continue + } + visited[curr] = struct{}{} + for _, e := range g.Edges { + child := inContainer(e.Dst, container) + if child == curr { + continue + } + if child != nil && inContainer(e.Src, curr) != nil { + rank[child] = go2.Max(rank[child], rank[curr]+1) + queue = append(queue, child) + } + } + } + } + max := int(math.MinInt32) + var tail *d2graph.Object + for _, obj := range container.ChildrenArray { + if rank[obj] >= max { + max = rank[obj] + tail = obj + } + } + return tail +} + +func inContainer(obj, container *d2graph.Object) *d2graph.Object { + if obj == nil { + return nil + } + if obj == container { + return obj + } + if obj.Parent == container { + return obj + } + return inContainer(obj.Parent, container) +} diff --git a/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf index 7c44716266..113e4dbf42 100644 Binary files a/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf and b/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf differ diff --git a/e2etests/testdata/regression/overlapping-edge-label/dagre/board.exp.json b/e2etests/testdata/regression/overlapping-edge-label/dagre/board.exp.json index cd711be4bb..5686cfd760 100644 --- a/e2etests/testdata/regression/overlapping-edge-label/dagre/board.exp.json +++ b/e2etests/testdata/regression/overlapping-edge-label/dagre/board.exp.json @@ -10,7 +10,7 @@ "x": 0, "y": 41 }, - "width": 1221, + "width": 1200, "height": 125, "opacity": 1, "strokeDash": 0, @@ -48,7 +48,7 @@ "id": "k8s.m1", "type": "rectangle", "pos": { - "x": 86, + "x": 40, "y": 70 }, "width": 132, @@ -89,7 +89,7 @@ "id": "k8s.m2", "type": "rectangle", "pos": { - "x": 278, + "x": 232, "y": 70 }, "width": 132, @@ -130,7 +130,7 @@ "id": "k8s.m3", "type": "rectangle", "pos": { - "x": 470, + "x": 424, "y": 70 }, "width": 132, @@ -171,7 +171,7 @@ "id": "k8s.w1", "type": "rectangle", "pos": { - "x": 662, + "x": 616, "y": 70 }, "width": 133, @@ -212,7 +212,7 @@ "id": "k8s.w2", "type": "rectangle", "pos": { - "x": 855, + "x": 809, "y": 70 }, "width": 133, @@ -253,7 +253,7 @@ "id": "k8s.w3", "type": "rectangle", "pos": { - "x": 1048, + "x": 1002, "y": 70 }, "width": 133, @@ -294,10 +294,10 @@ "id": "osvc", "type": "rectangle", "pos": { - "x": 0, + "x": 826, "y": 328 }, - "width": 395, + "width": 364, "height": 125, "opacity": 1, "strokeDash": 0, @@ -335,7 +335,7 @@ "id": "osvc.vm1", "type": "rectangle", "pos": { - "x": 131, + "x": 926, "y": 357 }, "width": 76, @@ -376,7 +376,7 @@ "id": "osvc.vm2", "type": "rectangle", "pos": { - "x": 279, + "x": 1074, "y": 357 }, "width": 76, @@ -442,19 +442,19 @@ "labelPercentage": 0, "route": [ { - "x": 59, + "x": 884.75, "y": 166 }, { - "x": 59, + "x": 884.75, "y": 214.4 }, { - "x": 59, + "x": 884.75, "y": 246.9 }, { - "x": 59, + "x": 884.75, "y": 328.5 } ], @@ -491,20 +491,20 @@ "labelPercentage": 0, "route": [ { - "x": 141, + "x": 966.75, "y": 166 }, { - "x": 141, + "x": 966.75, "y": 214.4 }, { - "x": 141, - "y": 246.9 + "x": 966.75, + "y": 238.7 }, { - "x": 141, - "y": 328.5 + "x": 966.75, + "y": 287.5 } ], "isCurve": true, @@ -540,19 +540,19 @@ "labelPercentage": 0, "route": [ { - "x": 217, + "x": 1042.75, "y": 166 }, { - "x": 217, + "x": 1042.75, "y": 214.4 }, { - "x": 217, + "x": 1042.75, "y": 238.7 }, { - "x": 217, + "x": 1042.75, "y": 287.5 } ], @@ -589,19 +589,19 @@ "labelPercentage": 0, "route": [ { - "x": 278, + "x": 1137, "y": 166 }, { - "x": 278, + "x": 1137, "y": 214.4 }, { - "x": 278, + "x": 1137, "y": 246.9 }, { - "x": 278, + "x": 1137, "y": 328.5 } ], diff --git a/e2etests/testdata/regression/overlapping-edge-label/dagre/sketch.exp.svg b/e2etests/testdata/regression/overlapping-edge-label/dagre/sketch.exp.svg index 0a38b1a1e1..65b4276b10 100644 --- a/e2etests/testdata/regression/overlapping-edge-label/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/overlapping-edge-label/dagre/sketch.exp.svg @@ -1,4 +1,4 @@ -Kubernetesopensvck8s-master1k8s-master2k8s-master3k8s-worker1k8s-worker2k8s-worker3VM1VM2 keycloakheptapodharborvault - - - - - +.fill-N1{fill:#0A0F25;}.fill-N2{fill:#676C7E;}.fill-N3{fill:#9499AB;}.fill-N4{fill:#CFD2DD;}.fill-N5{fill:#DEE1EB;}.fill-N6{fill:#EEF1F8;}.fill-N7{fill:#FFFFFF;}.fill-B1{fill:#0D32B2;}.fill-B2{fill:#0D32B2;}.fill-B3{fill:#E3E9FD;}.fill-B4{fill:#E3E9FD;}.fill-B5{fill:#EDF0FD;}.fill-B6{fill:#F7F8FE;}.fill-AA2{fill:#4A6FF3;}.fill-AA4{fill:#EDF0FD;}.fill-AA5{fill:#F7F8FE;}.fill-AB4{fill:#EDF0FD;}.fill-AB5{fill:#F7F8FE;}.stroke-N1{stroke:#0A0F25;}.stroke-N2{stroke:#676C7E;}.stroke-N3{stroke:#9499AB;}.stroke-N4{stroke:#CFD2DD;}.stroke-N5{stroke:#DEE1EB;}.stroke-N6{stroke:#EEF1F8;}.stroke-N7{stroke:#FFFFFF;}.stroke-B1{stroke:#0D32B2;}.stroke-B2{stroke:#0D32B2;}.stroke-B3{stroke:#E3E9FD;}.stroke-B4{stroke:#E3E9FD;}.stroke-B5{stroke:#EDF0FD;}.stroke-B6{stroke:#F7F8FE;}.stroke-AA2{stroke:#4A6FF3;}.stroke-AA4{stroke:#EDF0FD;}.stroke-AA5{stroke:#F7F8FE;}.stroke-AB4{stroke:#EDF0FD;}.stroke-AB5{stroke:#F7F8FE;}.background-color-N1{background-color:#0A0F25;}.background-color-N2{background-color:#676C7E;}.background-color-N3{background-color:#9499AB;}.background-color-N4{background-color:#CFD2DD;}.background-color-N5{background-color:#DEE1EB;}.background-color-N6{background-color:#EEF1F8;}.background-color-N7{background-color:#FFFFFF;}.background-color-B1{background-color:#0D32B2;}.background-color-B2{background-color:#0D32B2;}.background-color-B3{background-color:#E3E9FD;}.background-color-B4{background-color:#E3E9FD;}.background-color-B5{background-color:#EDF0FD;}.background-color-B6{background-color:#F7F8FE;}.background-color-AA2{background-color:#4A6FF3;}.background-color-AA4{background-color:#EDF0FD;}.background-color-AA5{background-color:#F7F8FE;}.background-color-AB4{background-color:#EDF0FD;}.background-color-AB5{background-color:#F7F8FE;}.color-N1{color:#0A0F25;}.color-N2{color:#676C7E;}.color-N3{color:#9499AB;}.color-N4{color:#CFD2DD;}.color-N5{color:#DEE1EB;}.color-N6{color:#EEF1F8;}.color-N7{color:#FFFFFF;}.color-B1{color:#0D32B2;}.color-B2{color:#0D32B2;}.color-B3{color:#E3E9FD;}.color-B4{color:#E3E9FD;}.color-B5{color:#EDF0FD;}.color-B6{color:#F7F8FE;}.color-AA2{color:#4A6FF3;}.color-AA4{color:#EDF0FD;}.color-AA5{color:#F7F8FE;}.color-AB4{color:#EDF0FD;}.color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>Kubernetesopensvck8s-master1k8s-master2k8s-master3k8s-worker1k8s-worker2k8s-worker3VM1VM2 keycloakheptapodharborvault + + + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/chaos2/dagre/board.exp.json b/e2etests/testdata/stable/chaos2/dagre/board.exp.json index 935416fe1a..1fb61555fa 100644 --- a/e2etests/testdata/stable/chaos2/dagre/board.exp.json +++ b/e2etests/testdata/stable/chaos2/dagre/board.exp.json @@ -10,8 +10,8 @@ "x": 0, "y": 41 }, - "width": 738, - "height": 1480, + "width": 806, + "height": 1314, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -51,8 +51,8 @@ "x": 20, "y": 106 }, - "width": 499, - "height": 1385, + "width": 567, + "height": 1219, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -90,9 +90,9 @@ "type": "rectangle", "pos": { "x": 40, - "y": 887 + "y": 721 }, - "width": 325, + "width": 393, "height": 572, "opacity": 1, "strokeDash": 0, @@ -130,10 +130,10 @@ "id": "aa.bb.cc.dd", "type": "rectangle", "pos": { - "x": 62, - "y": 948 + "x": 60, + "y": 782 }, - "width": 237, + "width": 223, "height": 140, "opacity": 1, "strokeDash": 0, @@ -171,8 +171,8 @@ "id": "aa.bb.cc.dd.ee", "type": "text", "pos": { - "x": 126, - "y": 1008 + "x": 110, + "y": 842 }, "width": 16, "height": 21, @@ -211,8 +211,8 @@ "id": "aa.bb.cc.dd.ff", "type": "rectangle", "pos": { - "x": 202, - "y": 985 + "x": 186, + "y": 819 }, "width": 57, "height": 66, @@ -252,8 +252,8 @@ "id": "aa.bb.cc.gg", "type": "text", "pos": { - "x": 244, - "y": 1209 + "x": 190, + "y": 1043 }, "width": 17, "height": 21, @@ -292,8 +292,8 @@ "id": "aa.bb.cc.hh", "type": "rectangle", "pos": { - "x": 221, - "y": 1355 + "x": 324, + "y": 1189 }, "width": 63, "height": 66, @@ -333,10 +333,10 @@ "id": "aa.bb.ii", "type": "package", "pos": { - "x": 50, + "x": 52, "y": 169 }, - "width": 236, + "width": 469, "height": 161, "opacity": 1, "strokeDash": 0, @@ -374,7 +374,7 @@ "id": "aa.bb.ii.jj", "type": "diamond", "pos": { - "x": 148, + "x": 431, "y": 204 }, "width": 50, @@ -415,8 +415,8 @@ "id": "aa.bb.kk", "type": "oval", "pos": { - "x": 405, - "y": 1335 + "x": 474, + "y": 1169 }, "width": 74, "height": 74, @@ -456,8 +456,8 @@ "id": "aa.ll", "type": "rectangle", "pos": { - "x": 606, - "y": 651 + "x": 670, + "y": 772 }, "width": 54, "height": 66, @@ -497,7 +497,7 @@ "id": "aa.mm", "type": "cylinder", "pos": { - "x": 593, + "x": 662, "y": 433 }, "width": 71, @@ -538,8 +538,8 @@ "id": "aa.nn", "type": "text", "pos": { - "x": 559, - "y": 1344 + "x": 628, + "y": 1178 }, "width": 16, "height": 21, @@ -578,8 +578,8 @@ "id": "aa.oo", "type": "rectangle", "pos": { - "x": 635, - "y": 1321 + "x": 704, + "y": 1155 }, "width": 63, "height": 66, @@ -644,20 +644,20 @@ "labelPercentage": 0, "route": [ { - "x": 134.25, - "y": 1029.5 + "x": 118, + "y": 863.5 }, { - "x": 134.25, - "y": 1076.3 + "x": 118, + "y": 910.3 }, { - "x": 156.1, - "y": 1161.6749469214437 + "x": 132.35, + "y": 995.1959501557633 }, { - "x": 243.5, - "y": 1214.3747346072187 + "x": 189.75, + "y": 1045.9797507788162 } ], "isCurve": true, @@ -693,20 +693,20 @@ "labelPercentage": 0, "route": [ { - "x": 252, - "y": 1230 + "x": 198.25, + "y": 1064 }, { - "x": 252, - "y": 1278.4 + "x": 198.25, + "y": 1112.4 }, { - "x": 252, - "y": 1303.5 + "x": 223.45, + "y": 1140.1 }, { - "x": 252, - "y": 1355.5 + "x": 324.25, + "y": 1202.5 } ], "isCurve": true, @@ -742,68 +742,44 @@ "labelPercentage": 0, "route": [ { - "x": 102, + "x": 104, "y": 331 }, { - "x": 102.4, + "x": 104, "y": 379 }, { - "x": 102.5, + "x": 104, "y": 414.9 }, { - "x": 102.5, + "x": 104, "y": 450.75 }, { - "x": 102.5, + "x": 104, "y": 486.6 }, { - "x": 102.5, - "y": 532.3 - }, - { - "x": 102.5, - "y": 565 - }, - { - "x": 102.5, - "y": 597.7 - }, - { - "x": 102.5, - "y": 636.1 - }, - { - "x": 102.5, - "y": 661 + "x": 104, + "y": 534.4 }, { - "x": 102.5, - "y": 685.9 + "x": 104, + "y": 570.25 }, { - "x": 102.5, - "y": 721.2 + "x": 104, + "y": 606.1 }, { - "x": 102.5, - "y": 749.25 + "x": 104, + "y": 708.8 }, { - "x": 102.5, - "y": 777.3 - }, - { - "x": 102.5, - "y": 874.8 - }, - { - "x": 102.5, - "y": 948 + "x": 104, + "y": 782 } ], "isCurve": true, @@ -839,12 +815,12 @@ "labelPercentage": 0, "route": [ { - "x": 605.75, - "y": 689.5313901345291 + "x": 670.25, + "y": 811.7993675333802 }, { - "x": 518.75, - "y": 741.5313901345291 + "x": 587.25, + "y": 866.7993675333802 } ], "animated": false, @@ -879,32 +855,20 @@ "labelPercentage": 0, "route": [ { - "x": 593, + "x": 662, "y": 501 }, { - "x": 246.2, - "y": 581.4 - }, - { - "x": 159.5, - "y": 618.1 - }, - { - "x": 159.5, - "y": 643 + "x": 284.79999999999995, + "y": 589.8 }, { - "x": 159.5, - "y": 667.9 + "x": 190.5, + "y": 634 }, { - "x": 159.5, - "y": 800 - }, - { - "x": 159.5, - "y": 888 + "x": 190.5, + "y": 722 } ], "isCurve": true, @@ -940,20 +904,32 @@ "labelPercentage": 0, "route": [ { - "x": 631, + "x": 697, "y": 552 }, { - "x": 632.4, - "y": 591.6 + "x": 697.2, + "y": 600 }, { - "x": 632.75, - "y": 611.5 + "x": 697.25, + "y": 624.1 }, { - "x": 632.75, - "y": 651.5 + "x": 697.25, + "y": 642.25 + }, + { + "x": 697.25, + "y": 660.4 + }, + { + "x": 697.25, + "y": 732.5 + }, + { + "x": 697.25, + "y": 772.5 } ], "isCurve": true, @@ -989,12 +965,12 @@ "labelPercentage": 0, "route": [ { - "x": 593, - "y": 501 + "x": 662, + "y": 505 }, { - "x": 519, - "y": 556.4364896073903 + "x": 587.75, + "y": 568.4633307868602 } ], "animated": false, @@ -1029,68 +1005,20 @@ "labelPercentage": 0, "route": [ { - "x": 605.75, - "y": 692.5526315789474 - }, - { - "x": 376.54999999999995, - "y": 760.9105263157895 - }, - { - "x": 319.25, - "y": 790.1 - }, - { - "x": 319.25, - "y": 808.25 - }, - { - "x": 319.25, - "y": 826.4 + "x": 670.25, + "y": 811.1842105263158 }, { - "x": 319.25, - "y": 848.5 + "x": 376.45, + "y": 873.0368421052632 }, { - "x": 319.25, - "y": 863.5 - }, - { - "x": 319.25, - "y": 878.5 - }, - { - "x": 319.25, - "y": 905.1 - }, - { - "x": 319.25, - "y": 930 - }, - { - "x": 319.25, - "y": 954.9 - }, - { - "x": 319.25, - "y": 988.1 - }, - { - "x": 319.25, - "y": 1013 - }, - { - "x": 319.25, - "y": 1037.9 - }, - { - "x": 307.65, - "y": 1133.9 + "x": 283.8, + "y": 968.7 }, { - "x": 261.25, - "y": 1209.5 + "x": 207, + "y": 1047.5 } ], "isCurve": true, @@ -1126,19 +1054,19 @@ "labelPercentage": 0, "route": [ { - "x": 593, - "y": 481 + "x": 662, + "y": 473 }, { - "x": 313.4, - "y": 394.6 + "x": 517.8, + "y": 393 }, { - "x": 243.4, + "x": 481.8, "y": 364.6 }, { - "x": 243, + "x": 482, "y": 331 } ], @@ -1175,23 +1103,14 @@ "labelPercentage": 0, "route": [ { - "x": 238.75, - "y": 887.5 + "x": 434, + "y": 896.5 }, { - "x": 238.75, - "y": 799.9 - }, - { - "x": 312.15, - "y": 760.5814720812183 - }, - { - "x": 605.75, - "y": 690.9073604060914 + "x": 670, + "y": 813.5 } ], - "isCurve": true, "animated": false, "tooltip": "", "icon": null, @@ -1224,32 +1143,56 @@ "labelPercentage": 0, "route": [ { - "x": 215, + "x": 454, "y": 331 }, { - "x": 215.4, + "x": 453.8, "y": 364.6 }, { - "x": 215.5, + "x": 453.75, "y": 396.9 }, { - "x": 215.5, + "x": 453.75, "y": 432.75 }, { - "x": 215.5, + "x": 453.75, "y": 468.6 }, { - "x": 293.55, - "y": 617.0258238466147 + "x": 453.75, + "y": 516.4 + }, + { + "x": 453.75, + "y": 552.25 + }, + { + "x": 453.75, + "y": 588.1 + }, + { + "x": 453.75, + "y": 624.1 + }, + { + "x": 453.75, + "y": 642.25 + }, + { + "x": 453.75, + "y": 660.4 + }, + { + "x": 496.95, + "y": 737.3 }, { - "x": 605.75, - "y": 679.1291192330737 + "x": 669.75, + "y": 796.5 } ], "isCurve": true, diff --git a/e2etests/testdata/stable/chaos2/dagre/sketch.exp.svg b/e2etests/testdata/stable/chaos2/dagre/sketch.exp.svg index 7fcffbc46a..7a64bd729e 100644 --- a/e2etests/testdata/stable/chaos2/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/chaos2/dagre/sketch.exp.svg @@ -1,4 +1,4 @@ -agdfbhec - +.fill-N1{fill:#0A0F25;}.fill-N2{fill:#676C7E;}.fill-N3{fill:#9499AB;}.fill-N4{fill:#CFD2DD;}.fill-N5{fill:#DEE1EB;}.fill-N6{fill:#EEF1F8;}.fill-N7{fill:#FFFFFF;}.fill-B1{fill:#0D32B2;}.fill-B2{fill:#0D32B2;}.fill-B3{fill:#E3E9FD;}.fill-B4{fill:#E3E9FD;}.fill-B5{fill:#EDF0FD;}.fill-B6{fill:#F7F8FE;}.fill-AA2{fill:#4A6FF3;}.fill-AA4{fill:#EDF0FD;}.fill-AA5{fill:#F7F8FE;}.fill-AB4{fill:#EDF0FD;}.fill-AB5{fill:#F7F8FE;}.stroke-N1{stroke:#0A0F25;}.stroke-N2{stroke:#676C7E;}.stroke-N3{stroke:#9499AB;}.stroke-N4{stroke:#CFD2DD;}.stroke-N5{stroke:#DEE1EB;}.stroke-N6{stroke:#EEF1F8;}.stroke-N7{stroke:#FFFFFF;}.stroke-B1{stroke:#0D32B2;}.stroke-B2{stroke:#0D32B2;}.stroke-B3{stroke:#E3E9FD;}.stroke-B4{stroke:#E3E9FD;}.stroke-B5{stroke:#EDF0FD;}.stroke-B6{stroke:#F7F8FE;}.stroke-AA2{stroke:#4A6FF3;}.stroke-AA4{stroke:#EDF0FD;}.stroke-AA5{stroke:#F7F8FE;}.stroke-AB4{stroke:#EDF0FD;}.stroke-AB5{stroke:#F7F8FE;}.background-color-N1{background-color:#0A0F25;}.background-color-N2{background-color:#676C7E;}.background-color-N3{background-color:#9499AB;}.background-color-N4{background-color:#CFD2DD;}.background-color-N5{background-color:#DEE1EB;}.background-color-N6{background-color:#EEF1F8;}.background-color-N7{background-color:#FFFFFF;}.background-color-B1{background-color:#0D32B2;}.background-color-B2{background-color:#0D32B2;}.background-color-B3{background-color:#E3E9FD;}.background-color-B4{background-color:#E3E9FD;}.background-color-B5{background-color:#EDF0FD;}.background-color-B6{background-color:#F7F8FE;}.background-color-AA2{background-color:#4A6FF3;}.background-color-AA4{background-color:#EDF0FD;}.background-color-AA5{background-color:#F7F8FE;}.background-color-AB4{background-color:#EDF0FD;}.background-color-AB5{background-color:#F7F8FE;}.color-N1{color:#0A0F25;}.color-N2{color:#676C7E;}.color-N3{color:#9499AB;}.color-N4{color:#CFD2DD;}.color-N5{color:#DEE1EB;}.color-N6{color:#EEF1F8;}.color-N7{color:#FFFFFF;}.color-B1{color:#0D32B2;}.color-B2{color:#0D32B2;}.color-B3{color:#E3E9FD;}.color-B4{color:#E3E9FD;}.color-B5{color:#EDF0FD;}.color-B6{color:#F7F8FE;}.color-AA2{color:#4A6FF3;}.color-AA4{color:#EDF0FD;}.color-AA5{color:#F7F8FE;}.color-AB4{color:#EDF0FD;}.color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>agdfbhec + \ No newline at end of file diff --git a/e2etests/testdata/stable/different_subgraphs/dagre/board.exp.json b/e2etests/testdata/stable/different_subgraphs/dagre/board.exp.json index 933ee0f3bc..d23f99164b 100644 --- a/e2etests/testdata/stable/different_subgraphs/dagre/board.exp.json +++ b/e2etests/testdata/stable/different_subgraphs/dagre/board.exp.json @@ -7,7 +7,7 @@ "id": "a", "type": "rectangle", "pos": { - "x": 229, + "x": 301, "y": 50 }, "width": 53, @@ -48,7 +48,7 @@ "id": "tree", "type": "rectangle", "pos": { - "x": 218, + "x": 75, "y": 216 }, "width": 74, @@ -89,7 +89,7 @@ "id": "and", "type": "rectangle", "pos": { - "x": 6, + "x": 292, "y": 216 }, "width": 72, @@ -130,7 +130,7 @@ "id": "nodes", "type": "rectangle", "pos": { - "x": 352, + "x": 424, "y": 216 }, "width": 87, @@ -171,7 +171,7 @@ "id": "some", "type": "rectangle", "pos": { - "x": 0, + "x": 286, "y": 382 }, "width": 83, @@ -212,7 +212,7 @@ "id": "more", "type": "rectangle", "pos": { - "x": 143, + "x": 0, "y": 382 }, "width": 81, @@ -253,7 +253,7 @@ "id": "many", "type": "rectangle", "pos": { - "x": 284, + "x": 141, "y": 382 }, "width": 85, @@ -294,7 +294,7 @@ "id": "then", "type": "rectangle", "pos": { - "x": 508, + "x": 580, "y": 50 }, "width": 78, @@ -335,7 +335,7 @@ "id": "here", "type": "rectangle", "pos": { - "x": 499, + "x": 571, "y": 216 }, "width": 76, @@ -376,7 +376,7 @@ "id": "you", "type": "rectangle", "pos": { - "x": 501, + "x": 573, "y": 382 }, "width": 72, @@ -417,7 +417,7 @@ "id": "have", "type": "rectangle", "pos": { - "x": 664, + "x": 736, "y": 50 }, "width": 78, @@ -458,7 +458,7 @@ "id": "hierarchy", "type": "rectangle", "pos": { - "x": 637, + "x": 708, "y": 216 }, "width": 113, @@ -499,10 +499,10 @@ "id": "finally", "type": "rectangle", "pos": { - "x": 791, + "x": 863, "y": 41 }, - "width": 321, + "width": 311, "height": 623, "opacity": 1, "strokeDash": 0, @@ -540,8 +540,8 @@ "id": "another", "type": "rectangle", "pos": { - "x": 1303, - "y": 382 + "x": 879, + "y": 764 }, "width": 103, "height": 66, @@ -581,8 +581,8 @@ "id": "of", "type": "rectangle", "pos": { - "x": 1324, - "y": 548 + "x": 901, + "y": 930 }, "width": 60, "height": 66, @@ -622,8 +622,8 @@ "id": "nesting", "type": "rectangle", "pos": { - "x": 1153, - "y": 216 + "x": 1214, + "y": 548 }, "width": 98, "height": 66, @@ -663,8 +663,8 @@ "id": "trees", "type": "rectangle", "pos": { - "x": 1161, - "y": 382 + "x": 1168, + "y": 764 }, "width": 82, "height": 66, @@ -704,7 +704,7 @@ "id": "finally.a", "type": "rectangle", "pos": { - "x": 1002, + "x": 1000, "y": 236 }, "width": 53, @@ -745,7 +745,7 @@ "id": "finally.tree", "type": "rectangle", "pos": { - "x": 851, + "x": 922, "y": 402 }, "width": 74, @@ -786,7 +786,7 @@ "id": "finally.inside", "type": "rectangle", "pos": { - "x": 985, + "x": 982, "y": 70 }, "width": 88, @@ -827,7 +827,7 @@ "id": "finally.hierarchy", "type": "rectangle", "pos": { - "x": 831, + "x": 903, "y": 568 }, "width": 113, @@ -868,7 +868,7 @@ "id": "finally.root", "type": "rectangle", "pos": { - "x": 985, + "x": 1056, "y": 402 }, "width": 75, @@ -934,19 +934,19 @@ "labelPercentage": 0, "route": [ { - "x": 255, - "y": 116 + "x": 301, + "y": 93.20649651972158 }, { - "x": 255, - "y": 156 + "x": 149.79999999999998, + "y": 151.44129930394433 }, { - "x": 255, + "x": 112, "y": 176 }, { - "x": 255, + "x": 112, "y": 216 } ], @@ -983,19 +983,19 @@ "labelPercentage": 0, "route": [ { - "x": 228.5, - "y": 93.30210772833723 + "x": 327.5, + "y": 116 }, { - "x": 78.9, - "y": 151.46042154566746 + "x": 327.5, + "y": 156 }, { - "x": 41.5, + "x": 327.5, "y": 176 }, { - "x": 41.5, + "x": 327.5, "y": 216 } ], @@ -1032,19 +1032,19 @@ "labelPercentage": 0, "route": [ { - "x": 282.5, - "y": 98.65480427046263 + "x": 354, + "y": 98.76702508960574 }, { - "x": 372.9, - "y": 152.53096085409254 + "x": 444.4, + "y": 152.55340501792114 }, { - "x": 395.5, + "x": 467, "y": 176 }, { - "x": 395.5, + "x": 467, "y": 216 } ], @@ -1081,19 +1081,19 @@ "labelPercentage": 0, "route": [ { - "x": 41.5, + "x": 327.5, "y": 282 }, { - "x": 41.5, + "x": 327.5, "y": 322 }, { - "x": 41.5, + "x": 327.5, "y": 342 }, { - "x": 41.5, + "x": 327.5, "y": 382 } ], @@ -1130,19 +1130,19 @@ "labelPercentage": 0, "route": [ { - "x": 226.5722891566265, + "x": 83.57228915662651, "y": 282 }, { - "x": 192.1144578313253, + "x": 49.1144578313253, "y": 322 }, { - "x": 183.5, + "x": 40.5, "y": 342 }, { - "x": 183.5, + "x": 40.5, "y": 382 } ], @@ -1179,19 +1179,19 @@ "labelPercentage": 0, "route": [ { - "x": 283.52710843373495, + "x": 140.4277108433735, "y": 282 }, { - "x": 318.105421686747, + "x": 174.8855421686747, "y": 322 }, { - "x": 326.75, + "x": 183.5, "y": 342 }, { - "x": 326.75, + "x": 183.5, "y": 382 } ], @@ -1228,19 +1228,19 @@ "labelPercentage": 0, "route": [ { - "x": 543.0240963855422, + "x": 614.5240963855422, "y": 116 }, { - "x": 538.2048192771084, + "x": 609.7048192771084, "y": 156 }, { - "x": 537, + "x": 608.5, "y": 176 }, { - "x": 537, + "x": 608.5, "y": 216 } ], @@ -1277,19 +1277,19 @@ "labelPercentage": 0, "route": [ { - "x": 537, + "x": 608.5, "y": 282 }, { - "x": 537, + "x": 608.5, "y": 322 }, { - "x": 537, + "x": 608.5, "y": 342 }, { - "x": 537, + "x": 608.5, "y": 382 } ], @@ -1326,19 +1326,19 @@ "labelPercentage": 0, "route": [ { - "x": 703.25, + "x": 774.75, "y": 116 }, { - "x": 703.25, + "x": 774.75, "y": 156 }, { - "x": 702.05, + "x": 773.55, "y": 176 }, { - "x": 697.25, + "x": 768.75, "y": 216 } ], @@ -1375,19 +1375,19 @@ "labelPercentage": 0, "route": [ { - "x": 577.7138554216867, + "x": 649.2138554216867, "y": 116 }, { - "x": 614.9427710843373, + "x": 686.4427710843373, "y": 156 }, { - "x": 632.65, + "x": 704.15, "y": 176 }, { - "x": 666.25, + "x": 737.75, "y": 216 } ], @@ -1424,14 +1424,23 @@ "labelPercentage": 0, "route": [ { - "x": 1112.75, - "y": 344 + "x": 930.75, + "y": 664 }, { - "x": 1302.75, - "y": 399.92239858906527 + "x": 930.75, + "y": 704 + }, + { + "x": 930.75, + "y": 724 + }, + { + "x": 930.75, + "y": 764 } ], + "isCurve": true, "animated": false, "tooltip": "", "icon": null, @@ -1464,20 +1473,20 @@ "labelPercentage": 0, "route": [ { - "x": 1354.25, - "y": 448 + "x": 930.75, + "y": 830 }, { - "x": 1354.25, - "y": 488 + "x": 930.75, + "y": 870 }, { - "x": 1354.25, - "y": 508 + "x": 930.75, + "y": 890 }, { - "x": 1354.25, - "y": 548 + "x": 930.75, + "y": 930 } ], "isCurve": true, @@ -1513,20 +1522,20 @@ "labelPercentage": 0, "route": [ { - "x": 1201.75, - "y": 282 + "x": 1263.25, + "y": 614 }, { - "x": 1201.75, - "y": 322 + "x": 1263.25, + "y": 654 }, { - "x": 1201.75, - "y": 342 + "x": 1256.65, + "y": 724 }, { - "x": 1201.75, - "y": 382 + "x": 1230.25, + "y": 764 } ], "isCurve": true, @@ -1562,14 +1571,23 @@ "labelPercentage": 0, "route": [ { - "x": 1112.75, - "y": 366 + "x": 1055, + "y": 664 + }, + { + "x": 1055, + "y": 704 }, { - "x": 1160.75, - "y": 392.4635761589404 + "x": 1077.55, + "y": 726.1733333333333 + }, + { + "x": 1167.75, + "y": 774.8666666666667 } ], + "isCurve": true, "animated": false, "tooltip": "", "icon": null, @@ -1602,19 +1620,19 @@ "labelPercentage": 0, "route": [ { - "x": 1002.25, - "y": 285.0716814159292 + "x": 999.75, + "y": 302.20631970260223 }, { - "x": 910.45, - "y": 339.01433628318586 + "x": 967.15, + "y": 342.44126394052046 }, { - "x": 887.5, + "x": 959, "y": 362.5 }, { - "x": 887.5, + "x": 959, "y": 402.5 } ], @@ -1651,19 +1669,19 @@ "labelPercentage": 0, "route": [ { - "x": 1028.75, + "x": 1026.25, "y": 136.5 }, { - "x": 1028.75, + "x": 1026.25, "y": 176.5 }, { - "x": 1028.75, + "x": 1026.25, "y": 196.5 }, { - "x": 1028.75, + "x": 1026.25, "y": 236.5 } ], @@ -1700,19 +1718,19 @@ "labelPercentage": 0, "route": [ { - "x": 887.5, + "x": 959, "y": 468.5 }, { - "x": 887.5, + "x": 959, "y": 508.5 }, { - "x": 887.5, + "x": 959, "y": 528.5 }, { - "x": 887.5, + "x": 959, "y": 568.5 } ], @@ -1749,19 +1767,19 @@ "labelPercentage": 0, "route": [ { - "x": 1026.066265060241, - "y": 302.5 + "x": 1052.75, + "y": 302.20631970260223 }, { - "x": 1022.8132530120482, - "y": 342.5 + "x": 1085.35, + "y": 342.44126394052046 }, { - "x": 1022, + "x": 1093.5, "y": 362.5 }, { - "x": 1022, + "x": 1093.5, "y": 402.5 } ], diff --git a/e2etests/testdata/stable/different_subgraphs/dagre/sketch.exp.svg b/e2etests/testdata/stable/different_subgraphs/dagre/sketch.exp.svg index cc87982409..6cc2e41159 100644 --- a/e2etests/testdata/stable/different_subgraphs/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/different_subgraphs/dagre/sketch.exp.svg @@ -1,4 +1,4 @@ -atreeandnodessomemoremanythenhereyouhavehierarchyfinallyanotherofnestingtreesatreeinsidehierarchyroot - +.fill-N1{fill:#0A0F25;}.fill-N2{fill:#676C7E;}.fill-N3{fill:#9499AB;}.fill-N4{fill:#CFD2DD;}.fill-N5{fill:#DEE1EB;}.fill-N6{fill:#EEF1F8;}.fill-N7{fill:#FFFFFF;}.fill-B1{fill:#0D32B2;}.fill-B2{fill:#0D32B2;}.fill-B3{fill:#E3E9FD;}.fill-B4{fill:#E3E9FD;}.fill-B5{fill:#EDF0FD;}.fill-B6{fill:#F7F8FE;}.fill-AA2{fill:#4A6FF3;}.fill-AA4{fill:#EDF0FD;}.fill-AA5{fill:#F7F8FE;}.fill-AB4{fill:#EDF0FD;}.fill-AB5{fill:#F7F8FE;}.stroke-N1{stroke:#0A0F25;}.stroke-N2{stroke:#676C7E;}.stroke-N3{stroke:#9499AB;}.stroke-N4{stroke:#CFD2DD;}.stroke-N5{stroke:#DEE1EB;}.stroke-N6{stroke:#EEF1F8;}.stroke-N7{stroke:#FFFFFF;}.stroke-B1{stroke:#0D32B2;}.stroke-B2{stroke:#0D32B2;}.stroke-B3{stroke:#E3E9FD;}.stroke-B4{stroke:#E3E9FD;}.stroke-B5{stroke:#EDF0FD;}.stroke-B6{stroke:#F7F8FE;}.stroke-AA2{stroke:#4A6FF3;}.stroke-AA4{stroke:#EDF0FD;}.stroke-AA5{stroke:#F7F8FE;}.stroke-AB4{stroke:#EDF0FD;}.stroke-AB5{stroke:#F7F8FE;}.background-color-N1{background-color:#0A0F25;}.background-color-N2{background-color:#676C7E;}.background-color-N3{background-color:#9499AB;}.background-color-N4{background-color:#CFD2DD;}.background-color-N5{background-color:#DEE1EB;}.background-color-N6{background-color:#EEF1F8;}.background-color-N7{background-color:#FFFFFF;}.background-color-B1{background-color:#0D32B2;}.background-color-B2{background-color:#0D32B2;}.background-color-B3{background-color:#E3E9FD;}.background-color-B4{background-color:#E3E9FD;}.background-color-B5{background-color:#EDF0FD;}.background-color-B6{background-color:#F7F8FE;}.background-color-AA2{background-color:#4A6FF3;}.background-color-AA4{background-color:#EDF0FD;}.background-color-AA5{background-color:#F7F8FE;}.background-color-AB4{background-color:#EDF0FD;}.background-color-AB5{background-color:#F7F8FE;}.color-N1{color:#0A0F25;}.color-N2{color:#676C7E;}.color-N3{color:#9499AB;}.color-N4{color:#CFD2DD;}.color-N5{color:#DEE1EB;}.color-N6{color:#EEF1F8;}.color-N7{color:#FFFFFF;}.color-B1{color:#0D32B2;}.color-B2{color:#0D32B2;}.color-B3{color:#E3E9FD;}.color-B4{color:#E3E9FD;}.color-B5{color:#EDF0FD;}.color-B6{color:#F7F8FE;}.color-AA2{color:#4A6FF3;}.color-AA4{color:#EDF0FD;}.color-AA5{color:#F7F8FE;}.color-AB4{color:#EDF0FD;}.color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>atreeandnodessomemoremanythenhereyouhavehierarchyfinallyanotherofnestingtreesatreeinsidehierarchyroot + \ No newline at end of file diff --git a/e2etests/testdata/stable/direction/dagre/board.exp.json b/e2etests/testdata/stable/direction/dagre/board.exp.json index 3c67c18f3a..a8b81a5a5a 100644 --- a/e2etests/testdata/stable/direction/dagre/board.exp.json +++ b/e2etests/testdata/stable/direction/dagre/board.exp.json @@ -7,7 +7,7 @@ "id": "a", "type": "rectangle", "pos": { - "x": 114, + "x": 61, "y": 0 }, "width": 53, @@ -51,8 +51,8 @@ "x": 0, "y": 207 }, - "width": 297, - "height": 1055, + "width": 174, + "height": 1553, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -89,8 +89,8 @@ "id": "c", "type": "rectangle", "pos": { - "x": 338, - "y": 432 + "x": 61, + "y": 1860 }, "width": 53, "height": 66, @@ -130,8 +130,8 @@ "id": "d", "type": "rectangle", "pos": { - "x": 338, - "y": 598 + "x": 60, + "y": 2026 }, "width": 54, "height": 66, @@ -171,8 +171,8 @@ "id": "e", "type": "rectangle", "pos": { - "x": 338, - "y": 764 + "x": 61, + "y": 2192 }, "width": 53, "height": 66, @@ -212,7 +212,7 @@ "id": "b.1", "type": "rectangle", "pos": { - "x": 114, + "x": 61, "y": 236 }, "width": 52, @@ -256,7 +256,7 @@ "x": 20, "y": 438 }, - "width": 143, + "width": 134, "height": 794, "opacity": 1, "strokeDash": 0, @@ -294,8 +294,8 @@ "id": "b.3", "type": "rectangle", "pos": { - "x": 204, - "y": 618 + "x": 61, + "y": 1332 }, "width": 53, "height": 66, @@ -335,8 +335,8 @@ "id": "b.4", "type": "rectangle", "pos": { - "x": 204, - "y": 784 + "x": 60, + "y": 1498 }, "width": 54, "height": 66, @@ -376,8 +376,8 @@ "id": "b.5", "type": "rectangle", "pos": { - "x": 204, - "y": 950 + "x": 61, + "y": 1664 }, "width": 53, "height": 66, @@ -417,7 +417,7 @@ "id": "b.2.a", "type": "rectangle", "pos": { - "x": 71, + "x": 61, "y": 470 }, "width": 53, @@ -647,19 +647,19 @@ "labelPercentage": 0, "route": [ { - "x": 140.25, + "x": 87, "y": 66 }, { - "x": 140.25, + "x": 87, "y": 106 }, { - "x": 140.25, + "x": 87, "y": 126 }, { - "x": 140.25, + "x": 87, "y": 166 } ], @@ -696,14 +696,23 @@ "labelPercentage": 0, "route": [ { - "x": 297.75, - "y": 423 + "x": 87, + "y": 1760 }, { - "x": 337.75, - "y": 448 + "x": 87, + "y": 1800 + }, + { + "x": 87, + "y": 1820 + }, + { + "x": 87, + "y": 1860 } ], + "isCurve": true, "animated": false, "tooltip": "", "icon": null, @@ -736,20 +745,20 @@ "labelPercentage": 0, "route": [ { - "x": 364.75, - "y": 498 + "x": 87, + "y": 1926 }, { - "x": 364.75, - "y": 538 + "x": 87, + "y": 1966 }, { - "x": 364.75, - "y": 558 + "x": 87, + "y": 1986 }, { - "x": 364.75, - "y": 598 + "x": 87, + "y": 2026 } ], "isCurve": true, @@ -785,20 +794,20 @@ "labelPercentage": 0, "route": [ { - "x": 364.75, - "y": 664 + "x": 87, + "y": 2092 }, { - "x": 364.75, - "y": 704 + "x": 87, + "y": 2132 }, { - "x": 364.75, - "y": 724 + "x": 87, + "y": 2152 }, { - "x": 364.75, - "y": 764 + "x": 87, + "y": 2192 } ], "isCurve": true, @@ -834,19 +843,19 @@ "labelPercentage": 0, "route": [ { - "x": 123.05421686746988, + "x": 87, "y": 302.5 }, { - "x": 102.21084337349397, + "x": 87, "y": 342.5 }, { - "x": 97, + "x": 87, "y": 362.5 }, { - "x": 97, + "x": 87, "y": 402.5 } ], @@ -883,14 +892,23 @@ "labelPercentage": 0, "route": [ { - "x": 163.5, - "y": 601.5 + "x": 87, + "y": 1232.5 + }, + { + "x": 87, + "y": 1272.5 + }, + { + "x": 87, + "y": 1292.5 }, { - "x": 204.5, - "y": 631.5 + "x": 87, + "y": 1332.5 } ], + "isCurve": true, "animated": false, "tooltip": "", "icon": null, @@ -923,20 +941,20 @@ "labelPercentage": 0, "route": [ { - "x": 230.75, - "y": 684.5 + "x": 87, + "y": 1398.5 }, { - "x": 230.75, - "y": 724.5 + "x": 87, + "y": 1438.5 }, { - "x": 230.75, - "y": 744.5 + "x": 87, + "y": 1458.5 }, { - "x": 230.75, - "y": 784.5 + "x": 87, + "y": 1498.5 } ], "isCurve": true, @@ -972,20 +990,20 @@ "labelPercentage": 0, "route": [ { - "x": 230.75, - "y": 850.5 + "x": 87, + "y": 1564.5 }, { - "x": 230.75, - "y": 890.5 + "x": 87, + "y": 1604.5 }, { - "x": 230.75, - "y": 910.5 + "x": 87, + "y": 1624.5 }, { - "x": 230.75, - "y": 950.5 + "x": 87, + "y": 1664.5 } ], "isCurve": true, @@ -1021,11 +1039,11 @@ "labelPercentage": 0, "route": [ { - "x": 93.02409638554217, + "x": 87, "y": 536.5 }, { - "x": 88.20481927710843, + "x": 87, "y": 576.5 }, { diff --git a/e2etests/testdata/stable/direction/dagre/sketch.exp.svg b/e2etests/testdata/stable/direction/dagre/sketch.exp.svg index 8350839545..46770f48dc 100644 --- a/e2etests/testdata/stable/direction/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/direction/dagre/sketch.exp.svg @@ -1,4 +1,4 @@ -abcde12345abcde - +.fill-N1{fill:#0A0F25;}.fill-N2{fill:#676C7E;}.fill-N3{fill:#9499AB;}.fill-N4{fill:#CFD2DD;}.fill-N5{fill:#DEE1EB;}.fill-N6{fill:#EEF1F8;}.fill-N7{fill:#FFFFFF;}.fill-B1{fill:#0D32B2;}.fill-B2{fill:#0D32B2;}.fill-B3{fill:#E3E9FD;}.fill-B4{fill:#E3E9FD;}.fill-B5{fill:#EDF0FD;}.fill-B6{fill:#F7F8FE;}.fill-AA2{fill:#4A6FF3;}.fill-AA4{fill:#EDF0FD;}.fill-AA5{fill:#F7F8FE;}.fill-AB4{fill:#EDF0FD;}.fill-AB5{fill:#F7F8FE;}.stroke-N1{stroke:#0A0F25;}.stroke-N2{stroke:#676C7E;}.stroke-N3{stroke:#9499AB;}.stroke-N4{stroke:#CFD2DD;}.stroke-N5{stroke:#DEE1EB;}.stroke-N6{stroke:#EEF1F8;}.stroke-N7{stroke:#FFFFFF;}.stroke-B1{stroke:#0D32B2;}.stroke-B2{stroke:#0D32B2;}.stroke-B3{stroke:#E3E9FD;}.stroke-B4{stroke:#E3E9FD;}.stroke-B5{stroke:#EDF0FD;}.stroke-B6{stroke:#F7F8FE;}.stroke-AA2{stroke:#4A6FF3;}.stroke-AA4{stroke:#EDF0FD;}.stroke-AA5{stroke:#F7F8FE;}.stroke-AB4{stroke:#EDF0FD;}.stroke-AB5{stroke:#F7F8FE;}.background-color-N1{background-color:#0A0F25;}.background-color-N2{background-color:#676C7E;}.background-color-N3{background-color:#9499AB;}.background-color-N4{background-color:#CFD2DD;}.background-color-N5{background-color:#DEE1EB;}.background-color-N6{background-color:#EEF1F8;}.background-color-N7{background-color:#FFFFFF;}.background-color-B1{background-color:#0D32B2;}.background-color-B2{background-color:#0D32B2;}.background-color-B3{background-color:#E3E9FD;}.background-color-B4{background-color:#E3E9FD;}.background-color-B5{background-color:#EDF0FD;}.background-color-B6{background-color:#F7F8FE;}.background-color-AA2{background-color:#4A6FF3;}.background-color-AA4{background-color:#EDF0FD;}.background-color-AA5{background-color:#F7F8FE;}.background-color-AB4{background-color:#EDF0FD;}.background-color-AB5{background-color:#F7F8FE;}.color-N1{color:#0A0F25;}.color-N2{color:#676C7E;}.color-N3{color:#9499AB;}.color-N4{color:#CFD2DD;}.color-N5{color:#DEE1EB;}.color-N6{color:#EEF1F8;}.color-N7{color:#FFFFFF;}.color-B1{color:#0D32B2;}.color-B2{color:#0D32B2;}.color-B3{color:#E3E9FD;}.color-B4{color:#E3E9FD;}.color-B5{color:#EDF0FD;}.color-B6{color:#F7F8FE;}.color-AA2{color:#4A6FF3;}.color-AA4{color:#EDF0FD;}.color-AA5{color:#F7F8FE;}.color-AB4{color:#EDF0FD;}.color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>abcde12345abcde + \ No newline at end of file diff --git a/e2etests/testdata/stable/one_container_loop/dagre/board.exp.json b/e2etests/testdata/stable/one_container_loop/dagre/board.exp.json index 17fa5d4eaa..732fec1420 100644 --- a/e2etests/testdata/stable/one_container_loop/dagre/board.exp.json +++ b/e2etests/testdata/stable/one_container_loop/dagre/board.exp.json @@ -10,7 +10,7 @@ "x": 0, "y": 41 }, - "width": 299, + "width": 313, "height": 125, "opacity": 1, "strokeDash": 0, @@ -48,7 +48,7 @@ "id": "a.b", "type": "rectangle", "pos": { - "x": 60, + "x": 40, "y": 70 }, "width": 53, @@ -89,7 +89,7 @@ "id": "c", "type": "rectangle", "pos": { - "x": 93, + "x": 130, "y": 764 }, "width": 53, @@ -130,7 +130,7 @@ "id": "d", "type": "rectangle", "pos": { - "x": 206, + "x": 130, "y": 598 }, "width": 54, @@ -171,7 +171,7 @@ "id": "e", "type": "rectangle", "pos": { - "x": 93, + "x": 244, "y": 598 }, "width": 53, @@ -212,7 +212,7 @@ "id": "f", "type": "rectangle", "pos": { - "x": 208, + "x": 131, "y": 432 }, "width": 51, @@ -253,7 +253,7 @@ "id": "g", "type": "rectangle", "pos": { - "x": 206, + "x": 130, "y": 266 }, "width": 54, @@ -294,7 +294,7 @@ "id": "a.h", "type": "rectangle", "pos": { - "x": 207, + "x": 187, "y": 70 }, "width": 53, @@ -360,92 +360,92 @@ "labelPercentage": 0, "route": [ { - "x": 73.28012048192771, + "x": 66.5, "y": 136.5 }, { - "x": 57.256024096385545, + "x": 66.5, "y": 160.1 }, { - "x": 53.25, + "x": 66.5, "y": 176 }, { - "x": 53.25, + "x": 66.5, "y": 191 }, { - "x": 53.25, + "x": 66.5, "y": 206 }, { - "x": 53.25, + "x": 66.5, "y": 232.6 }, { - "x": 53.25, + "x": 66.5, "y": 257.5 }, { - "x": 53.25, + "x": 66.5, "y": 282.4 }, { - "x": 53.25, + "x": 66.5, "y": 315.6 }, { - "x": 53.25, + "x": 66.5, "y": 340.5 }, { - "x": 53.25, + "x": 66.5, "y": 365.4 }, { - "x": 53.25, + "x": 66.5, "y": 398.6 }, { - "x": 53.25, + "x": 66.5, "y": 423.5 }, { - "x": 53.25, + "x": 66.5, "y": 448.4 }, { - "x": 53.25, + "x": 66.5, "y": 481.6 }, { - "x": 53.25, + "x": 66.5, "y": 506.5 }, { - "x": 53.25, + "x": 66.5, "y": 531.4 }, { - "x": 53.25, + "x": 66.5, "y": 564.6 }, { - "x": 53.25, + "x": 66.5, "y": 589.5 }, { - "x": 53.25, + "x": 66.5, "y": 614.4 }, { - "x": 61.25, - "y": 724 + "x": 79.3, + "y": 725.8 }, { - "x": 93.25, - "y": 764 + "x": 130.5, + "y": 773 } ], "isCurve": true, @@ -481,20 +481,20 @@ "labelPercentage": 0, "route": [ { - "x": 233.25, + "x": 156.5, "y": 664 }, { - "x": 233.25, + "x": 156.5, "y": 704 }, { - "x": 215.85, - "y": 726.7242290748899 + "x": 156.5, + "y": 724 }, { - "x": 146.25, - "y": 777.6211453744494 + "x": 156.5, + "y": 764 } ], "isCurve": true, @@ -530,20 +530,20 @@ "labelPercentage": 0, "route": [ { - "x": 119.75, + "x": 270, "y": 664 }, { - "x": 119.75, + "x": 270, "y": 704 }, { - "x": 119.75, - "y": 724 + "x": 252.6, + "y": 726.8 }, { - "x": 119.75, - "y": 764 + "x": 183, + "y": 778 } ], "isCurve": true, @@ -579,19 +579,19 @@ "labelPercentage": 0, "route": [ { - "x": 233.25, + "x": 156.5, "y": 498 }, { - "x": 233.25, + "x": 156.5, "y": 538 }, { - "x": 233.25, + "x": 156.5, "y": 558 }, { - "x": 233.25, + "x": 156.5, "y": 598 } ], @@ -628,55 +628,55 @@ "labelPercentage": 0, "route": [ { - "x": 119.75, + "x": 270, "y": 166 }, { - "x": 119.75, + "x": 270, "y": 206 }, { - "x": 119.75, + "x": 270, "y": 232.6 }, { - "x": 119.75, + "x": 270, "y": 257.5 }, { - "x": 119.75, + "x": 270, "y": 282.4 }, { - "x": 119.75, + "x": 270, "y": 315.6 }, { - "x": 119.75, + "x": 270, "y": 340.5 }, { - "x": 119.75, + "x": 270, "y": 365.4 }, { - "x": 119.75, + "x": 270, "y": 398.6 }, { - "x": 119.75, + "x": 270, "y": 423.5 }, { - "x": 119.75, + "x": 270, "y": 448.4 }, { - "x": 119.75, + "x": 270, "y": 558 }, { - "x": 119.75, + "x": 270, "y": 598 } ], @@ -713,19 +713,19 @@ "labelPercentage": 0, "route": [ { - "x": 233.25, + "x": 156.5, "y": 332 }, { - "x": 233.25, + "x": 156.5, "y": 372 }, { - "x": 233.25, + "x": 156.5, "y": 392 }, { - "x": 233.25, + "x": 156.5, "y": 432 } ], @@ -762,19 +762,19 @@ "labelPercentage": 0, "route": [ { - "x": 233.25, + "x": 190.6867469879518, "y": 136.5 }, { - "x": 233.25, + "x": 163.33734939759034, "y": 160.1 }, { - "x": 233.25, + "x": 156.5, "y": 226 }, { - "x": 233.25, + "x": 156.5, "y": 266 } ], diff --git a/e2etests/testdata/stable/one_container_loop/dagre/sketch.exp.svg b/e2etests/testdata/stable/one_container_loop/dagre/sketch.exp.svg index 29b4517f53..35deb67a3a 100644 --- a/e2etests/testdata/stable/one_container_loop/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/one_container_loop/dagre/sketch.exp.svg @@ -1,4 +1,4 @@ -acdefgbh - +.fill-N1{fill:#0A0F25;}.fill-N2{fill:#676C7E;}.fill-N3{fill:#9499AB;}.fill-N4{fill:#CFD2DD;}.fill-N5{fill:#DEE1EB;}.fill-N6{fill:#EEF1F8;}.fill-N7{fill:#FFFFFF;}.fill-B1{fill:#0D32B2;}.fill-B2{fill:#0D32B2;}.fill-B3{fill:#E3E9FD;}.fill-B4{fill:#E3E9FD;}.fill-B5{fill:#EDF0FD;}.fill-B6{fill:#F7F8FE;}.fill-AA2{fill:#4A6FF3;}.fill-AA4{fill:#EDF0FD;}.fill-AA5{fill:#F7F8FE;}.fill-AB4{fill:#EDF0FD;}.fill-AB5{fill:#F7F8FE;}.stroke-N1{stroke:#0A0F25;}.stroke-N2{stroke:#676C7E;}.stroke-N3{stroke:#9499AB;}.stroke-N4{stroke:#CFD2DD;}.stroke-N5{stroke:#DEE1EB;}.stroke-N6{stroke:#EEF1F8;}.stroke-N7{stroke:#FFFFFF;}.stroke-B1{stroke:#0D32B2;}.stroke-B2{stroke:#0D32B2;}.stroke-B3{stroke:#E3E9FD;}.stroke-B4{stroke:#E3E9FD;}.stroke-B5{stroke:#EDF0FD;}.stroke-B6{stroke:#F7F8FE;}.stroke-AA2{stroke:#4A6FF3;}.stroke-AA4{stroke:#EDF0FD;}.stroke-AA5{stroke:#F7F8FE;}.stroke-AB4{stroke:#EDF0FD;}.stroke-AB5{stroke:#F7F8FE;}.background-color-N1{background-color:#0A0F25;}.background-color-N2{background-color:#676C7E;}.background-color-N3{background-color:#9499AB;}.background-color-N4{background-color:#CFD2DD;}.background-color-N5{background-color:#DEE1EB;}.background-color-N6{background-color:#EEF1F8;}.background-color-N7{background-color:#FFFFFF;}.background-color-B1{background-color:#0D32B2;}.background-color-B2{background-color:#0D32B2;}.background-color-B3{background-color:#E3E9FD;}.background-color-B4{background-color:#E3E9FD;}.background-color-B5{background-color:#EDF0FD;}.background-color-B6{background-color:#F7F8FE;}.background-color-AA2{background-color:#4A6FF3;}.background-color-AA4{background-color:#EDF0FD;}.background-color-AA5{background-color:#F7F8FE;}.background-color-AB4{background-color:#EDF0FD;}.background-color-AB5{background-color:#F7F8FE;}.color-N1{color:#0A0F25;}.color-N2{color:#676C7E;}.color-N3{color:#9499AB;}.color-N4{color:#CFD2DD;}.color-N5{color:#DEE1EB;}.color-N6{color:#EEF1F8;}.color-N7{color:#FFFFFF;}.color-B1{color:#0D32B2;}.color-B2{color:#0D32B2;}.color-B3{color:#E3E9FD;}.color-B4{color:#E3E9FD;}.color-B5{color:#EDF0FD;}.color-B6{color:#F7F8FE;}.color-AA2{color:#4A6FF3;}.color-AA4{color:#EDF0FD;}.color-AA5{color:#F7F8FE;}.color-AB4{color:#EDF0FD;}.color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>acdefgbh + \ No newline at end of file