diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 4cee2c279..af4479824 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -10,3 +10,6 @@ - `d2 fmt` only rewrites if it has changes, instead of always rewriting. [#470](https://github.com/terrastruct/d2/pull/470) - Fixed an issue where text could overflow in sql_table shapes. [#458](https://github.com/terrastruct/d2/pull/458) +- Fixed an issue with elk layouts accounting for edge labels as if they were placed on the side of the edge. [#483](https://github.com/terrastruct/d2/pull/483) +- Fixed an issue where dagre layouts may not have enough spacing for all edge labels. [#484](https://github.com/terrastruct/d2/pull/484) +- Fixed connections being clipped if they were at the very top or left edges of the diagram. [#493](https://github.com/terrastruct/d2/pull/493) diff --git a/d2layouts/d2dagrelayout/layout.go b/d2layouts/d2dagrelayout/layout.go index 3ae70e35a..68d8ec0f6 100644 --- a/d2layouts/d2dagrelayout/layout.go +++ b/d2layouts/d2dagrelayout/layout.go @@ -64,22 +64,35 @@ func Layout(ctx context.Context, g *d2graph.Graph) (err error) { } rootAttrs := dagreGraphAttrs{ - ranksep: 100, edgesep: 40, nodesep: 60, } + isHorizontal := false switch g.Root.Attributes.Direction.Value { case "down": rootAttrs.rankdir = "TB" case "right": rootAttrs.rankdir = "LR" + isHorizontal = true case "left": rootAttrs.rankdir = "RL" + isHorizontal = true case "up": rootAttrs.rankdir = "BT" default: rootAttrs.rankdir = "TB" } + + maxLabelSize := 0 + for _, edge := range g.Edges { + size := edge.LabelDimensions.Width + if !isHorizontal { + size = edge.LabelDimensions.Height + } + maxLabelSize = go2.Max(maxLabelSize, size) + } + rootAttrs.ranksep = go2.Max(100, maxLabelSize+40) + configJS := setGraphAttrs(rootAttrs) if _, err := vm.RunString(configJS); err != nil { return err diff --git a/d2layouts/d2elklayout/layout.go b/d2layouts/d2elklayout/layout.go index fb364ceba..be40c6bff 100644 --- a/d2layouts/d2elklayout/layout.go +++ b/d2layouts/d2elklayout/layout.go @@ -43,11 +43,12 @@ type ELKNode struct { } type ELKLabel struct { - Text string `json:"text"` - X float64 `json:"x"` - Y float64 `json:"y"` - Width float64 `json:"width"` - Height float64 `json:"height"` + Text string `json:"text"` + X float64 `json:"x"` + Y float64 `json:"y"` + Width float64 `json:"width"` + Height float64 `json:"height"` + LayoutOptions *ELKLayoutOptions `json:"layoutOptions,omitempty"` } type ELKPoint struct { @@ -85,6 +86,7 @@ type ELKLayoutOptions struct { EdgeNodeSpacing float64 `json:"spacing.edgeNodeBetweenLayers,omitempty"` Direction string `json:"elk.direction"` SelfLoopSpacing float64 `json:"elk.spacing.nodeSelfLoop"` + InlineEdgeLabels bool `json:"elk.edgeLabels.inline,omitempty"` } func Layout(ctx context.Context, g *d2graph.Graph) (err error) { @@ -186,6 +188,9 @@ func Layout(ctx context.Context, g *d2graph.Graph) (err error) { Text: edge.Attributes.Label.Value, Width: float64(edge.LabelDimensions.Width), Height: float64(edge.LabelDimensions.Height), + LayoutOptions: &ELKLayoutOptions{ + InlineEdgeLabels: true, + }, }) } elkGraph.Edges = append(elkGraph.Edges, e) diff --git a/d2renderers/d2svg/d2svg.go b/d2renderers/d2svg/d2svg.go index c90e66a7a..7bd081068 100644 --- a/d2renderers/d2svg/d2svg.go +++ b/d2renderers/d2svg/d2svg.go @@ -393,32 +393,6 @@ func drawConnection(writer io.Writer, labelMaskID string, connection d2target.Co labelTL.Y = math.Round(labelTL.Y) if label.Position(connection.LabelPosition).IsOnEdge() { - strokeWidth := float64(connection.StrokeWidth) - tl, br := geo.Route(connection.Route).GetBoundingBox() - tl.X -= strokeWidth - tl.Y -= strokeWidth - br.X += strokeWidth - br.Y += strokeWidth - if connection.SrcArrow != d2target.NoArrowhead { - width, height := arrowheadDimensions(connection.SrcArrow, strokeWidth) - tl.X -= width - tl.Y -= height - br.X += width - br.Y += height - } - if connection.DstArrow != d2target.NoArrowhead { - width, height := arrowheadDimensions(connection.DstArrow, strokeWidth) - tl.X -= width - tl.Y -= height - br.X += width - br.Y += height - } - - tl.X = math.Min(tl.X, labelTL.X) - tl.Y = math.Min(tl.Y, labelTL.Y) - br.X = math.Max(br.X, labelTL.X+float64(connection.LabelWidth)) - br.Y = math.Max(br.Y, labelTL.Y+float64(connection.LabelHeight)) - labelMask = makeLabelMask(labelTL, connection.LabelWidth, connection.LabelHeight) } } @@ -1093,12 +1067,11 @@ func Render(diagram *d2target.Diagram, opts *RenderOpts) ([]byte, error) { // Note: we always want this since we reference it on connections even if there end up being no masked labels fmt.Fprint(buf, strings.Join([]string{ - fmt.Sprintf(``, - labelMaskID, w, h, + fmt.Sprintf(``, + labelMaskID, -pad, -pad, w, h, ), - fmt.Sprintf(``, - w, - h, + fmt.Sprintf(``, + -pad, -pad, w, h, ), strings.Join(labelMasks, "\n"), ``, diff --git a/e2etests/regression_test.go b/e2etests/regression_test.go index 7df5efff3..6498d9ef3 100644 --- a/e2etests/regression_test.go +++ b/e2etests/regression_test.go @@ -69,6 +69,108 @@ table_constrained: sql_table_constrained_overflow { constraint: foreign_key } } +`, + }, + { + name: "elk_alignment", + script: ` +direction: down + +build_workflow: lambda-build.yaml { + + push: Push to main branch { + style.font-size: 25 + } + + GHA: GitHub Actions { + style.font-size: 25 + } + + S3.style.font-size: 25 + Terraform.style.font-size: 25 + AWS.style.font-size: 25 + + push -> GHA: Triggers { + style.font-size: 20 + } + + GHA -> S3: Builds zip and pushes it { + style.font-size: 20 + } + + S3 <-> Terraform: Pulls zip to deploy { + style.font-size: 20 + } + + Terraform -> AWS: Changes live lambdas { + style.font-size: 20 + } +} + +deploy_workflow: lambda-deploy.yaml { + + manual: Manual Trigger { + style.font-size: 25 + } + + GHA: GitHub Actions { + style.font-size: 25 + } + + AWS.style.font-size: 25 + + Manual -> GHA: Launches { + style.font-size: 20 + } + + GHA -> AWS: Builds zip\npushes them to S3.\n\nDeploys lambdas\nusing Terraform { + style.font-size: 20 + } +} + +apollo_workflow: apollo-deploy.yaml { + + apollo: Apollo Repo { + style.font-size: 25 + } + + GHA: GitHub Actions { + style.font-size: 25 + } + + AWS.style.font-size: 25 + + apollo -> GHA: Triggered manually/push to master test test test test test test test { + style.font-size: 20 + } + + GHA -> AWS: test { + style.font-size: 20 + } +} +`, + }, + { + name: "dagre_edge_label_spacing", + script: `direction: right + +build_workflow: lambda-build.yaml { + + push: Push to main branch { + style.font-size: 25 + } + GHA: GitHub Actions { + style.font-size: 25 + } + S3.style.font-size: 25 + Terraform.style.font-size: 25 + AWS.style.font-size: 25 + + push -> GHA: Triggers + GHA -> S3: Builds zip & pushes it + S3 <-> Terraform: Pulls zip to deploy + Terraform -> AWS: Changes the live lambdas +} `, }, } diff --git a/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/board.exp.json b/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/board.exp.json new file mode 100644 index 000000000..50eca01cc --- /dev/null +++ b/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/board.exp.json @@ -0,0 +1,439 @@ +{ + "name": "", + "shapes": [ + { + "id": "build_workflow", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 2148, + "height": 237, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "lambda-build.yaml", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 226, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "build_workflow.push", + "type": "", + "pos": { + "x": 105, + "y": 50 + }, + "width": 330, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Push to main branch", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 230, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.GHA", + "type": "", + "pos": { + "x": 644, + "y": 50 + }, + "width": 269, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "GitHub Actions", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 169, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.S3", + "type": "", + "pos": { + "x": 1122, + "y": 50 + }, + "width": 131, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "S3", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 31, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.Terraform", + "type": "", + "pos": { + "x": 1462, + "y": 50 + }, + "width": 218, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Terraform", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 118, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.AWS", + "type": "", + "pos": { + "x": 1889, + "y": 50 + }, + "width": 155, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "AWS", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 55, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + } + ], + "connections": [ + { + "id": "build_workflow.(push -> GHA)[0]", + "src": "build_workflow.push", + "srcArrow": "none", + "srcLabel": "", + "dst": "build_workflow.GHA", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Triggers", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 54, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 435.5, + "y": 118.5 + }, + { + "x": 518.3, + "y": 118.5 + }, + { + "x": 559.9, + "y": 118.5 + }, + { + "x": 643.5, + "y": 118.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "build_workflow.(GHA -> S3)[0]", + "src": "build_workflow.GHA", + "srcArrow": "none", + "srcLabel": "", + "dst": "build_workflow.S3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Builds zip & pushes it", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 138, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 913.5, + "y": 118.5 + }, + { + "x": 996.3, + "y": 118.5 + }, + { + "x": 1037.9, + "y": 118.5 + }, + { + "x": 1121.5, + "y": 118.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "build_workflow.(S3 <-> Terraform)[0]", + "src": "build_workflow.S3", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "build_workflow.Terraform", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Pulls zip to deploy", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 119, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1253.5, + "y": 118.5 + }, + { + "x": 1336.3, + "y": 118.5 + }, + { + "x": 1377.9, + "y": 118.5 + }, + { + "x": 1461.5, + "y": 118.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "build_workflow.(Terraform -> AWS)[0]", + "src": "build_workflow.Terraform", + "srcArrow": "none", + "srcLabel": "", + "dst": "build_workflow.AWS", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Changes the live lambdas", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 169, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1680.5, + "y": 118.5 + }, + { + "x": 1763.3, + "y": 118.5 + }, + { + "x": 1804.9, + "y": 118.5 + }, + { + "x": 1888.5, + "y": 118.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} diff --git a/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/sketch.exp.svg b/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/sketch.exp.svg new file mode 100644 index 000000000..6da3ce848 --- /dev/null +++ b/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/sketch.exp.svg @@ -0,0 +1,48 @@ + +lambda-build.yamlPush to main branchGitHub ActionsS3TerraformAWS TriggersBuilds zip & pushes it Pulls zip to deployChanges the live lambdas + + + + + + \ No newline at end of file diff --git a/e2etests/testdata/regression/dagre_edge_label_spacing/elk/board.exp.json b/e2etests/testdata/regression/dagre_edge_label_spacing/elk/board.exp.json new file mode 100644 index 000000000..6ea04a102 --- /dev/null +++ b/e2etests/testdata/regression/dagre_edge_label_spacing/elk/board.exp.json @@ -0,0 +1,403 @@ +{ + "name": "", + "shapes": [ + { + "id": "build_workflow", + "type": "", + "pos": { + "x": 12, + "y": 12 + }, + "width": 1893, + "height": 287, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "lambda-build.yaml", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 226, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "build_workflow.push", + "type": "", + "pos": { + "x": 87, + "y": 87 + }, + "width": 330, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Push to main branch", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 230, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.GHA", + "type": "", + "pos": { + "x": 511, + "y": 87 + }, + "width": 269, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "GitHub Actions", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 169, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.S3", + "type": "", + "pos": { + "x": 958, + "y": 87 + }, + "width": 131, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "S3", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 31, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.Terraform", + "type": "", + "pos": { + "x": 1248, + "y": 87 + }, + "width": 218, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Terraform", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 118, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.AWS", + "type": "", + "pos": { + "x": 1675, + "y": 87 + }, + "width": 155, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "AWS", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 55, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + } + ], + "connections": [ + { + "id": "build_workflow.(push -> GHA)[0]", + "src": "build_workflow.push", + "srcArrow": "none", + "srcLabel": "", + "dst": "build_workflow.GHA", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Triggers", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 54, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 417, + "y": 155.5 + }, + { + "x": 511, + "y": 155.5 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "build_workflow.(GHA -> S3)[0]", + "src": "build_workflow.GHA", + "srcArrow": "none", + "srcLabel": "", + "dst": "build_workflow.S3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Builds zip & pushes it", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 138, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 780, + "y": 155.5 + }, + { + "x": 958, + "y": 155.5 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "build_workflow.(S3 <-> Terraform)[0]", + "src": "build_workflow.S3", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "build_workflow.Terraform", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Pulls zip to deploy", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 119, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1089, + "y": 155.5 + }, + { + "x": 1248, + "y": 155.5 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "build_workflow.(Terraform -> AWS)[0]", + "src": "build_workflow.Terraform", + "srcArrow": "none", + "srcLabel": "", + "dst": "build_workflow.AWS", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Changes the live lambdas", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 169, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1466, + "y": 155.5 + }, + { + "x": 1675, + "y": 155.5 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} diff --git a/e2etests/testdata/regression/dagre_edge_label_spacing/elk/sketch.exp.svg b/e2etests/testdata/regression/dagre_edge_label_spacing/elk/sketch.exp.svg new file mode 100644 index 000000000..814c60100 --- /dev/null +++ b/e2etests/testdata/regression/dagre_edge_label_spacing/elk/sketch.exp.svg @@ -0,0 +1,48 @@ + +lambda-build.yamlPush to main branchGitHub ActionsS3TerraformAWS TriggersBuilds zip & pushes it Pulls zip to deployChanges the live lambdas + + + + + + \ No newline at end of file diff --git a/e2etests/testdata/regression/dagre_special_ids/dagre/sketch.exp.svg b/e2etests/testdata/regression/dagre_special_ids/dagre/sketch.exp.svg index f7a7922d5..d5d44ead7 100644 --- a/e2etests/testdata/regression/dagre_special_ids/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/dagre_special_ids/dagre/sketch.exp.svg @@ -18,8 +18,8 @@ width="1427" height="568" viewBox="-100 -100 1427 568">ninetynineeighty eightseventy sevena\yodetherea\"odea\node - +ninetynineeighty eightseventy sevena\yodetherea\"odea\node + ninetynineeighty eightseventy sevena\yodetherea\"odea\node - +ninetynineeighty eightseventy sevena\yodetherea\"odea\node + lambda-build.yamllambda-deploy.yamlapollo-deploy.yamlPush to main branchGitHub ActionsS3TerraformAWSManual TriggerGitHub ActionsAWSApollo RepoGitHub ActionsAWS TriggersBuilds zip and pushes it Pulls zip to deployChanges live lambdasLaunchesBuilds zippushes them to S3. Deploys lambdasusing TerraformTriggered manually/push to master test test test test test test testtest + + + + + + + + + + \ No newline at end of file diff --git a/e2etests/testdata/regression/elk_alignment/elk/board.exp.json b/e2etests/testdata/regression/elk_alignment/elk/board.exp.json new file mode 100644 index 000000000..57c9b3ee5 --- /dev/null +++ b/e2etests/testdata/regression/elk_alignment/elk/board.exp.json @@ -0,0 +1,879 @@ +{ + "name": "", + "shapes": [ + { + "id": "build_workflow", + "type": "", + "pos": { + "x": 716, + "y": 12 + }, + "width": 480, + "height": 1099, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "lambda-build.yaml", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 226, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "build_workflow.push", + "type": "", + "pos": { + "x": 791, + "y": 87 + }, + "width": 330, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Push to main branch", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 230, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.GHA", + "type": "", + "pos": { + "x": 822, + "y": 290 + }, + "width": 269, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "GitHub Actions", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 169, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.S3", + "type": "", + "pos": { + "x": 891, + "y": 493 + }, + "width": 131, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "S3", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 31, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.Terraform", + "type": "", + "pos": { + "x": 847, + "y": 696 + }, + "width": 218, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Terraform", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 118, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "build_workflow.AWS", + "type": "", + "pos": { + "x": 879, + "y": 899 + }, + "width": 155, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "AWS", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 55, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "deploy_workflow", + "type": "", + "pos": { + "x": 1216, + "y": 175 + }, + "width": 421, + "height": 773, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "lambda-deploy.yaml", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 247, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "deploy_workflow.manual", + "type": "", + "pos": { + "x": 1291, + "y": 250 + }, + "width": 271, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Manual Trigger", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 171, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "deploy_workflow.GHA", + "type": "", + "pos": { + "x": 1292, + "y": 453 + }, + "width": 269, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "GitHub Actions", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 169, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "deploy_workflow.AWS", + "type": "", + "pos": { + "x": 1349, + "y": 736 + }, + "width": 155, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "AWS", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 55, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "apollo_workflow", + "type": "", + "pos": { + "x": 12, + "y": 215 + }, + "width": 684, + "height": 693, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "apollo-deploy.yaml", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 232, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "apollo_workflow.apollo", + "type": "", + "pos": { + "x": 235, + "y": 290 + }, + "width": 238, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Apollo Repo", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 138, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "apollo_workflow.GHA", + "type": "", + "pos": { + "x": 219, + "y": 493 + }, + "width": 269, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "GitHub Actions", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 169, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "apollo_workflow.AWS", + "type": "", + "pos": { + "x": 276, + "y": 696 + }, + "width": 155, + "height": 137, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "AWS", + "fontSize": 25, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 55, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + } + ], + "connections": [ + { + "id": "build_workflow.(push -> GHA)[0]", + "src": "build_workflow.push", + "srcArrow": "none", + "srcLabel": "", + "dst": "build_workflow.GHA", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Triggers", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 67, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 956, + "y": 224 + }, + { + "x": 956, + "y": 290 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "build_workflow.(GHA -> S3)[0]", + "src": "build_workflow.GHA", + "srcArrow": "none", + "srcLabel": "", + "dst": "build_workflow.S3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Builds zip and pushes it", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 192, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 956, + "y": 427 + }, + { + "x": 956, + "y": 493 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "build_workflow.(S3 <-> Terraform)[0]", + "src": "build_workflow.S3", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "build_workflow.Terraform", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Pulls zip to deploy", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 149, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 956, + "y": 630 + }, + { + "x": 956, + "y": 696 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "build_workflow.(Terraform -> AWS)[0]", + "src": "build_workflow.Terraform", + "srcArrow": "none", + "srcLabel": "", + "dst": "build_workflow.AWS", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Changes live lambdas", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 179, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 956, + "y": 833 + }, + { + "x": 956, + "y": 899 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "deploy_workflow.(manual -> GHA)[0]", + "src": "deploy_workflow.manual", + "srcArrow": "none", + "srcLabel": "", + "dst": "deploy_workflow.GHA", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Launches", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 78, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1426.5, + "y": 387 + }, + { + "x": 1426.5, + "y": 453 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "deploy_workflow.(GHA -> AWS)[0]", + "src": "deploy_workflow.GHA", + "srcArrow": "none", + "srcLabel": "", + "dst": "deploy_workflow.AWS", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Builds zip\npushes them to S3.\n\nDeploys lambdas\nusing Terraform", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 153, + "labelHeight": 106, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1426.5, + "y": 590 + }, + { + "x": 1426.5, + "y": 736 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "apollo_workflow.(apollo -> GHA)[0]", + "src": "apollo_workflow.apollo", + "srcArrow": "none", + "srcLabel": "", + "dst": "apollo_workflow.GHA", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Triggered manually/push to master test test test test test test test", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 533, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 353.5, + "y": 427 + }, + { + "x": 353.5, + "y": 493 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "apollo_workflow.(GHA -> AWS)[0]", + "src": "apollo_workflow.GHA", + "srcArrow": "none", + "srcLabel": "", + "dst": "apollo_workflow.AWS", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "test", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 31, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 353.5, + "y": 630 + }, + { + "x": 353.5, + "y": 696 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} diff --git a/e2etests/testdata/regression/elk_alignment/elk/sketch.exp.svg b/e2etests/testdata/regression/elk_alignment/elk/sketch.exp.svg new file mode 100644 index 000000000..487f8dc2a --- /dev/null +++ b/e2etests/testdata/regression/elk_alignment/elk/sketch.exp.svg @@ -0,0 +1,52 @@ + +lambda-build.yamllambda-deploy.yamlapollo-deploy.yamlPush to main branchGitHub ActionsS3TerraformAWSManual TriggerGitHub ActionsAWSApollo RepoGitHub ActionsAWS TriggersBuilds zip and pushes it Pulls zip to deployChanges live lambdasLaunchesBuilds zippushes them to S3. Deploys lambdasusing TerraformTriggered manually/push to master test test test test test test testtest + + + + + + + + + + \ No newline at end of file diff --git a/e2etests/testdata/regression/empty_sequence/dagre/sketch.exp.svg b/e2etests/testdata/regression/empty_sequence/dagre/sketch.exp.svg index 47c42c577..192e116cb 100644 --- a/e2etests/testdata/regression/empty_sequence/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/empty_sequence/dagre/sketch.exp.svg @@ -18,8 +18,8 @@ width="366" height="552" viewBox="-100 -100 366 552">hellogoodbye - +hellogoodbye + hellogoodbye - +hellogoodbye + foofoobarabcd - +foofoobarabcd + foofoobarabcd - +foofoobarabcd + AB - +AB + AB - +AB + b - +b + b - +b + abc - +abc + abc - +abc + ab - +ab + ab - +ab + acbd - +acbd + acbd - +acbd + ab hello - +ab hello + ab hello - +ab hello + - + + \ No newline at end of file diff --git a/e2etests/testdata/sanity/empty/elk/sketch.exp.svg b/e2etests/testdata/sanity/empty/elk/sketch.exp.svg index 20d55bdc1..243722dc6 100644 --- a/e2etests/testdata/sanity/empty/elk/sketch.exp.svg +++ b/e2etests/testdata/sanity/empty/elk/sketch.exp.svg @@ -18,7 +18,7 @@ width="200" height="200" viewBox="-100 -100 200 200"> - + + \ No newline at end of file diff --git a/e2etests/testdata/stable/all_shapes/dagre/sketch.exp.svg b/e2etests/testdata/stable/all_shapes/dagre/sketch.exp.svg index 095790f60..0ff95d243 100644 --- a/e2etests/testdata/stable/all_shapes/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/all_shapes/dagre/sketch.exp.svg @@ -18,8 +18,8 @@ width="1539" height="824" viewBox="-100 -100 1539 824">rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud - +rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud + rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud - +rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud + rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud - +rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud + rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud - +rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud + cba * - +cba * + cba * - +cba * + ab To err is human, to moo bovine1* - +ab To err is human, to moo bovine1* + ab To err is human, to moo bovine1* - - +ab To err is human, to moo bovine1* + + abcdefghijklmno - +abcdefghijklmno + abcdefghijklmno - +abcdefghijklmno + aaadddeeebbbccc111 222 - +aaadddeeebbbccc111 222 + aaadddeeebbbccc111 222 - +aaadddeeebbbccc111 222 + aabbllmm

nn

oocciikkdd

gg

hhjj

ee

-
ff1122 334455667788 - +ff1122 334455667788 + diff --git a/e2etests/testdata/stable/chaos2/elk/board.exp.json b/e2etests/testdata/stable/chaos2/elk/board.exp.json index 71ec18ffd..b89ab998b 100644 --- a/e2etests/testdata/stable/chaos2/elk/board.exp.json +++ b/e2etests/testdata/stable/chaos2/elk/board.exp.json @@ -9,7 +9,7 @@ "x": 12, "y": 12 }, - "width": 892, + "width": 880, "height": 1707, "opacity": 1, "strokeDash": 0, @@ -46,7 +46,7 @@ "id": "aa.bb", "type": "", "pos": { - "x": 144, + "x": 132, "y": 445 }, "width": 685, @@ -86,7 +86,7 @@ "id": "aa.bb.cc", "type": "", "pos": { - "x": 290, + "x": 278, "y": 841 }, "width": 464, @@ -126,7 +126,7 @@ "id": "aa.bb.cc.dd", "type": "rectangle", "pos": { - "x": 376, + "x": 364, "y": 916 }, "width": 303, @@ -166,7 +166,7 @@ "id": "aa.bb.cc.dd.ee", "type": "text", "pos": { - "x": 588, + "x": 576, "y": 1093 }, "width": 16, @@ -205,7 +205,7 @@ "id": "aa.bb.cc.dd.ff", "type": "", "pos": { - "x": 451, + "x": 439, "y": 991 }, "width": 117, @@ -245,7 +245,7 @@ "id": "aa.bb.cc.gg", "type": "text", "pos": { - "x": 585, + "x": 573, "y": 1258 }, "width": 17, @@ -284,7 +284,7 @@ "id": "aa.bb.cc.hh", "type": "", "pos": { - "x": 532, + "x": 520, "y": 1343 }, "width": 123, @@ -324,7 +324,7 @@ "id": "aa.bb.ii", "type": "package", "pos": { - "x": 376, + "x": 364, "y": 520 }, "width": 265, @@ -364,7 +364,7 @@ "id": "aa.bb.ii.jj", "type": "diamond", "pos": { - "x": 451, + "x": 439, "y": 595 }, "width": 115, @@ -404,7 +404,7 @@ "id": "aa.bb.kk", "type": "oval", "pos": { - "x": 219, + "x": 207, "y": 595 }, "width": 126, @@ -444,7 +444,7 @@ "id": "aa.ll", "type": "", "pos": { - "x": 357, + "x": 355, "y": 233 }, "width": 114, @@ -484,7 +484,7 @@ "id": "aa.mm", "type": "cylinder", "pos": { - "x": 462, + "x": 446, "y": 87 }, "width": 131, @@ -524,7 +524,7 @@ "id": "aa.nn", "type": "text", "pos": { - "x": 424, + "x": 408, "y": 138 }, "width": 18, @@ -563,7 +563,7 @@ "id": "aa.oo", "type": "", "pos": { - "x": 613, + "x": 597, "y": 87 }, "width": 123, @@ -627,11 +627,11 @@ "labelPercentage": 0, "route": [ { - "x": 596, + "x": 584, "y": 1117 }, { - "x": 596, + "x": 584, "y": 1258 } ], @@ -666,11 +666,11 @@ "labelPercentage": 0, "route": [ { - "x": 593.1666666666666, + "x": 581.1666666666666, "y": 1282 }, { - "x": 593.1666666666666, + "x": 581.1666666666666, "y": 1343 } ], @@ -705,19 +705,19 @@ "labelPercentage": 0, "route": [ { - "x": 553, + "x": 541, "y": 796 }, { - "x": 552.6666666666666, + "x": 540.6666666666666, "y": 816 }, { - "x": 451, + "x": 439, "y": 816 }, { - "x": 451, + "x": 439.00000000000006, "y": 916 } ], @@ -752,19 +752,19 @@ "labelPercentage": 0, "route": [ { - "x": 424.9000000000001, + "x": 422.9000000000001, "y": 359 }, { - "x": 424.9000000000001, + "x": 422.9000000000001, "y": 420 }, { - "x": 345.00000000000006, + "x": 333.00000000000006, "y": 420 }, { - "x": 345.00000000000006, + "x": 333.00000000000006, "y": 445 } ], @@ -799,27 +799,27 @@ "labelPercentage": 0, "route": [ { - "x": 567, + "x": 551, "y": 209 }, { - "x": 566.5, + "x": 550.5, "y": 420 }, { - "x": 651, + "x": 639, "y": 420 }, { - "x": 651, + "x": 639, "y": 826 }, { - "x": 461.00000000000006, + "x": 449.00000000000006, "y": 826 }, { - "x": 461.00000000000006, + "x": 449.00000000000006, "y": 841 } ], @@ -854,19 +854,19 @@ "labelPercentage": 0, "route": [ { - "x": 488, + "x": 472, "y": 209 }, { - "x": 487.90000000000003, + "x": 471.90000000000003, "y": 223 }, { - "x": 413.50000000000006, + "x": 411.50000000000006, "y": 223 }, { - "x": 413.50000000000006, + "x": 411.50000000000006, "y": 233 } ], @@ -901,27 +901,27 @@ "labelPercentage": 0, "route": [ { - "x": 540, + "x": 524, "y": 213 }, { - "x": 540.3000000000001, + "x": 524.3000000000001, "y": 223 }, { - "x": 537.5, + "x": 523.5, "y": 223 }, { - "x": 537.5, + "x": 523.5, "y": 420 }, { - "x": 518.5, + "x": 506.50000000000006, "y": 420 }, { - "x": 518.5, + "x": 506.50000000000006, "y": 445 } ], @@ -956,27 +956,27 @@ "labelPercentage": 0, "route": [ { - "x": 447.70000000000005, + "x": 445.70000000000005, "y": 359 }, { - "x": 447.70000000000005, + "x": 445.70000000000005, "y": 430 }, { - "x": 365.00000000000006, + "x": 353.00000000000006, "y": 430 }, { - "x": 365.00000000000006, + "x": 353.00000000000006, "y": 1248 }, { - "x": 590.3333333333334, + "x": 578.3333333333334, "y": 1248 }, { - "x": 590.3333333333334, + "x": 578.3333333333334, "y": 1258 } ], @@ -1011,19 +1011,19 @@ "labelPercentage": 0, "route": [ { - "x": 514, + "x": 498, "y": 213 }, { - "x": 514.1, + "x": 498.1, "y": 223 }, { - "x": 508.50000000000006, + "x": 496.50000000000006, "y": 223 }, { - "x": 509, + "x": 497, "y": 575 } ], @@ -1058,27 +1058,27 @@ "labelPercentage": 0, "route": [ { - "x": 461.00000000000006, + "x": 449, "y": 1544 }, { - "x": 461.0000000000001, + "x": 449.0000000000001, "y": 1644 }, { - "x": 105.00000000000006, + "x": 95.00000000000011, "y": 1644 }, { - "x": 105.00000000000006, + "x": 95.00000000000011, "y": 369 }, { - "x": 379.3000000000001, + "x": 377.3000000000001, "y": 369 }, { - "x": 379.3000000000001, + "x": 377.3000000000001, "y": 359 } ], @@ -1113,35 +1113,35 @@ "labelPercentage": 0, "route": [ { - "x": 464, + "x": 452, "y": 796 }, { - "x": 464.33333333333337, + "x": 452.3333333333333, "y": 806 }, { - "x": 279.00000000000006, + "x": 267, "y": 806 }, { - "x": 279.0000000000001, + "x": 267.0000000000001, "y": 1634 }, { - "x": 134.0000000000001, + "x": 122.00000000000011, "y": 1634 }, { - "x": 134.0000000000001, + "x": 122.00000000000011, "y": 379 }, { - "x": 402.10000000000014, + "x": 400.10000000000014, "y": 379 }, { - "x": 402.10000000000014, + "x": 400.10000000000014, "y": 359 } ], diff --git a/e2etests/testdata/stable/chaos2/elk/sketch.exp.svg b/e2etests/testdata/stable/chaos2/elk/sketch.exp.svg index 96c477b53..69dc2c003 100644 --- a/e2etests/testdata/stable/chaos2/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/chaos2/elk/sketch.exp.svg @@ -2,7 +2,7 @@ abcd + abcd - +abcd + abc - +abc + abc - +abc + acfbdhg - +acfbdhg + acfbdhg - +acfbdhg + agdfbhec - +agdfbhec + agdfbhec - +agdfbhec + abcdefghijklmnopq - +abcdefghijklmnopq + abcdefghijklmnopq - +abcdefghijklmnopq + finallyatreeandnodessomemoremanythenhereyouhavehierarchyanotherofnestingtreesatreeinsidehierarchyroot - +finallyatreeandnodessomemoremanythenhereyouhavehierarchyanotherofnestingtreesatreeinsidehierarchyroot + finallyatreeandnodessomemoremanythenhereyouhavehierarchyanotherofnestingtreesatreeinsidehierarchyroot - +finallyatreeandnodessomemoremanythenhereyouhavehierarchyanotherofnestingtreesatreeinsidehierarchyroot + bacde21345abcde - +bacde21345abcde + bacde21345abcde - +bacde21345abcde + alphabeta gamma - +alphabeta gamma + alphabeta gamma - +alphabeta gamma + size XSsize Ssize Msize Lsize XLsize XXLsize XXXLcustom 8custom 12custom 18custom 21custom 64 custom 10custom 15custom 48 - - - +size XSsize Ssize Msize Lsize XLsize XXLsize XXXLcustom 8custom 12custom 18custom 21custom 64 custom 10custom 15custom 48 + + + size XSsize Ssize Msize Lsize XLsize XXLsize XXXLcustom 8custom 12custom 18custom 21custom 64 custom 10custom 15custom 48 - +size XSsize Ssize Msize Lsize XLsize XXLsize XXXLcustom 8custom 12custom 18custom 21custom 64 custom 10custom 15custom 48 + diff --git a/e2etests/testdata/stable/giant_markdown_test/dagre/sketch.exp.svg b/e2etests/testdata/stable/giant_markdown_test/dagre/sketch.exp.svg index 14fc3e202..53f05277f 100644 --- a/e2etests/testdata/stable/giant_markdown_test/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/giant_markdown_test/dagre/sketch.exp.svg @@ -1031,8 +1031,8 @@ title for the link, surrounded in quotes. For example:

Code

Unlike a pre-formatted code block, a code span indicates code within a normal paragraph. For example:

-ab - +ab + hello - +hello + hello - +hello + ab - +ab + ab - +ab + aabbccddllffwwyynniijjkkssuurmeemmmmgghhzzooppqqrrttvvxxabac 123456 - +aabbccddllffwwyynniijjkkssuurmeemmmmgghhzzooppqqrrttvvxxabac 123456 + diff --git a/e2etests/testdata/stable/investigate/elk/board.exp.json b/e2etests/testdata/stable/investigate/elk/board.exp.json index 94ba1baf0..3d54d87bb 100644 --- a/e2etests/testdata/stable/investigate/elk/board.exp.json +++ b/e2etests/testdata/stable/investigate/elk/board.exp.json @@ -6,7 +6,7 @@ "id": "aa", "type": "step", "pos": { - "x": 435, + "x": 429, "y": 12 }, "width": 122, @@ -46,7 +46,7 @@ "id": "bb", "type": "step", "pos": { - "x": 292, + "x": 286, "y": 238 }, "width": 123, @@ -86,7 +86,7 @@ "id": "cc", "type": "step", "pos": { - "x": 314, + "x": 307, "y": 464 }, "width": 121, @@ -126,7 +126,7 @@ "id": "dd", "type": "", "pos": { - "x": 238, + "x": 231, "y": 816 }, "width": 415, @@ -166,7 +166,7 @@ "id": "dd.ee", "type": "diamond", "pos": { - "x": 456, + "x": 449, "y": 891 }, "width": 122, @@ -206,7 +206,7 @@ "id": "ll", "type": "", "pos": { - "x": 253, + "x": 246, "y": 3120 }, "width": 425, @@ -246,7 +246,7 @@ "id": "ll.mm", "type": "oval", "pos": { - "x": 472, + "x": 465, "y": 3195 }, "width": 131, @@ -286,7 +286,7 @@ "id": "ff", "type": "", "pos": { - "x": 254, + "x": 247, "y": 2462 }, "width": 424, @@ -326,7 +326,7 @@ "id": "ff.mm", "type": "oval", "pos": { - "x": 472, + "x": 465, "y": 2537 }, "width": 131, @@ -366,7 +366,7 @@ "id": "ff.gg", "type": "diamond", "pos": { - "x": 329, + "x": 322, "y": 2539 }, "width": 123, @@ -406,7 +406,7 @@ "id": "dd.hh", "type": "diamond", "pos": { - "x": 313, + "x": 306, "y": 891 }, "width": 123, @@ -446,7 +446,7 @@ "id": "ww", "type": "queue", "pos": { - "x": 127, + "x": 120, "y": 2195 }, "width": 131, @@ -497,7 +497,7 @@ "id": "yy", "type": "", "pos": { - "x": 75, + "x": 68, "y": 3657 }, "width": 273, @@ -537,7 +537,7 @@ "id": "yy.zz", "type": "queue", "pos": { - "x": 152, + "x": 145, "y": 3732 }, "width": 120, @@ -588,7 +588,7 @@ "id": "ad", "type": "parallelogram", "pos": { - "x": 333, + "x": 327, "y": 4606 }, "width": 123, @@ -628,7 +628,7 @@ "id": "nn", "type": "cylinder", "pos": { - "x": 117, + "x": 110, "y": 4225 }, "width": 557, @@ -668,7 +668,7 @@ "id": "ii", "type": "", "pos": { - "x": 460, + "x": 453, "y": 1197 }, "width": 114, @@ -708,7 +708,7 @@ "id": "jj", "type": "", "pos": { - "x": 459, + "x": 453, "y": 1503 }, "width": 115, @@ -748,7 +748,7 @@ "id": "kk", "type": "", "pos": { - "x": 456, + "x": 449, "y": 1914 }, "width": 122, @@ -788,7 +788,7 @@ "id": "nn.oo", "type": "", "pos": { - "x": 476, + "x": 469, "y": 4300 }, "width": 123, @@ -828,7 +828,7 @@ "id": "ff.pp", "type": "", "pos": { - "x": 329, + "x": 322, "y": 2688 }, "width": 123, @@ -868,7 +868,7 @@ "id": "ll.qq", "type": "", "pos": { - "x": 328, + "x": 321, "y": 3198 }, "width": 124, @@ -908,7 +908,7 @@ "id": "ll.rr", "type": "", "pos": { - "x": 331, + "x": 324, "y": 3346 }, "width": 118, @@ -948,7 +948,7 @@ "id": "ss", "type": "", "pos": { - "x": 37, + "x": 30, "y": 1428 }, "width": 268, @@ -988,7 +988,7 @@ "id": "ss.tt", "type": "", "pos": { - "x": 112, + "x": 105, "y": 1503 }, "width": 118, @@ -1028,7 +1028,7 @@ "id": "uu", "type": "", "pos": { - "x": 34, + "x": 28, "y": 1814 }, "width": 273, @@ -1068,7 +1068,7 @@ "id": "uu.vv", "type": "", "pos": { - "x": 109, + "x": 103, "y": 1889 }, "width": 123, @@ -1108,7 +1108,7 @@ "id": "rm", "type": "", "pos": { - "x": 109, + "x": 102, "y": 3321 }, "width": 124, @@ -1148,7 +1148,7 @@ "id": "nn.xx", "type": "", "pos": { - "x": 192, + "x": 185, "y": 4300 }, "width": 122, @@ -1188,7 +1188,7 @@ "id": "yy.ab", "type": "", "pos": { - "x": 150, + "x": 143, "y": 3904 }, "width": 123, @@ -1228,7 +1228,7 @@ "id": "nn.ac", "type": "", "pos": { - "x": 334, + "x": 327, "y": 4300 }, "width": 122, @@ -1292,19 +1292,19 @@ "labelPercentage": 0, "route": [ { - "x": 476, + "x": 470, "y": 138 }, { - "x": 476, + "x": 469.5, "y": 188 }, { - "x": 353.66666666666663, + "x": 347.16666666666663, "y": 188 }, { - "x": 354, + "x": 347, "y": 238 } ], @@ -1339,11 +1339,11 @@ "labelPercentage": 0, "route": [ { - "x": 374, + "x": 368, "y": 364 }, { - "x": 374, + "x": 368, "y": 464 } ], @@ -1378,11 +1378,11 @@ "labelPercentage": 0, "route": [ { - "x": 517, + "x": 510, "y": 138 }, { - "x": 517, + "x": 510, "y": 891 } ], @@ -1417,28 +1417,28 @@ "labelPercentage": 0, "route": [ { - "x": 333, + "x": 327, "y": 364 }, { - "x": 333.16666666666663, + "x": 326.66666666666663, "y": 414 }, { - "x": 23, + "x": 16.5, "y": 414 }, { - "x": 23, + "x": 16.5, "y": 2407 }, { - "x": 369.5, + "x": 363, "y": 2407 }, { - "x": 369, - "y": 2560 + "x": 363, + "y": 2559 } ], "animated": false, @@ -1472,11 +1472,11 @@ "labelPercentage": 0, "route": [ { - "x": 374, + "x": 368, "y": 590 }, { - "x": 374, + "x": 368, "y": 891 } ], @@ -1511,11 +1511,11 @@ "labelPercentage": 0, "route": [ { - "x": 517, + "x": 510, "y": 1017 }, { - "x": 516.6666666666666, + "x": 510.16666666666663, "y": 1197 } ], @@ -1550,11 +1550,11 @@ "labelPercentage": 0, "route": [ { - "x": 516.6666666666666, + "x": 510.16666666666663, "y": 1323 }, { - "x": 516.6666666666666, + "x": 510.16666666666663, "y": 1503 } ], @@ -1589,11 +1589,11 @@ "labelPercentage": 0, "route": [ { - "x": 516.6666666666666, + "x": 510.16666666666663, "y": 1629 }, { - "x": 516.6666666666666, + "x": 510.16666666666663, "y": 1914 } ], @@ -1628,11 +1628,11 @@ "labelPercentage": 0, "route": [ { - "x": 537, + "x": 530.5, "y": 2040 }, { - "x": 537, + "x": 531, "y": 2537 } ], @@ -1667,11 +1667,11 @@ "labelPercentage": 0, "route": [ { - "x": 537, + "x": 531, "y": 2668 }, { - "x": 537, + "x": 531, "y": 3195 } ], @@ -1706,11 +1706,11 @@ "labelPercentage": 0, "route": [ { - "x": 537, + "x": 531, "y": 3326 }, { - "x": 537, + "x": 530.5, "y": 4300 } ], @@ -1745,11 +1745,11 @@ "labelPercentage": 0, "route": [ { - "x": 391, + "x": 384, "y": 2665 }, { - "x": 390.5, + "x": 383.5, "y": 2688 } ], @@ -1784,19 +1784,19 @@ "labelPercentage": 0, "route": [ { - "x": 390, + "x": 383.5, "y": 2814 }, { - "x": 390, + "x": 383.5, "y": 2944 }, { - "x": 389.5, + "x": 383, "y": 2944 }, { - "x": 389.5, + "x": 383, "y": 3197.5 } ], @@ -1831,11 +1831,11 @@ "labelPercentage": 0, "route": [ { - "x": 390, + "x": 383, "y": 3323.5 }, { - "x": 390, + "x": 383, "y": 3346 } ], @@ -1870,19 +1870,19 @@ "labelPercentage": 0, "route": [ { - "x": 374, + "x": 368, "y": 1017 }, { - "x": 374.16666666666663, + "x": 367.66666666666663, "y": 1147 }, { - "x": 170.49999999999997, + "x": 163.99999999999997, "y": 1147 }, { - "x": 170.49999999999997, + "x": 163.99999999999997, "y": 1503 } ], @@ -1917,11 +1917,11 @@ "labelPercentage": 0, "route": [ { - "x": 170.5, + "x": 164, "y": 1629 }, { - "x": 170.5, + "x": 164, "y": 1889 } ], @@ -1956,19 +1956,19 @@ "labelPercentage": 0, "route": [ { - "x": 496.3333333333333, + "x": 489.8333333333333, "y": 2040 }, { - "x": 496.3333333333333, + "x": 489.8333333333333, "y": 2145 }, { - "x": 214.16666666666669, + "x": 207.66666666666669, "y": 2145 }, { - "x": 214, + "x": 208, "y": 2195 } ], @@ -2003,11 +2003,11 @@ "labelPercentage": 0, "route": [ { - "x": 170.5, + "x": 164, "y": 2015 }, { - "x": 171, + "x": 164, "y": 2195 } ], @@ -2042,11 +2042,11 @@ "labelPercentage": 0, "route": [ { - "x": 170, + "x": 164, "y": 2347 }, { - "x": 170.5, + "x": 164, "y": 3320.6666666666665 } ], @@ -2081,27 +2081,27 @@ "labelPercentage": 0, "route": [ { - "x": 149.83333333333331, + "x": 143.33333333333331, "y": 3446.6666666666665 }, { - "x": 149.83333333333331, + "x": 143.33333333333331, "y": 3602 }, { - "x": 63.666666666666664, + "x": 57.166666666666664, "y": 3602 }, { - "x": 63.666666666666664, + "x": 57.166666666666664, "y": 4170 }, { - "x": 252.5, + "x": 246, "y": 4170 }, { - "x": 252.5, + "x": 246, "y": 4300 } ], @@ -2136,19 +2136,19 @@ "labelPercentage": 0, "route": [ { - "x": 389.5, + "x": 383, "y": 3472 }, { - "x": 389.5, + "x": 383, "y": 3602 }, { - "x": 231.16666666666666, + "x": 224.66666666666666, "y": 3602 }, { - "x": 231, + "x": 225, "y": 3732 } ], @@ -2183,11 +2183,11 @@ "labelPercentage": 0, "route": [ { - "x": 191.16666666666666, + "x": 184.66666666666666, "y": 3446.6666666666665 }, { - "x": 191, + "x": 185, "y": 3732 } ], @@ -2222,11 +2222,11 @@ "labelPercentage": 0, "route": [ { - "x": 211, + "x": 204, "y": 3884 }, { - "x": 211.5, + "x": 204.5, "y": 3904 } ], @@ -2261,19 +2261,19 @@ "labelPercentage": 0, "route": [ { - "x": 211.16666666666666, + "x": 204.66666666666666, "y": 4030 }, { - "x": 211.16666666666666, + "x": 204.66666666666666, "y": 4160 }, { - "x": 394.5, + "x": 388, "y": 4160 }, { - "x": 394.5, + "x": 388, "y": 4300 } ], @@ -2308,11 +2308,11 @@ "labelPercentage": 0, "route": [ { - "x": 394.5, + "x": 388, "y": 4426 }, { - "x": 395, + "x": 388, "y": 4606 } ], @@ -2347,20 +2347,20 @@ "labelPercentage": 0, "route": [ { - "x": 214, + "x": 208, "y": 2347 }, { - "x": 214.16666666666669, + "x": 207.66666666666669, "y": 2397 }, { - "x": 410.5, + "x": 404, "y": 2397 }, { - "x": 411, - "y": 2558 + "x": 404, + "y": 2559 } ], "animated": false, diff --git a/e2etests/testdata/stable/investigate/elk/sketch.exp.svg b/e2etests/testdata/stable/investigate/elk/sketch.exp.svg index bf4e54b9b..65a4e7714 100644 --- a/e2etests/testdata/stable/investigate/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/investigate/elk/sketch.exp.svg @@ -2,7 +2,7 @@ aabbccddllffwwyynniijjkkssuurmeemmmmgghhzzooppqqrrttvvxxabac 123456 + + + + + + + abcdefghiqrjmnoszaabbeeffggklptuwxyccddv - +abcdefghiqrjmnoszaabbeeffggklptuwxyccddv + abcdefghiqrjmnoszaabbeeffggklptuwxyccddv - +abcdefghiqrjmnoszaabbeeffggklptuwxyccddv + thisgoesmultiple lines - +thisgoesmultiple lines + thisgoesmultiple lines - +thisgoesmultiple lines + abcdefghijklmnopqrstuvw - +abcdefghijklmnopqrstuvw + abcdefghijklmnopqrstuvw - +abcdefghijklmnopqrstuvw + abcdefghijklmnopqrstu - +abcdefghijklmnopqrstu + abcdefghijklmnopqrstu - +abcdefghijklmnopqrstu + Foo Baz12hello - +Foo Baz12hello + Foo Baz12hello - +Foo Baz12hello + acdefgbh - +acdefgbh + acdefgbh - +acdefgbh + topabcbottomstartend - +topabcbottomstartend + topabcbottomstartend - +topabcbottomstartend + rootcontainerrootleftrightrootinnerrootinnerleftrightleftright to inner leftto inner rightto inner leftto inner rightto left container rootto right container root - +rootcontainerrootleftrightrootinnerrootinnerleftrightleftright to inner leftto inner rightto inner leftto inner rightto left container rootto right container root + diff --git a/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json b/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json index 4209d10c4..4d9e15a3a 100644 --- a/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json +++ b/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json @@ -721,6 +721,14 @@ }, { "x": 343.6666666666667, + "y": 805 + }, + { + "x": 393, + "y": 805 + }, + { + "x": 393, "y": 846 }, { @@ -807,6 +815,14 @@ }, { "x": 939.6666666666667, + "y": 805 + }, + { + "x": 989, + "y": 805 + }, + { + "x": 989, "y": 846 }, { diff --git a/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg b/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg index c25a9441f..d4f292cdf 100644 --- a/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg @@ -18,8 +18,8 @@ width="1522" height="1503" viewBox="-88 -88 1522 1503">rootcontainerrootleftrightrootinnerrootinnerleftrightleftright to inner leftto inner rightto inner leftto inner rightto left container rootto right container root - +rootcontainerrootleftrightrootinnerrootinnerleftrightleftright to inner leftto inner rightto inner leftto inner rightto left container rootto right container root + diff --git a/e2etests/testdata/stable/p/dagre/sketch.exp.svg b/e2etests/testdata/stable/p/dagre/sketch.exp.svg index 7fb9d6e30..840c8a89b 100644 --- a/e2etests/testdata/stable/p/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/p/dagre/sketch.exp.svg @@ -778,8 +778,8 @@ width="2057" height="676" viewBox="-100 -100 2057 676">xyz hello + xyz hello - +xyz hello + an actor with a really long label that will break everythinganactorwithareallylonglabelthatwillbreakeverythingsimplea short onefar awaywhat if there were no labels between this actor and the previous one shortlong label for testing purposes and it must be really, really longshortthis should span many actors lifelines so we know how it will look like when redering a long label over many actorslong label for testing purposes and it must be really, really long - +an actor with a really long label that will break everythinganactorwithareallylonglabelthatwillbreakeverythingsimplea short onefar awaywhat if there were no labels between this actor and the previous one shortlong label for testing purposes and it must be really, really longshortthis should span many actors lifelines so we know how it will look like when redering a long label over many actorslong label for testing purposes and it must be really, really long + diff --git a/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/sketch.exp.svg index b0be8b3b5..f0302fd8e 100644 --- a/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/sketch.exp.svg @@ -18,8 +18,8 @@ width="2692" height="1396" viewBox="-76 -26 2692 1396">an actor with a really long label that will break everythinganactorwithareallylonglabelthatwillbreakeverythingsimplea short onefar awaywhat if there were no labels between this actor and the previous one shortlong label for testing purposes and it must be really, really longshortthis should span many actors lifelines so we know how it will look like when redering a long label over many actorslong label for testing purposes and it must be really, really long - +an actor with a really long label that will break everythinganactorwithareallylonglabelthatwillbreakeverythingsimplea short onefar awaywhat if there were no labels between this actor and the previous one shortlong label for testing purposes and it must be really, really longshortthis should span many actors lifelines so we know how it will look like when redering a long label over many actorslong label for testing purposes and it must be really, really long + diff --git a/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/sketch.exp.svg index d5ef75817..c23490a3e 100644 --- a/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/sketch.exp.svg @@ -28,8 +28,8 @@ width="5120" height="2984" viewBox="-76 -26 5120 2984">alicebob what does it mean to be well-adjustedThe ability to play bridge or golf as if they were games + alicebob what does it mean to be well-adjustedThe ability to play bridge or golf as if they were games - +alicebob what does it mean to be well-adjustedThe ability to play bridge or golf as if they were games + abcdggggroup 1group bchoonested guy lalaeyokayokaywhat would arnold saythis note - +abcdggggroup 1group bchoonested guy lalaeyokayokaywhat would arnold saythis note + diff --git a/e2etests/testdata/stable/sequence_diagram_groups/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_groups/elk/sketch.exp.svg index cac917156..0afcfd18a 100644 --- a/e2etests/testdata/stable/sequence_diagram_groups/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_groups/elk/sketch.exp.svg @@ -18,8 +18,8 @@ width="1147" height="2268" viewBox="-76 -26 1147 2268">abcdggggroup 1group bchoonested guy lalaeyokayokaywhat would arnold saythis note - +abcdggggroup 1group bchoonested guy lalaeyokayokaywhat would arnold saythis note + diff --git a/e2etests/testdata/stable/sequence_diagram_long_note/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_long_note/dagre/sketch.exp.svg index 97b4c4e3f..8cc670b3d 100644 --- a/e2etests/testdata/stable/sequence_diagram_long_note/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_long_note/dagre/sketch.exp.svg @@ -18,8 +18,8 @@ width="850" height="1162" viewBox="-263 -26 850 1162">ba a note here to remember that padding must consider notes toojustalongnotehere - +ba a note here to remember that padding must consider notes toojustalongnotehere + ba a note here to remember that padding must consider notes toojustalongnotehere - +ba a note here to remember that padding must consider notes toojustalongnotehere + abjust an actorthis is a message groupaltand this is a nested message groupcase 1case 2case 3case 4what about more nestingcrazy townwhoa a notea note here to remember that padding must consider notes toojustalongnotehere - +abjust an actorthis is a message groupaltand this is a nested message groupcase 1case 2case 3case 4what about more nestingcrazy townwhoa a notea note here to remember that padding must consider notes toojustalongnotehere + diff --git a/e2etests/testdata/stable/sequence_diagram_nested_groups/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_nested_groups/elk/sketch.exp.svg index 7ca2f5d0f..0dbb0afaa 100644 --- a/e2etests/testdata/stable/sequence_diagram_nested_groups/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_nested_groups/elk/sketch.exp.svg @@ -18,8 +18,8 @@ width="1116" height="2458" viewBox="-197 -26 1116 2458">abjust an actorthis is a message groupaltand this is a nested message groupcase 1case 2case 3case 4what about more nestingcrazy townwhoa a notea note here to remember that padding must consider notes toojustalongnotehere - +abjust an actorthis is a message groupaltand this is a nested message groupcase 1case 2case 3case 4what about more nestingcrazy townwhoa a notea note here to remember that padding must consider notes toojustalongnotehere + diff --git a/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/sketch.exp.svg index 8db0ad5d1..9fb361e64 100644 --- a/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/sketch.exp.svg @@ -18,8 +18,8 @@ width="1624" height="1626" viewBox="-76 -26 1624 1626">scoreritemResponseitemessayRubricconceptitemOutcome - +scoreritemResponseitemessayRubricconceptitemOutcome + scoreritemResponseitemessayRubricconceptitemOutcome - +scoreritemResponseitemessayRubricconceptitemOutcome + abcd okayexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier - +abcd okayexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier + abcd okayexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier - +abcd okayexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier + How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutonly if root is not sequence 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVGmeasurements also take place - +How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutonly if root is not sequence 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVGmeasurements also take place + diff --git a/e2etests/testdata/stable/sequence_diagram_real/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_real/elk/sketch.exp.svg index 0d904f1d9..364fb5549 100644 --- a/e2etests/testdata/stable/sequence_diagram_real/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_real/elk/sketch.exp.svg @@ -18,8 +18,8 @@ width="2447" height="2536" viewBox="-88 -88 2447 2536">How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutonly if root is not sequence 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVGmeasurements also take place - +How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutonly if root is not sequence 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVGmeasurements also take place + diff --git a/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/sketch.exp.svg index b0d237070..f947663cd 100644 --- a/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/sketch.exp.svg @@ -18,8 +18,8 @@ width="696" height="1366" viewBox="-76 -26 696 1366">ab a self edge herebetween actorsto descendantto deeper descendantto parentactor - +ab a self edge herebetween actorsto descendantto deeper descendantto parentactor + diff --git a/e2etests/testdata/stable/sequence_diagram_self_edges/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_self_edges/elk/sketch.exp.svg index b0d237070..f947663cd 100644 --- a/e2etests/testdata/stable/sequence_diagram_self_edges/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_self_edges/elk/sketch.exp.svg @@ -18,8 +18,8 @@ width="696" height="1366" viewBox="-76 -26 696 1366">ab a self edge herebetween actorsto descendantto deeper descendantto parentactor - +ab a self edge herebetween actorsto descendantto deeper descendantto parentactor + diff --git a/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg index 608019d3a..d0e6006a2 100644 --- a/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg @@ -18,8 +18,8 @@ width="1598" height="1868" viewBox="-76 -26 1598 1868">AlicelinebreakerBobdbqueueanoddservicewithanameinmultiple lines Authentication Requestmake request for something that is quite far away and requires a really long label to take all the space between the objectsvalidate credentialsAuthentication ResponseAnother authentication Requestdo it later storedAnother authentication Response - +AlicelinebreakerBobdbqueueanoddservicewithanameinmultiple lines Authentication Requestmake request for something that is quite far away and requires a really long label to take all the space between the objectsvalidate credentialsAuthentication ResponseAnother authentication Requestdo it later storedAnother authentication Response + diff --git a/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg index 608019d3a..d0e6006a2 100644 --- a/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg @@ -18,8 +18,8 @@ width="1598" height="1868" viewBox="-76 -26 1598 1868">AlicelinebreakerBobdbqueueanoddservicewithanameinmultiple lines Authentication Requestmake request for something that is quite far away and requires a really long label to take all the space between the objectsvalidate credentialsAuthentication ResponseAnother authentication Requestdo it later storedAnother authentication Response - +AlicelinebreakerBobdbqueueanoddservicewithanameinmultiple lines Authentication Requestmake request for something that is quite far away and requires a really long label to take all the space between the objectsvalidate credentialsAuthentication ResponseAnother authentication Requestdo it later storedAnother authentication Response + diff --git a/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg index 470d35fc6..aa3321ec2 100644 --- a/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg @@ -18,8 +18,8 @@ width="1624" height="2146" viewBox="-76 -26 1624 2146">scoreritemResponseitemessayRubricconceptitemOutcome getItem() itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) - +scoreritemResponseitemessayRubricconceptitemOutcome getItem() itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) + diff --git a/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg index 470d35fc6..aa3321ec2 100644 --- a/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg @@ -18,8 +18,8 @@ width="1624" height="2146" viewBox="-76 -26 1624 2146">scoreritemResponseitemessayRubricconceptitemOutcome getItem() itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) - +scoreritemResponseitemessayRubricconceptitemOutcome getItem() itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) + diff --git a/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg index 1a8465908..db69a01ce 100644 --- a/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg @@ -18,8 +18,8 @@ width="3402" height="4269" viewBox="-100 -100 3402 4269">a_shapea_sequenceanotherfinallysequencesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponsescoreritemResponseitemessayRubricconceptitemOutcome getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) - +a_shapea_sequenceanotherfinallysequencesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponsescoreritemResponseitemessayRubricconceptitemOutcome getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) + diff --git a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg index 938982dd1..8aaa9c058 100644 --- a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg @@ -18,8 +18,8 @@ width="3324" height="4389" viewBox="-88 -88 3324 4389">a_shapea_sequenceanotherfinallysequencesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponsescoreritemResponseitemessayRubricconceptitemOutcome getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) - +a_shapea_sequenceanotherfinallysequencesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponsescoreritemResponseitemessayRubricconceptitemOutcome getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) + diff --git a/e2etests/testdata/stable/sql_tables/dagre/sketch.exp.svg b/e2etests/testdata/stable/sql_tables/dagre/sketch.exp.svg index da45fa870..d6087ea8a 100644 --- a/e2etests/testdata/stable/sql_tables/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sql_tables/dagre/sketch.exp.svg @@ -50,8 +50,8 @@ width="936" height="660" viewBox="-100 -100 936 660">acbl1l2c1l2c3l2c2l3c1l3c2l4bacacbabcc1c2c3abc + acbl1l2c1l2c3l2c2l3c1l3c2l4bacacbabcc1c2c3abc - +acbl1l2c1l2c3l2c2l3c1l3c2l4bacacbabcc1c2c3abc + -cube - +cube + -cube - +cube + AKHIALFLGAMSTNAZCANVNMUTARLAMOOKTXORCOKSNEWYCTMANYRIDEMDNJPANCSCIDMTWAILINIAMIKYWIOHMNSDVAWVMENHVTND - +AKHIALFLGAMSTNAZCANVNMUTARLAMOOKTXORCOKSNEWYCTMANYRIDEMDNJPANCSCIDMTWAILINIAMIKYWIOHMNSDVAWVMENHVTND + AKHIALFLGAMSTNAZCANVNMUTARLAMOOKTXORCOKSNEWYCTMANYRIDEMDNJPANCSCIDMTWAILINIAMIKYWIOHMNSDVAWVMENHVTND - +AKHIALFLGAMSTNAZCANVNMUTARLAMOOKTXORCOKSNEWYCTMANYRIDEMDNJPANCSCIDMTWAILINIAMIKYWIOHMNSDVAWVMENHVTND + containerfirstsecond 1->2c->2 - +containerfirstsecond 1->2c->2 + containerfirstsecond 1->2c->2 - - - +containerfirstsecond 1->2c->2 + + + ninety ninesixty fourthirty twosixteeneight - +ninety ninesixty fourthirty twosixteeneight + ninety ninesixty fourthirty twosixteeneight - +ninety ninesixty fourthirty twosixteeneight + eightsixteenthirty twosixty fourninety nine twelvetwenty fourforty eighteighty one - - - - - +eightsixteenthirty twosixty fourninety nine twelvetwenty fourforty eighteighty one + + + + + eightsixteenthirty twosixty fourninety nine twelvetwenty fourforty eighteighty one - - - - - +eightsixteenthirty twosixty fourninety nine twelvetwenty fourforty eighteighty one + + + + + bacthis is a message groupand this is a nested message groupwhat about more nestingyoyo - +bacthis is a message groupand this is a nested message groupwhat about more nestingyoyo + diff --git a/e2etests/testdata/todo/sequence_diagram_actor_padding_nested_groups/elk/sketch.exp.svg b/e2etests/testdata/todo/sequence_diagram_actor_padding_nested_groups/elk/sketch.exp.svg index a2ac750ea..288cab1f2 100644 --- a/e2etests/testdata/todo/sequence_diagram_actor_padding_nested_groups/elk/sketch.exp.svg +++ b/e2etests/testdata/todo/sequence_diagram_actor_padding_nested_groups/elk/sketch.exp.svg @@ -18,8 +18,8 @@ width="921" height="1242" viewBox="-147 -26 921 1242">bacthis is a message groupand this is a nested message groupwhat about more nestingyoyo - +bacthis is a message groupand this is a nested message groupwhat about more nestingyoyo + diff --git a/e2etests/testdata/todo/tall_edge_label/dagre/board.exp.json b/e2etests/testdata/todo/tall_edge_label/dagre/board.exp.json index f38c0a6d4..ab7a9450a 100644 --- a/e2etests/testdata/todo/tall_edge_label/dagre/board.exp.json +++ b/e2etests/testdata/todo/tall_edge_label/dagre/board.exp.json @@ -47,7 +47,7 @@ "type": "", "pos": { "x": 0, - "y": 226 + "y": 299 }, "width": 113, "height": 126, @@ -115,15 +115,15 @@ }, { "x": 56.5, - "y": 166 + "y": 195.2 }, { "x": 56.5, - "y": 186 + "y": 229.9 }, { "x": 56.5, - "y": 226 + "y": 299.5 } ], "isCurve": true, diff --git a/e2etests/testdata/todo/tall_edge_label/dagre/sketch.exp.svg b/e2etests/testdata/todo/tall_edge_label/dagre/sketch.exp.svg index b4e1b6d2d..e61e1a050 100644 --- a/e2etests/testdata/todo/tall_edge_label/dagre/sketch.exp.svg +++ b/e2etests/testdata/todo/tall_edge_label/dagre/sketch.exp.svg @@ -2,7 +2,7 @@ ab Thereoncewasaverytalledgelabel + + ab Thereoncewasaverytalledgelabel - +ab Thereoncewasaverytalledgelabel +