diff --git a/README.md b/README.md index 7c11a8a29..99f11d3c6 100644 --- a/README.md +++ b/README.md @@ -226,6 +226,7 @@ let us know and we'll be happy to include it here! - **CIL (C#, Visual Basic, F#, C++ CLR) to D2**: [https://github.com/HugoVG/AppDiagram](https://github.com/HugoVG/AppDiagram) - **D2 Snippets (for text editors)**: [https://github.com/Paracelsus-Rose/D2-Language-Code-Snippets](https://github.com/Paracelsus-Rose/D2-Language-Code-Snippets) - **Mongo to D2**: [https://github.com/novuhq/mongo-to-D2](https://github.com/novuhq/mongo-to-D2) +- **Pandoc filter**: [https://github.com/ram02z/d2-filter](https://github.com/ram02z/d2-filter) ### Misc @@ -271,3 +272,5 @@ this selected list of featured projects using D2. - Open-source money manager app for Android (1.1k stars). - [LocalStack](https://docs.localstack.cloud/references/network-troubleshooting/) - Cloud service emulator (46k stars) +- [Queue Library](https://github.com/golang-queue/queue/tree/master/images) + - Queue is a Golang library for spawning and managing a Goroutine pool diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 5651bfee0..c52158d51 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -1,10 +1,25 @@ #### Features 🚀 +- Container with constant key near attribute now can have descendant objects and connections [#1071](https://github.com/terrastruct/d2/pull/1071) +- Classes are implemented. See [docs](https://d2lang.com/todo). [#772](https://github.com/terrastruct/d2/pull/772) - Multi-board SVG outputs with internal links go to their output paths [#1116](https://github.com/terrastruct/d2/pull/1116) +- New grid layout to place nodes in rows and columns [#1122](https://github.com/terrastruct/d2/pull/1122) #### Improvements 🧹 +- Labels on parallel `dagre` connections include a gap between them [#1134](https://github.com/terrastruct/d2/pull/1134) +- Sequence Diagram `Lifelines` now inherit the Actor `stroke` and `stroke-dash` [#1140](https://github.com/terrastruct/d2/pull/1140) + #### Bugfixes ⛑️ +- Fix inheritence in scenarios/steps [#1090](https://github.com/terrastruct/d2/pull/1090) +- Fix a bug in 32bit builds [#1115](https://github.com/terrastruct/d2/issues/1115) - Fix a bug in ID parsing [#322](https://github.com/terrastruct/d2/issues/322) - Fix a bug in watch mode parsing SVG [#1119](https://github.com/terrastruct/d2/issues/1119) +- Namespace transitions so that multiple animated D2 diagrams can exist on the same page [#1123](https://github.com/terrastruct/d2/issues/1123) +- Fix a bug in vertical alignment of appendix lines [#1104](https://github.com/terrastruct/d2/issues/1104) +- Fix precision difference for sketch mode running on different architectures [#921](https://github.com/terrastruct/d2/issues/921) + +#### Breaking changes + +- `class` and `classes` are now reserved keywords. diff --git a/d2cli/main.go b/d2cli/main.go index 178e564c8..1504d402b 100644 --- a/d2cli/main.go +++ b/d2cli/main.go @@ -393,21 +393,24 @@ func compile(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, rende if err != nil { return nil, false, err } - out := boards[0] - if animateInterval > 0 { - out, err = d2animate.Wrap(diagram, boards, renderOpts, int(animateInterval)) - if err != nil { - return nil, false, err + var out []byte + if len(boards) > 0 { + out := boards[0] + if animateInterval > 0 { + out, err = d2animate.Wrap(diagram, boards, renderOpts, int(animateInterval)) + if err != nil { + return nil, false, err + } + err = os.MkdirAll(filepath.Dir(outputPath), 0755) + if err != nil { + return nil, false, err + } + err = ms.WritePath(outputPath, out) + if err != nil { + return nil, false, err + } + ms.Log.Success.Printf("successfully compiled %s to %s in %s", ms.HumanPath(inputPath), ms.HumanPath(outputPath), time.Since(start)) } - err = os.MkdirAll(filepath.Dir(outputPath), 0755) - if err != nil { - return nil, false, err - } - err = ms.WritePath(outputPath, out) - if err != nil { - return nil, false, err - } - ms.Log.Success.Printf("successfully compiled %s to %s in %s", ms.HumanPath(inputPath), ms.HumanPath(outputPath), time.Since(start)) } return out, true, nil } diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 28288795d..99c0de355 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -73,6 +73,7 @@ func (c *compiler) compileBoard(g *d2graph.Graph, ir *d2ir.Map) *d2graph.Graph { c.validateKeys(g.Root, ir) } c.validateNear(g) + c.validateEdges(g) c.compileBoardsField(g, ir, "layers") c.compileBoardsField(g, ir, "scenarios") @@ -115,8 +116,7 @@ func (c *compiler) compileBoardsField(g *d2graph.Graph, ir *d2ir.Map, fieldName } type compiler struct { - inEdgeGroup bool - err d2parser.ParseError + err d2parser.ParseError } func (c *compiler) errorf(n d2ast.Node, f string, v ...interface{}) { @@ -124,6 +124,18 @@ func (c *compiler) errorf(n d2ast.Node, f string, v ...interface{}) { } func (c *compiler) compileMap(obj *d2graph.Object, m *d2ir.Map) { + class := m.GetField("class") + if class != nil { + className := class.Primary() + if className == nil { + c.errorf(class.LastRef().AST(), "class missing value") + } else { + classMap := m.GetClassMap(className.String()) + if classMap != nil { + c.compileMap(obj, classMap) + } + } + } shape := m.GetField("shape") if shape != nil { c.compileField(obj, shape) @@ -158,7 +170,27 @@ func (c *compiler) compileField(obj *d2graph.Object, f *d2ir.Field) { return } _, isReserved := d2graph.SimpleReservedKeywords[keyword] - if isReserved { + if f.Name == "classes" { + if f.Map() != nil { + if len(f.Map().Edges) > 0 { + c.errorf(f.Map().Edges[0].LastRef().AST(), "classes cannot contain an edge") + } + for _, classesField := range f.Map().Fields { + if classesField.Map() == nil { + continue + } + for _, cf := range classesField.Map().Fields { + if _, ok := d2graph.ReservedKeywords[cf.Name]; !ok { + c.errorf(cf.LastRef().AST(), "%s is an invalid class field, must be reserved keyword", cf.Name) + } + if cf.Name == "class" { + c.errorf(cf.LastRef().AST(), `"class" cannot appear within "classes"`) + } + } + } + } + return + } else if isReserved { c.compileReserved(obj.Attributes, f) return } else if f.Name == "style" { @@ -362,6 +394,35 @@ func (c *compiler) compileReserved(attrs *d2graph.Attributes, f *d2ir.Field) { } attrs.Constraint.Value = scalar.ScalarString() attrs.Constraint.MapKey = f.LastPrimaryKey() + case "grid-rows": + v, err := strconv.Atoi(scalar.ScalarString()) + if err != nil { + c.errorf(scalar, "non-integer grid-rows %#v: %s", scalar.ScalarString(), err) + return + } + if v <= 0 { + c.errorf(scalar, "grid-rows must be a positive integer: %#v", scalar.ScalarString()) + return + } + attrs.GridRows = &d2graph.Scalar{} + attrs.GridRows.Value = scalar.ScalarString() + attrs.GridRows.MapKey = f.LastPrimaryKey() + case "grid-columns": + v, err := strconv.Atoi(scalar.ScalarString()) + if err != nil { + c.errorf(scalar, "non-integer grid-columns %#v: %s", scalar.ScalarString(), err) + return + } + if v <= 0 { + c.errorf(scalar, "grid-columns must be a positive integer: %#v", scalar.ScalarString()) + return + } + attrs.GridColumns = &d2graph.Scalar{} + attrs.GridColumns.Value = scalar.ScalarString() + attrs.GridColumns.MapKey = f.LastPrimaryKey() + case "class": + attrs.Classes = append(attrs.Classes, scalar.ScalarString()) + case "classes": } if attrs.Link != nil && attrs.Tooltip != nil { @@ -453,14 +514,7 @@ func (c *compiler) compileEdge(obj *d2graph.Object, e *d2ir.Edge) { c.compileLabel(edge.Attributes, e) } if e.Map() != nil { - for _, f := range e.Map().Fields { - _, ok := d2graph.ReservedKeywords[f.Name] - if !ok { - c.errorf(f.References[0].AST(), `edge map keys must be reserved keywords`) - continue - } - c.compileEdgeField(edge, f) - } + c.compileEdgeMap(edge, e.Map()) } edge.Attributes.Label.MapKey = e.LastPrimaryKey() @@ -477,6 +531,29 @@ func (c *compiler) compileEdge(obj *d2graph.Object, e *d2ir.Edge) { } } +func (c *compiler) compileEdgeMap(edge *d2graph.Edge, m *d2ir.Map) { + class := m.GetField("class") + if class != nil { + className := class.Primary() + if className == nil { + c.errorf(class.LastRef().AST(), "class missing value") + } else { + classMap := m.GetClassMap(className.String()) + if classMap != nil { + c.compileEdgeMap(edge, classMap) + } + } + } + for _, f := range m.Fields { + _, ok := d2graph.ReservedKeywords[f.Name] + if !ok { + c.errorf(f.References[0].AST(), `edge map keys must be reserved keywords`) + continue + } + c.compileEdgeField(edge, f) + } +} + func (c *compiler) compileEdgeField(edge *d2graph.Edge, f *d2ir.Field) { keyword := strings.ToLower(f.Name) _, isStyleReserved := d2graph.StyleKeywords[keyword] @@ -678,6 +755,13 @@ func (c *compiler) validateKey(obj *d2graph.Object, f *d2ir.Field) { if !in && arrowheadIn { c.errorf(f.LastPrimaryKey(), fmt.Sprintf(`invalid shape, can only set "%s" for arrowheads`, obj.Attributes.Shape.Value)) } + case "grid-rows", "grid-columns": + for _, child := range obj.ChildrenArray { + if child.IsContainer() { + c.errorf(f.LastPrimaryKey(), + fmt.Sprintf(`%#v can only be used on containers with one level of nesting right now. (%#v has nested %#v)`, keyword, child.AbsID(), child.ChildrenArray[0].ID)) + } + } } return } @@ -734,31 +818,48 @@ func (c *compiler) validateNear(g *d2graph.Graph) { } } } else if isConst { - is := false - for _, e := range g.Edges { - if e.Src == obj || e.Dst == obj { - is = true - break - } - } - if is { - c.errorf(obj.Attributes.NearKey, "constant near keys cannot be set on connected shapes") - continue - } if obj.Parent != g.Root { c.errorf(obj.Attributes.NearKey, "constant near keys can only be set on root level shapes") continue } - if len(obj.ChildrenArray) > 0 { - c.errorf(obj.Attributes.NearKey, "constant near keys cannot be set on shapes with children") - continue - } } else { c.errorf(obj.Attributes.NearKey, "near key %#v must be the absolute path to a shape or one of the following constants: %s", d2format.Format(obj.Attributes.NearKey), strings.Join(d2graph.NearConstantsArray, ", ")) continue } } } + + for _, edge := range g.Edges { + srcNearContainer := edge.Src.OuterNearContainer() + dstNearContainer := edge.Dst.OuterNearContainer() + + var isSrcNearConst, isDstNearConst bool + + if srcNearContainer != nil { + _, isSrcNearConst = d2graph.NearConstants[d2graph.Key(srcNearContainer.Attributes.NearKey)[0]] + } + if dstNearContainer != nil { + _, isDstNearConst = d2graph.NearConstants[d2graph.Key(dstNearContainer.Attributes.NearKey)[0]] + } + + if (isSrcNearConst || isDstNearConst) && srcNearContainer != dstNearContainer { + c.errorf(edge.References[0].Edge, "cannot connect objects from within a container, that has near constant set, to objects outside that container") + } + } + +} + +func (c *compiler) validateEdges(g *d2graph.Graph) { + for _, edge := range g.Edges { + if gd := edge.Src.Parent.ClosestGridDiagram(); gd != nil { + c.errorf(edge.GetAstEdge(), "edges in grid diagrams are not supported yet") + continue + } + if gd := edge.Dst.Parent.ClosestGridDiagram(); gd != nil { + c.errorf(edge.GetAstEdge(), "edges in grid diagrams are not supported yet") + continue + } + } } func (c *compiler) validateBoardLinks(g *d2graph.Graph) { diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index 53e33e22f..bb26d78f8 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -1558,25 +1558,27 @@ d2/testdata/d2compiler/TestCompile/near-invalid.d2:14:9: near keys cannot be set `, expErr: `d2/testdata/d2compiler/TestCompile/near_bad_constant.d2:1:9: near key "txop-center" must be the absolute path to a shape or one of the following constants: top-left, top-center, top-right, center-left, center-right, bottom-left, bottom-center, bottom-right`, }, - { - name: "near_bad_container", - - text: `x: { - near: top-center - y -} -`, - expErr: `d2/testdata/d2compiler/TestCompile/near_bad_container.d2:2:9: constant near keys cannot be set on shapes with children`, - }, { name: "near_bad_connected", - text: `x: { - near: top-center -} -x -> y -`, - expErr: `d2/testdata/d2compiler/TestCompile/near_bad_connected.d2:2:9: constant near keys cannot be set on connected shapes`, + text: ` + x: { + near: top-center + } + x -> y + `, + expErr: `d2/testdata/d2compiler/TestCompile/near_bad_connected.d2:5:5: cannot connect objects from within a container, that has near constant set, to objects outside that container`, + }, + { + name: "near_descendant_connect_to_outside", + text: ` + x: { + near: top-left + y + } + x.y -> z + `, + expErr: "d2/testdata/d2compiler/TestCompile/near_descendant_connect_to_outside.d2:6:5: cannot connect objects from within a container, that has near constant set, to objects outside that container", }, { name: "nested_near_constant", @@ -2268,6 +2270,150 @@ obj { `, expErr: `d2/testdata/d2compiler/TestCompile/near_near_const.d2:7:8: near keys cannot be set to an object with a constant near key`, }, + { + name: "grid", + text: `hey: { + grid-rows: 200 + grid-columns: 230 +} +`, + assertions: func(t *testing.T, g *d2graph.Graph) { + tassert.Equal(t, "200", g.Objects[0].Attributes.GridRows.Value) + }, + }, + { + name: "grid_negative", + text: `hey: { + grid-rows: 200 + grid-columns: -200 +} +`, + expErr: `d2/testdata/d2compiler/TestCompile/grid_negative.d2:3:16: grid-columns must be a positive integer: "-200"`, + }, + { + name: "grid_edge", + text: `hey: { + grid-rows: 1 + a -> b +} + c -> hey.b + hey.a -> c + + hey -> c: ok +`, + expErr: `d2/testdata/d2compiler/TestCompile/grid_edge.d2:3:2: edges in grid diagrams are not supported yet +d2/testdata/d2compiler/TestCompile/grid_edge.d2:5:2: edges in grid diagrams are not supported yet +d2/testdata/d2compiler/TestCompile/grid_edge.d2:6:2: edges in grid diagrams are not supported yet`, + }, + { + name: "grid_nested", + text: `hey: { + grid-rows: 200 + grid-columns: 200 + + a + b + c + d.invalid descendant +} +`, + expErr: `d2/testdata/d2compiler/TestCompile/grid_nested.d2:2:2: "grid-rows" can only be used on containers with one level of nesting right now. ("hey.d" has nested "invalid descendant") +d2/testdata/d2compiler/TestCompile/grid_nested.d2:3:2: "grid-columns" can only be used on containers with one level of nesting right now. ("hey.d" has nested "invalid descendant")`, + }, + { + name: "classes", + text: `classes: { + dragon_ball: { + label: "" + shape: circle + style.fill: orange + } + path: { + label: "then" + style.stroke-width: 4 + } +} +nostar: { class: dragon_ball } +1star: "*" { class: dragon_ball; style.fill: red } +2star: { label: "**"; class: dragon_ball } + +nostar -> 1star: { class: path } +`, + assertions: func(t *testing.T, g *d2graph.Graph) { + tassert.Equal(t, 3, len(g.Objects)) + tassert.Equal(t, "dragon_ball", g.Objects[0].Attributes.Classes[0]) + tassert.Equal(t, "", g.Objects[0].Attributes.Label.Value) + // Class field overrides primary + tassert.Equal(t, "", g.Objects[1].Attributes.Label.Value) + tassert.Equal(t, "**", g.Objects[2].Attributes.Label.Value) + tassert.Equal(t, "orange", g.Objects[0].Attributes.Style.Fill.Value) + tassert.Equal(t, "red", g.Objects[1].Attributes.Style.Fill.Value) + + tassert.Equal(t, "4", g.Edges[0].Attributes.Style.StrokeWidth.Value) + tassert.Equal(t, "then", g.Edges[0].Attributes.Label.Value) + }, + }, + { + name: "reordered-classes", + text: `classes: { + x: { + shape: circle + } +} +a.class: x +classes.x.shape: diamond +`, + assertions: func(t *testing.T, g *d2graph.Graph) { + tassert.Equal(t, 1, len(g.Objects)) + tassert.Equal(t, "diamond", g.Objects[0].Attributes.Shape.Value) + }, + }, + { + name: "no-class-primary", + text: `x.class +`, + expErr: `d2/testdata/d2compiler/TestCompile/no-class-primary.d2:1:3: class missing value`, + }, + { + name: "no-class-inside-classes", + text: `classes: { + x: { + class: y + } +} +`, + expErr: `d2/testdata/d2compiler/TestCompile/no-class-inside-classes.d2:3:5: "class" cannot appear within "classes"`, + }, + { + // This is okay + name: "missing-class", + text: `x.class: yo +`, + }, + { + name: "classes-unreserved", + text: `classes: { + mango: { + seed + } +} +`, + expErr: `d2/testdata/d2compiler/TestCompile/classes-unreserved.d2:3:5: seed is an invalid class field, must be reserved keyword`, + }, + { + name: "classes-internal-edge", + text: `classes: { + mango: { + width: 100 + } + jango: { + height: 100 + } + mango -> jango +} +`, + expErr: `d2/testdata/d2compiler/TestCompile/classes-internal-edge.d2:8:3: classes cannot contain an edge`, + }, } for _, tc := range testCases { @@ -2404,6 +2550,19 @@ layers: { assert.False(t, g.Layers[1].Scenarios[1].IsFolderOnly) }, }, + { + name: "scenarios_edge_index", + run: func(t *testing.T) { + assertCompile(t, `a -> x + +scenarios: { + 1: { + (a -> x)[0].style.opacity: 0.1 + } +} +`, "") + }, + }, { name: "errs/duplicate_board", run: func(t *testing.T) { diff --git a/d2exporter/export.go b/d2exporter/export.go index 8524e7542..671527be3 100644 --- a/d2exporter/export.go +++ b/d2exporter/export.go @@ -129,6 +129,7 @@ func toShape(obj *d2graph.Object, theme *d2themes.Theme) d2target.Shape { shape := d2target.BaseShape() shape.SetType(obj.Attributes.Shape.Value) shape.ID = obj.AbsID() + shape.Classes = obj.Attributes.Classes shape.ZIndex = obj.ZIndex shape.Level = int(obj.Level()) shape.Pos = d2target.NewPoint(int(obj.TopLeft.X), int(obj.TopLeft.Y)) @@ -194,6 +195,7 @@ func toShape(obj *d2graph.Object, theme *d2themes.Theme) d2target.Shape { func toConnection(edge *d2graph.Edge, theme *d2themes.Theme) d2target.Connection { connection := d2target.BaseConnection() connection.ID = edge.AbsID() + connection.Classes = edge.Attributes.Classes connection.ZIndex = edge.ZIndex text := edge.Text() diff --git a/d2exporter/export_test.go b/d2exporter/export_test.go index effcc07a8..bc6f47010 100644 --- a/d2exporter/export_test.go +++ b/d2exporter/export_test.go @@ -16,6 +16,7 @@ import ( "oss.terrastruct.com/d2/d2compiler" "oss.terrastruct.com/d2/d2exporter" "oss.terrastruct.com/d2/d2layouts/d2dagrelayout" + "oss.terrastruct.com/d2/d2layouts/d2grid" "oss.terrastruct.com/d2/d2layouts/d2sequence" "oss.terrastruct.com/d2/d2target" "oss.terrastruct.com/d2/lib/geo" @@ -231,7 +232,7 @@ func run(t *testing.T, tc testCase) { err = g.SetDimensions(nil, ruler, nil) assert.JSON(t, nil, err) - err = d2sequence.Layout(ctx, g, d2dagrelayout.DefaultLayout) + err = d2sequence.Layout(ctx, g, d2grid.Layout(ctx, g, d2dagrelayout.DefaultLayout)) if err != nil { t.Fatal(err) } diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index a9c370620..e6e9de6b4 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -1,6 +1,7 @@ package d2graph import ( + "context" "errors" "fmt" "math" @@ -67,6 +68,8 @@ func (g *Graph) RootBoard() *Graph { return g } +type LayoutGraph func(context.Context, *Graph) error + // TODO consider having different Scalar types // Right now we'll hold any types in Value and just convert, e.g. floats type Scalar struct { @@ -129,6 +132,13 @@ type Attributes struct { Direction Scalar `json:"direction"` Constraint Scalar `json:"constraint"` + + GridRows *Scalar `json:"gridRows,omitempty"` + GridColumns *Scalar `json:"gridColumns,omitempty"` + + // These names are attached to the rendered elements in SVG + // so that users can target them however they like outside of D2 + Classes []string `json:"classes,omitempty"` } // TODO references at the root scope should have their Scope set to root graph AST @@ -968,6 +978,16 @@ func (obj *Object) GetDefaultSize(mtexts []*d2target.MText, ruler *textmeasure.R return &dims, nil } +func (obj *Object) OuterNearContainer() *Object { + for obj != nil { + if obj.Attributes.NearKey != nil { + return obj + } + obj = obj.Parent + } + return nil +} + type Edge struct { Index int `json:"index"` @@ -1007,6 +1027,10 @@ type EdgeReference struct { ScopeObj *Object `json:"-"` } +func (e *Edge) GetAstEdge() *d2ast.Edge { + return e.References[0].Edge +} + func (e *Edge) GetStroke(dashGapSize interface{}) string { if dashGapSize != 0.0 { return color.B2 @@ -1521,19 +1545,23 @@ var ReservedKeywords2 map[string]struct{} // Non Style/Holder keywords. var SimpleReservedKeywords = map[string]struct{}{ - "label": {}, - "desc": {}, - "shape": {}, - "icon": {}, - "constraint": {}, - "tooltip": {}, - "link": {}, - "near": {}, - "width": {}, - "height": {}, - "direction": {}, - "top": {}, - "left": {}, + "label": {}, + "desc": {}, + "shape": {}, + "icon": {}, + "constraint": {}, + "tooltip": {}, + "link": {}, + "near": {}, + "width": {}, + "height": {}, + "direction": {}, + "top": {}, + "left": {}, + "grid-rows": {}, + "grid-columns": {}, + "class": {}, + "classes": {}, } // ReservedKeywordHolders are reserved keywords that are meaningless on its own and exist solely to hold a set of reserved keywords diff --git a/d2graph/grid_diagram.go b/d2graph/grid_diagram.go new file mode 100644 index 000000000..6c40667a5 --- /dev/null +++ b/d2graph/grid_diagram.go @@ -0,0 +1,16 @@ +package d2graph + +func (obj *Object) IsGridDiagram() bool { + return obj != nil && obj.Attributes != nil && + (obj.Attributes.GridRows != nil || obj.Attributes.GridColumns != nil) +} + +func (obj *Object) ClosestGridDiagram() *Object { + if obj == nil { + return nil + } + if obj.IsGridDiagram() { + return obj + } + return obj.Parent.ClosestGridDiagram() +} diff --git a/d2ir/compile.go b/d2ir/compile.go index fdd638a19..a1723464b 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -22,62 +22,58 @@ func Compile(ast *d2ast.Map) (*Map, error) { m.initRoot() m.parent.(*Field).References[0].Context.Scope = ast c.compileMap(m, ast) - c.compileScenarios(m) - c.compileSteps(m) + c.compileClasses(m) if !c.err.Empty() { return nil, c.err } return m, nil } -func (c *compiler) compileScenarios(m *Map) { - scenariosf := m.GetField("scenarios") - if scenariosf == nil { - return - } - scenarios := scenariosf.Map() - if scenarios == nil { +func (c *compiler) compileClasses(m *Map) { + classes := m.GetField("classes") + if classes == nil || classes.Map() == nil { return } - for _, sf := range scenarios.Fields { - if sf.Map() == nil || sf.Primary() != nil { - c.errorf(sf.References[0].Context.Key, "invalid scenario") + layersField := m.GetField("layers") + if layersField == nil { + return + } + layers := layersField.Map() + if layers == nil { + return + } + + for _, lf := range layers.Fields { + if lf.Map() == nil || lf.Primary() != nil { + c.errorf(lf.References[0].Context.Key, "invalid layer") continue } - base := m.CopyBase(sf) - OverlayMap(base, sf.Map()) - sf.Composite = base - c.compileScenarios(sf.Map()) - c.compileSteps(sf.Map()) + l := lf.Map() + lClasses := l.GetField("classes") + + if lClasses == nil { + lClasses = classes.Copy(l).(*Field) + l.Fields = append(l.Fields, lClasses) + } else { + base := classes.Copy(l).(*Field) + OverlayMap(base.Map(), lClasses.Map()) + l.DeleteField("classes") + l.Fields = append(l.Fields, base) + } + + c.compileClasses(l) } } -func (c *compiler) compileSteps(m *Map) { - stepsf := m.GetField("steps") - if stepsf == nil { +func (c *compiler) overlay(base *Map, f *Field) { + if f.Map() == nil || f.Primary() != nil { + c.errorf(f.References[0].Context.Key, "invalid %s", NodeBoardKind(f)) return } - steps := stepsf.Map() - if steps == nil { - return - } - for i, sf := range steps.Fields { - if sf.Map() == nil || sf.Primary() != nil { - c.errorf(sf.References[0].Context.Key, "invalid step") - break - } - var base *Map - if i == 0 { - base = m.CopyBase(sf) - } else { - base = steps.Fields[i-1].Map().CopyBase(sf) - } - OverlayMap(base, sf.Map()) - sf.Composite = base - c.compileScenarios(sf.Map()) - c.compileSteps(sf.Map()) - } + base = base.CopyBase(f) + OverlayMap(base, f.Map()) + f.Composite = base } func (c *compiler) compileMap(dst *Map, ast *d2ast.Map) { @@ -128,7 +124,27 @@ func (c *compiler) compileField(dst *Map, kp *d2ast.KeyPath, refctx *RefContext) parent: f, } } + switch NodeBoardKind(f) { + case BoardScenario: + c.overlay(ParentBoard(f).Map(), f) + case BoardStep: + stepsMap := ParentMap(f) + for i := range stepsMap.Fields { + if stepsMap.Fields[i] == f { + if i == 0 { + c.overlay(ParentBoard(f).Map(), f) + } else { + c.overlay(stepsMap.Fields[i-1].Map(), f) + } + break + } + } + } c.compileMap(f.Map(), refctx.Key.Value.Map) + switch NodeBoardKind(f) { + case BoardScenario, BoardStep: + c.compileClasses(f.Map()) + } } else if refctx.Key.Value.ScalarBox().Unbox() != nil { // If the link is a board, we need to transform it into an absolute path. if f.Name == "link" { diff --git a/d2ir/compile_test.go b/d2ir/compile_test.go index 71d46c924..b9fc2250d 100644 --- a/d2ir/compile_test.go +++ b/d2ir/compile_test.go @@ -19,6 +19,7 @@ func TestCompile(t *testing.T) { t.Parallel() t.Run("fields", testCompileFields) + t.Run("classes", testCompileClasses) t.Run("edges", testCompileEdges) t.Run("layers", testCompileLayers) t.Run("scenarios", testCompileScenarios) @@ -101,10 +102,12 @@ func makeScalar(v interface{}) *d2ir.Scalar { bv := &big.Rat{} bv.SetFloat64(v) s.Value = &d2ast.Number{ + Raw: fmt.Sprint(v), Value: bv, } case int: s.Value = &d2ast.Number{ + Raw: fmt.Sprint(v), Value: big.NewRat(int64(v), 1), } case string: @@ -379,6 +382,20 @@ scenarios: { assertQuery(t, m, 0, 0, nil, "scenarios.nuclear.quiche") }, }, + { + name: "edge", + run: func(t testing.TB) { + m, err := compile(t, `a -> b +scenarios: { + 1: { + (a -> b)[0].style.opacity: 0.1 + } +}`) + assert.Success(t, err) + + assertQuery(t, m, 0, 0, nil, "(a -> b)[0]") + }, + }, } runa(t, tca) } @@ -431,9 +448,8 @@ scenarios: { shape: sql_table hey: int {constraint: primary_key} }`) - assert.ErrorString(t, err, `TestCompile/steps/steps_panic.d2:6:3: invalid scenario -TestCompile/steps/steps_panic.d2:7:3: invalid scenario -TestCompile/steps/steps_panic.d2:2:3: invalid step`) + assert.ErrorString(t, err, `TestCompile/steps/steps_panic.d2:3:3: invalid step +TestCompile/steps/steps_panic.d2:7:3: invalid scenario`) }, }, { @@ -490,3 +506,154 @@ steps: { } runa(t, tca) } + +func testCompileClasses(t *testing.T) { + t.Parallel() + tca := []testCase{ + { + name: "basic", + run: func(t testing.TB) { + _, err := compile(t, `x +classes: { + mango: { + style.fill: orange + } +} +`) + assert.Success(t, err) + }, + }, + { + name: "nonroot", + run: func(t testing.TB) { + _, err := compile(t, `x: { + classes: { + mango: { + style.fill: orange + } + } +} +`) + assert.ErrorString(t, err, `TestCompile/classes/nonroot.d2:2:3: classes is only allowed at a board root`) + }, + }, + { + name: "merge", + run: func(t testing.TB) { + m, err := compile(t, `classes: { + mango: { + style.fill: orange + width: 10 + } +} +layers: { + hawaii: { + classes: { + mango: { + width: 9000 + } + } + } +} +`) + assert.Success(t, err) + assertQuery(t, m, 3, 0, nil, "layers.hawaii.classes.mango") + assertQuery(t, m, 0, 0, "orange", "layers.hawaii.classes.mango.style.fill") + assertQuery(t, m, 0, 0, 9000, "layers.hawaii.classes.mango.width") + }, + }, + { + name: "nested", + run: func(t testing.TB) { + m, err := compile(t, `classes: { + mango: { + style.fill: orange + } +} +layers: { + hawaii: { + layers: { + maui: { + x + } + } + } +} +`) + assert.Success(t, err) + assertQuery(t, m, 3, 0, nil, "layers.hawaii.classes") + assertQuery(t, m, 3, 0, nil, "layers.hawaii.layers.maui.classes") + }, + }, + { + name: "inherited", + run: func(t testing.TB) { + m, err := compile(t, `classes: { + mango: { + style.fill: orange + } +} +scenarios: { + hawaii: { + steps: { + 1: { + classes: { + cherry: { + style.fill: red + } + } + x + } + 2: { + y + } + 3: { + classes: { + cherry: { + style.fill: blue + } + } + y + } + 4: { + layers: { + deep: { + x + } + } + x + } + } + } +} +`) + assert.Success(t, err) + assertQuery(t, m, 3, 0, nil, "scenarios.hawaii.classes") + assertQuery(t, m, 2, 0, nil, "scenarios.hawaii.steps.2.classes.mango") + assertQuery(t, m, 2, 0, nil, "scenarios.hawaii.steps.2.classes.cherry") + assertQuery(t, m, 0, 0, "blue", "scenarios.hawaii.steps.4.classes.cherry.style.fill") + assertQuery(t, m, 0, 0, "blue", "scenarios.hawaii.steps.4.layers.deep.classes.cherry.style.fill") + }, + }, + { + name: "layer-modify", + run: func(t testing.TB) { + m, err := compile(t, `classes: { + orb: { + style.fill: yellow + } +} +layers: { + x: { + classes.orb.style.stroke: red + } +} +`) + assert.Success(t, err) + assertQuery(t, m, 0, 0, "yellow", "layers.x.classes.orb.style.fill") + assertQuery(t, m, 0, 0, "red", "layers.x.classes.orb.style.stroke") + }, + }, + } + runa(t, tca) +} diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 6fc8c34ca..28acbb5da 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -601,6 +601,18 @@ func (m *Map) EdgeCountRecursive() int { return acc } +func (m *Map) GetClassMap(name string) *Map { + root := RootMap(m) + classes := root.Map().GetField("classes") + if classes != nil && classes.Map() != nil { + class := classes.Map().GetField(name) + if class != nil && class.Map() != nil { + return class.Map() + } + } + return nil +} + func (m *Map) GetField(ida ...string) *Field { for len(ida) > 0 && ida[0] == "_" { m = ParentMap(m) @@ -663,6 +675,10 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext) (*Field, return nil, d2parser.Errorf(kp.Path[i].Unbox(), `parent "_" can only be used in the beginning of paths, e.g. "_.x"`) } + if head == "classes" && NodeBoardKind(m) == "" { + return nil, d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) + } + if findBoardKeyword(head) != -1 && NodeBoardKind(m) == "" { return nil, d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) } @@ -935,6 +951,13 @@ func (m *Map) appendFieldReferences(i int, kp *d2ast.KeyPath, refctx *RefContext } } +func RootMap(m *Map) *Map { + if m.Root() { + return m + } + return RootMap(ParentMap(m)) +} + func ParentMap(n Node) *Map { for { n = n.Parent() diff --git a/d2layouts/d2dagrelayout/layout.go b/d2layouts/d2dagrelayout/layout.go index dec8c164e..afa676dc0 100644 --- a/d2layouts/d2dagrelayout/layout.go +++ b/d2layouts/d2dagrelayout/layout.go @@ -33,6 +33,7 @@ var dagreJS string const ( MIN_SEGMENT_LEN = 10 MIN_RANK_SEP = 60 + EDGE_LABEL_GAP = 20 ) type ConfigurableOpts struct { @@ -173,37 +174,30 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err } } for _, edge := range g.Edges { - // dagre doesn't work with edges to containers so we connect container edges to their first child instead (going all the way down) - // 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 { - // 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] + src, dst := getEdgeEndpoints(g, edge) - // 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 - } + width := edge.LabelDimensions.Width + height := edge.LabelDimensions.Height + + numEdges := 0 + for _, e := range g.Edges { + otherSrc, otherDst := getEdgeEndpoints(g, e) + if (otherSrc == src && otherDst == dst) || (otherSrc == dst && otherDst == src) { + numEdges++ } } - if edge.SrcArrow && !edge.DstArrow { - // for `b <- a`, edge.Edge is `a -> b` and we expect this routing result - src, dst = dst, src + + // We want to leave some gap between multiple edges + if numEdges > 1 { + switch g.Root.Attributes.Direction.Value { + case "down", "up", "": + width += EDGE_LABEL_GAP + case "left", "right": + height += EDGE_LABEL_GAP + } } - loadScript += generateAddEdgeLine(src.AbsID(), dst.AbsID(), edge.AbsID(), edge.LabelDimensions.Width, edge.LabelDimensions.Height) + + loadScript += generateAddEdgeLine(src.AbsID(), dst.AbsID(), edge.AbsID(), width, height) } if debugJS { @@ -528,6 +522,40 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err return nil } +func getEdgeEndpoints(g *d2graph.Graph, edge *d2graph.Edge) (*d2graph.Object, *d2graph.Object) { + // dagre doesn't work with edges to containers so we connect container edges to their first child instead (going all the way down) + // 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 { + // 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 + src, dst = dst, src + } + return src, dst +} + func setGraphAttrs(attrs dagreOpts) string { return fmt.Sprintf(`g.setGraph({ ranksep: %d, diff --git a/d2layouts/d2grid/grid_diagram.go b/d2layouts/d2grid/grid_diagram.go new file mode 100644 index 000000000..264bc07cc --- /dev/null +++ b/d2layouts/d2grid/grid_diagram.go @@ -0,0 +1,87 @@ +package d2grid + +import ( + "strconv" + "strings" + + "oss.terrastruct.com/d2/d2graph" +) + +type gridDiagram struct { + root *d2graph.Object + objects []*d2graph.Object + rows int + columns int + + // if true, place objects left to right along rows + // if false, place objects top to bottom along columns + rowDirected bool + + width float64 + height float64 +} + +func newGridDiagram(root *d2graph.Object) *gridDiagram { + gd := gridDiagram{root: root, objects: root.ChildrenArray} + if root.Attributes.GridRows != nil { + gd.rows, _ = strconv.Atoi(root.Attributes.GridRows.Value) + } + if root.Attributes.GridColumns != nil { + gd.columns, _ = strconv.Atoi(root.Attributes.GridColumns.Value) + } + + if gd.rows != 0 && gd.columns != 0 { + // . row-directed column-directed + // . ┌───────┐ ┌───────┐ + // . │ a b c │ │ a d g │ + // . │ d e f │ │ b e h │ + // . │ g h i │ │ c f i │ + // . └───────┘ └───────┘ + // if keyword rows is first, make it row-directed, if columns is first it is column-directed + if root.Attributes.GridRows.MapKey.Range.Before(root.Attributes.GridColumns.MapKey.Range) { + gd.rowDirected = true + } + + // rows and columns specified, but we want to continue naturally if user enters more objects + // e.g. 2 rows, 3 columns specified + g added: │ with 3 columns, 2 rows: + // . original add row add column │ original add row add column + // . ┌───────┐ ┌───────┐ ┌─────────┐ │ ┌───────┐ ┌───────┐ ┌─────────┐ + // . │ a b c │ │ a b c │ │ a b c d │ │ │ a c e │ │ a d g │ │ a c e g │ + // . │ d e f │ │ d e f │ │ e f g │ │ │ b d f │ │ b e │ │ b d f │ + // . └───────┘ │ g │ └─────────┘ │ └───────┘ │ c f │ └─────────┘ + // . └───────┘ ▲ │ └───────┘ ▲ + // . ▲ └─existing objects modified│ ▲ └─existing columns preserved + // . └─existing rows preserved │ └─existing objects modified + capacity := gd.rows * gd.columns + for capacity < len(gd.objects) { + if gd.rowDirected { + gd.rows++ + capacity += gd.columns + } else { + gd.columns++ + capacity += gd.rows + } + } + } else if gd.columns == 0 { + gd.rowDirected = true + } + + return &gd +} + +func (gd *gridDiagram) shift(dx, dy float64) { + for _, obj := range gd.objects { + obj.TopLeft.X += dx + obj.TopLeft.Y += dy + } +} + +func (gd *gridDiagram) cleanup(obj *d2graph.Object, graph *d2graph.Graph) { + obj.Children = make(map[string]*d2graph.Object) + obj.ChildrenArray = make([]*d2graph.Object, 0) + for _, child := range gd.objects { + obj.Children[strings.ToLower(child.ID)] = child + obj.ChildrenArray = append(obj.ChildrenArray, child) + } + graph.Objects = append(graph.Objects, gd.objects...) +} diff --git a/d2layouts/d2grid/layout.go b/d2layouts/d2grid/layout.go new file mode 100644 index 000000000..1edae9066 --- /dev/null +++ b/d2layouts/d2grid/layout.go @@ -0,0 +1,578 @@ +package d2grid + +import ( + "context" + "math" + "sort" + + "oss.terrastruct.com/d2/d2graph" + "oss.terrastruct.com/d2/lib/geo" + "oss.terrastruct.com/d2/lib/label" + "oss.terrastruct.com/util-go/go2" +) + +const ( + CONTAINER_PADDING = 60 + HORIZONTAL_PAD = 40. + VERTICAL_PAD = 40. +) + +// Layout runs the grid layout on containers with rows/columns +// Note: children are not allowed edges or descendants +// +// 1. Traverse graph from root, skip objects with no rows/columns +// 2. Construct a grid with the container children +// 3. Remove the children from the main graph +// 4. Run grid layout +// 5. Set the resulting dimensions to the main graph shape +// 6. Run core layouts (without grid children) +// 7. Put grid children back in correct location +func Layout(ctx context.Context, g *d2graph.Graph, layout d2graph.LayoutGraph) d2graph.LayoutGraph { + return func(ctx context.Context, g *d2graph.Graph) error { + gridDiagrams, objectOrder, err := withoutGridDiagrams(ctx, g) + if err != nil { + return err + } + + if g.Root.IsGridDiagram() && len(g.Root.ChildrenArray) != 0 { + g.Root.TopLeft = geo.NewPoint(0, 0) + } else if err := layout(ctx, g); err != nil { + return err + } + + cleanup(g, gridDiagrams, objectOrder) + return nil + } +} + +func withoutGridDiagrams(ctx context.Context, g *d2graph.Graph) (gridDiagrams map[string]*gridDiagram, objectOrder map[string]int, err error) { + toRemove := make(map[*d2graph.Object]struct{}) + gridDiagrams = make(map[string]*gridDiagram) + + if len(g.Objects) > 0 { + queue := make([]*d2graph.Object, 1, len(g.Objects)) + queue[0] = g.Root + for len(queue) > 0 { + obj := queue[0] + queue = queue[1:] + if len(obj.ChildrenArray) == 0 { + continue + } + if !obj.IsGridDiagram() { + queue = append(queue, obj.ChildrenArray...) + continue + } + + gd, err := layoutGrid(g, obj) + if err != nil { + return nil, nil, err + } + obj.Children = make(map[string]*d2graph.Object) + obj.ChildrenArray = nil + + var dx, dy float64 + width := gd.width + 2*CONTAINER_PADDING + labelWidth := float64(obj.LabelDimensions.Width) + 2*label.PADDING + if labelWidth > width { + dx = (labelWidth - width) / 2 + width = labelWidth + } + height := gd.height + 2*CONTAINER_PADDING + labelHeight := float64(obj.LabelDimensions.Height) + 2*label.PADDING + if labelHeight > CONTAINER_PADDING { + // if the label doesn't fit within the padding, we need to add more + grow := labelHeight - CONTAINER_PADDING + dy = grow / 2 + height += grow + } + // we need to center children if we have to expand to fit the container label + if dx != 0 || dy != 0 { + gd.shift(dx, dy) + } + obj.Box = geo.NewBox(nil, width, height) + + obj.LabelPosition = go2.Pointer(string(label.InsideTopCenter)) + gridDiagrams[obj.AbsID()] = gd + + for _, o := range gd.objects { + toRemove[o] = struct{}{} + } + } + } + + objectOrder = make(map[string]int) + layoutObjects := make([]*d2graph.Object, 0, len(toRemove)) + for i, obj := range g.Objects { + objectOrder[obj.AbsID()] = i + if _, exists := toRemove[obj]; !exists { + layoutObjects = append(layoutObjects, obj) + } + } + g.Objects = layoutObjects + + return gridDiagrams, objectOrder, nil +} + +func layoutGrid(g *d2graph.Graph, obj *d2graph.Object) (*gridDiagram, error) { + gd := newGridDiagram(obj) + + if gd.rows != 0 && gd.columns != 0 { + gd.layoutEvenly(g, obj) + } else { + gd.layoutDynamic(g, obj) + } + + // position labels and icons + for _, o := range gd.objects { + if o.Attributes.Icon != nil { + o.LabelPosition = go2.Pointer(string(label.InsideTopCenter)) + o.IconPosition = go2.Pointer(string(label.InsideMiddleCenter)) + } else { + o.LabelPosition = go2.Pointer(string(label.InsideMiddleCenter)) + } + } + + return gd, nil +} + +func (gd *gridDiagram) layoutEvenly(g *d2graph.Graph, obj *d2graph.Object) { + // layout objects in a grid with these 2 properties: + // all objects in the same row should have the same height + // all objects in the same column should have the same width + + getObject := func(rowIndex, columnIndex int) *d2graph.Object { + var index int + if gd.rowDirected { + index = rowIndex*gd.columns + columnIndex + } else { + index = columnIndex*gd.rows + rowIndex + } + if index < len(gd.objects) { + return gd.objects[index] + } + return nil + } + + rowHeights := make([]float64, 0, gd.rows) + colWidths := make([]float64, 0, gd.columns) + for i := 0; i < gd.rows; i++ { + rowHeight := 0. + for j := 0; j < gd.columns; j++ { + o := getObject(i, j) + if o == nil { + break + } + rowHeight = math.Max(rowHeight, o.Height) + } + rowHeights = append(rowHeights, rowHeight) + } + for j := 0; j < gd.columns; j++ { + columnWidth := 0. + for i := 0; i < gd.rows; i++ { + o := getObject(i, j) + if o == nil { + break + } + columnWidth = math.Max(columnWidth, o.Width) + } + colWidths = append(colWidths, columnWidth) + } + + cursor := geo.NewPoint(0, 0) + if gd.rowDirected { + for i := 0; i < gd.rows; i++ { + for j := 0; j < gd.columns; j++ { + o := getObject(i, j) + if o == nil { + break + } + o.Width = colWidths[j] + o.Height = rowHeights[i] + o.TopLeft = cursor.Copy() + cursor.X += o.Width + HORIZONTAL_PAD + } + cursor.X = 0 + cursor.Y += rowHeights[i] + VERTICAL_PAD + } + } else { + for j := 0; j < gd.columns; j++ { + for i := 0; i < gd.rows; i++ { + o := getObject(i, j) + if o == nil { + break + } + o.Width = colWidths[j] + o.Height = rowHeights[i] + o.TopLeft = cursor.Copy() + cursor.Y += o.Height + VERTICAL_PAD + } + cursor.X += colWidths[j] + HORIZONTAL_PAD + cursor.Y = 0 + } + } + + var totalWidth, totalHeight float64 + for _, w := range colWidths { + totalWidth += w + HORIZONTAL_PAD + } + for _, h := range rowHeights { + totalHeight += h + VERTICAL_PAD + } + totalWidth -= HORIZONTAL_PAD + totalHeight -= VERTICAL_PAD + gd.width = totalWidth + gd.height = totalHeight +} + +func (gd *gridDiagram) layoutDynamic(g *d2graph.Graph, obj *d2graph.Object) { + // assume we have the following objects to layout: + // . ┌A──────────────┐ ┌B──┐ ┌C─────────┐ ┌D────────┐ ┌E────────────────┐ + // . └───────────────┘ │ │ │ │ │ │ │ │ + // . │ │ └──────────┘ │ │ │ │ + // . │ │ │ │ └─────────────────┘ + // . └───┘ │ │ + // . └─────────┘ + // Note: if the grid is row dominant, all objects should be the same height (same width if column dominant) + // . ┌A─────────────┐ ┌B──┐ ┌C─────────┐ ┌D────────┐ ┌E────────────────┐ + // . ├ ─ ─ ─ ─ ─ ─ ─┤ │ │ │ │ │ │ │ │ + // . │ │ │ │ ├ ─ ─ ─ ─ ─┤ │ │ │ │ + // . │ │ │ │ │ │ │ │ ├ ─ ─ ─ ─ ─ ─ ─ ─ ┤ + // . │ │ ├ ─ ┤ │ │ │ │ │ │ + // . └──────────────┘ └───┘ └──────────┘ └─────────┘ └─────────────────┘ + + // we want to split up the total width across the N rows or columns as evenly as possible + var totalWidth, totalHeight float64 + for _, o := range gd.objects { + totalWidth += o.Width + totalHeight += o.Height + } + totalWidth += HORIZONTAL_PAD * float64(len(gd.objects)-gd.rows) + totalHeight += VERTICAL_PAD * float64(len(gd.objects)-gd.columns) + + var layout [][]*d2graph.Object + if gd.rowDirected { + targetWidth := totalWidth / float64(gd.rows) + layout = gd.getBestLayout(targetWidth, false) + } else { + targetHeight := totalHeight / float64(gd.columns) + layout = gd.getBestLayout(targetHeight, true) + } + + cursor := geo.NewPoint(0, 0) + var maxY, maxX float64 + if gd.rowDirected { + // if we have 2 rows, then each row's objects should have the same height + // . ┌A─────────────┐ ┌B──┐ ┌C─────────┐ ┬ maxHeight(A,B,C) + // . ├ ─ ─ ─ ─ ─ ─ ─┤ │ │ │ │ │ + // . │ │ │ │ ├ ─ ─ ─ ─ ─┤ │ + // . │ │ │ │ │ │ │ + // . └──────────────┘ └───┘ └──────────┘ ┴ + // . ┌D────────┐ ┌E────────────────┐ ┬ maxHeight(D,E) + // . │ │ │ │ │ + // . │ │ │ │ │ + // . │ │ ├ ─ ─ ─ ─ ─ ─ ─ ─ ┤ │ + // . │ │ │ │ │ + // . └─────────┘ └─────────────────┘ ┴ + rowWidths := []float64{} + for _, row := range layout { + rowHeight := 0. + for _, o := range row { + o.TopLeft = cursor.Copy() + cursor.X += o.Width + HORIZONTAL_PAD + rowHeight = math.Max(rowHeight, o.Height) + } + rowWidth := cursor.X - HORIZONTAL_PAD + rowWidths = append(rowWidths, rowWidth) + maxX = math.Max(maxX, rowWidth) + + // set all objects in row to the same height + for _, o := range row { + o.Height = rowHeight + } + + // new row + cursor.X = 0 + cursor.Y += rowHeight + VERTICAL_PAD + } + maxY = cursor.Y - VERTICAL_PAD + + // then expand thinnest objects to make each row the same width + // . ┌A─────────────┐ ┌B──┐ ┌C─────────┐ ┬ maxHeight(A,B,C) + // . │ │ │ │ │ │ │ + // . │ │ │ │ │ │ │ + // . │ │ │ │ │ │ │ + // . └──────────────┘ └───┘ └──────────┘ ┴ + // . ┌D────────┬────┐ ┌E────────────────┐ ┬ maxHeight(D,E) + // . │ │ │ │ │ + // . │ │ │ │ │ │ + // . │ │ │ │ │ + // . │ │ │ │ │ │ + // . └─────────┴────┘ └─────────────────┘ ┴ + for i, row := range layout { + rowWidth := rowWidths[i] + if rowWidth == maxX { + continue + } + delta := maxX - rowWidth + objects := []*d2graph.Object{} + var widest float64 + for _, o := range row { + widest = math.Max(widest, o.Width) + objects = append(objects, o) + } + sort.Slice(objects, func(i, j int) bool { + return objects[i].Width < objects[j].Width + }) + // expand smaller objects to fill remaining space + for _, o := range objects { + if o.Width < widest { + var index int + for i, rowObj := range row { + if o == rowObj { + index = i + break + } + } + grow := math.Min(widest-o.Width, delta) + o.Width += grow + // shift following objects + for i := index + 1; i < len(row); i++ { + row[i].TopLeft.X += grow + } + delta -= grow + if delta <= 0 { + break + } + } + } + if delta > 0 { + grow := delta / float64(len(row)) + for i := len(row) - 1; i >= 0; i-- { + o := row[i] + o.TopLeft.X += grow * float64(i) + o.Width += grow + delta -= grow + } + } + } + } else { + // if we have 3 columns, then each column's objects should have the same width + // . ├maxWidth(A,B)─┤ ├maxW(C,D)─┤ ├maxWidth(E)──────┤ + // . ┌A─────────────┐ ┌C─────────┐ ┌E────────────────┐ + // . └──────────────┘ │ │ │ │ + // . ┌B──┬──────────┐ └──────────┘ │ │ + // . │ │ ┌D────────┬┐ └─────────────────┘ + // . │ │ │ │ │ + // . │ │ │ ││ + // . └───┴──────────┘ │ │ + // . │ ││ + // . └─────────┴┘ + colHeights := []float64{} + for _, column := range layout { + colWidth := 0. + for _, o := range column { + o.TopLeft = cursor.Copy() + cursor.Y += o.Height + VERTICAL_PAD + colWidth = math.Max(colWidth, o.Width) + } + colHeight := cursor.Y - VERTICAL_PAD + colHeights = append(colHeights, colHeight) + maxY = math.Max(maxY, colHeight) + // set all objects in column to the same width + for _, o := range column { + o.Width = colWidth + } + + // new column + cursor.Y = 0 + cursor.X += colWidth + HORIZONTAL_PAD + } + maxX = cursor.X - HORIZONTAL_PAD + // then expand shortest objects to make each column the same height + // . ├maxWidth(A,B)─┤ ├maxW(C,D)─┤ ├maxWidth(E)──────┤ + // . ┌A─────────────┐ ┌C─────────┐ ┌E────────────────┐ + // . ├ ─ ─ ─ ─ ─ ─ ┤ │ │ │ │ + // . │ │ └──────────┘ │ │ + // . └──────────────┘ ┌D─────────┐ ├ ─ ─ ─ ─ ─ ─ ─ ─ ┤ + // . ┌B─────────────┐ │ │ │ │ + // . │ │ │ │ │ │ + // . │ │ │ │ │ │ + // . │ │ │ │ │ │ + // . └──────────────┘ └──────────┘ └─────────────────┘ + for i, column := range layout { + colHeight := colHeights[i] + if colHeight == maxY { + continue + } + delta := maxY - colHeight + objects := []*d2graph.Object{} + var tallest float64 + for _, o := range column { + tallest = math.Max(tallest, o.Height) + objects = append(objects, o) + } + sort.Slice(objects, func(i, j int) bool { + return objects[i].Height < objects[j].Height + }) + // expand smaller objects to fill remaining space + for _, o := range objects { + if o.Height < tallest { + var index int + for i, colObj := range column { + if o == colObj { + index = i + break + } + } + grow := math.Min(tallest-o.Height, delta) + o.Height += grow + // shift following objects + for i := index + 1; i < len(column); i++ { + column[i].TopLeft.Y += grow + } + delta -= grow + if delta <= 0 { + break + } + } + } + if delta > 0 { + grow := delta / float64(len(column)) + for i := len(column) - 1; i >= 0; i-- { + o := column[i] + o.TopLeft.Y += grow * float64(i) + o.Height += grow + delta -= grow + } + } + } + } + gd.width = maxX + gd.height = maxY +} + +// generate the best layout of objects aiming for each row to be the targetSize width +// if columns is true, each column aims to have the targetSize height +func (gd *gridDiagram) getBestLayout(targetSize float64, columns bool) [][]*d2graph.Object { + var nCuts int + if columns { + nCuts = gd.columns - 1 + } else { + nCuts = gd.rows - 1 + } + if nCuts == 0 { + return genLayout(gd.objects, nil) + } + + // get all options for where to place these cuts, preferring later cuts over earlier cuts + // with 5 objects and 2 cuts we have these options: + // . A B C │ D │ E <- these cuts would produce: ┌A─┐ ┌B─┐ ┌C─┐ + // . A B │ C D │ E └──┘ └──┘ └──┘ + // . A │ B C D │ E ┌D───────────┐ + // . A B │ C │ D E └────────────┘ + // . A │ B C │ D E ┌E───────────┐ + // . A │ B │ C D E └────────────┘ + divisions := genDivisions(gd.objects, nCuts) + + var bestLayout [][]*d2graph.Object + bestDist := math.MaxFloat64 + // of these divisions, find the layout with rows closest to the targetSize + for _, division := range divisions { + layout := genLayout(gd.objects, division) + dist := getDistToTarget(layout, targetSize, columns) + if dist < bestDist { + bestLayout = layout + bestDist = dist + } + } + + return bestLayout +} + +// get all possible divisions of objects by the number of cuts +func genDivisions(objects []*d2graph.Object, nCuts int) (divisions [][]int) { + if len(objects) < 2 || nCuts == 0 { + return nil + } + // we go in this order to prefer extra objects in starting rows rather than later ones + lastObj := len(objects) - 1 + for index := lastObj; index >= nCuts; index-- { + if nCuts > 1 { + for _, inner := range genDivisions(objects[:index], nCuts-1) { + divisions = append(divisions, append(inner, index-1)) + } + } else { + divisions = append(divisions, []int{index - 1}) + } + } + + return divisions +} + +// generate a grid of objects from the given cut indices +func genLayout(objects []*d2graph.Object, cutIndices []int) [][]*d2graph.Object { + layout := make([][]*d2graph.Object, len(cutIndices)+1) + objIndex := 0 + for i := 0; i <= len(cutIndices); i++ { + var stop int + if i < len(cutIndices) { + stop = cutIndices[i] + } else { + stop = len(objects) - 1 + } + for ; objIndex <= stop; objIndex++ { + layout[i] = append(layout[i], objects[objIndex]) + } + } + return layout +} + +func getDistToTarget(layout [][]*d2graph.Object, targetSize float64, columns bool) float64 { + totalDelta := 0. + for _, row := range layout { + rowSize := 0. + for _, o := range row { + if columns { + rowSize += o.Height + VERTICAL_PAD + } else { + rowSize += o.Width + HORIZONTAL_PAD + } + } + totalDelta += math.Abs(rowSize - targetSize) + } + return totalDelta +} + +// cleanup restores the graph after the core layout engine finishes +// - translating the grid to its position placed by the core layout engine +// - restore the children of the grid +// - sorts objects to their original graph order +func cleanup(graph *d2graph.Graph, gridDiagrams map[string]*gridDiagram, objectsOrder map[string]int) { + defer func() { + sort.SliceStable(graph.Objects, func(i, j int) bool { + return objectsOrder[graph.Objects[i].AbsID()] < objectsOrder[graph.Objects[j].AbsID()] + }) + }() + + if graph.Root.IsGridDiagram() { + gd, exists := gridDiagrams[graph.Root.AbsID()] + if exists { + gd.cleanup(graph.Root, graph) + return + } + } + + for _, obj := range graph.Objects { + gd, exists := gridDiagrams[obj.AbsID()] + if !exists { + continue + } + obj.LabelPosition = go2.Pointer(string(label.InsideTopCenter)) + // shift the grid from (0, 0) + gd.shift( + obj.TopLeft.X+CONTAINER_PADDING, + obj.TopLeft.Y+CONTAINER_PADDING, + ) + gd.cleanup(obj, graph) + } +} diff --git a/d2layouts/d2near/layout.go b/d2layouts/d2near/layout.go index 082a0e296..07cfef4d1 100644 --- a/d2layouts/d2near/layout.go +++ b/d2layouts/d2near/layout.go @@ -10,47 +10,62 @@ import ( "oss.terrastruct.com/d2/d2graph" "oss.terrastruct.com/d2/lib/geo" "oss.terrastruct.com/d2/lib/label" - "oss.terrastruct.com/util-go/go2" ) const pad = 20 // Layout finds the shapes which are assigned constant near keywords and places them. -func Layout(ctx context.Context, g *d2graph.Graph, constantNears []*d2graph.Object) error { - if len(constantNears) == 0 { +func Layout(ctx context.Context, g *d2graph.Graph, constantNearGraphs []*d2graph.Graph) error { + if len(constantNearGraphs) == 0 { return nil } + for _, tempGraph := range constantNearGraphs { + tempGraph.Root.ChildrenArray[0].Parent = g.Root + for _, obj := range tempGraph.Objects { + obj.Graph = g + } + } + // Imagine the graph has two long texts, one at top center and one at top left. // Top left should go left enough to not collide with center. // So place the center ones first, then the later ones will consider them for bounding box for _, processCenters := range []bool{true, false} { - for _, obj := range constantNears { + for _, tempGraph := range constantNearGraphs { + obj := tempGraph.Root.ChildrenArray[0] if processCenters == strings.Contains(d2graph.Key(obj.Attributes.NearKey)[0], "-center") { + prevX, prevY := obj.TopLeft.X, obj.TopLeft.Y obj.TopLeft = geo.NewPoint(place(obj)) + dx, dy := obj.TopLeft.X-prevX, obj.TopLeft.Y-prevY + + for _, subObject := range tempGraph.Objects { + // `obj` already been replaced above by `place(obj)` + if subObject == obj { + continue + } + subObject.TopLeft.X += dx + subObject.TopLeft.Y += dy + } + for _, subEdge := range tempGraph.Edges { + for _, point := range subEdge.Route { + point.X += dx + point.Y += dy + } + } } } - for _, obj := range constantNears { + for _, tempGraph := range constantNearGraphs { + obj := tempGraph.Root.ChildrenArray[0] if processCenters == strings.Contains(d2graph.Key(obj.Attributes.NearKey)[0], "-center") { // The z-index for constant nears does not matter, as it will not collide - g.Objects = append(g.Objects, obj) - obj.Parent.Children[obj.ID] = obj + g.Objects = append(g.Objects, tempGraph.Objects...) + obj.Parent.Children[strings.ToLower(obj.ID)] = obj obj.Parent.ChildrenArray = append(obj.Parent.ChildrenArray, obj) + g.Edges = append(g.Edges, tempGraph.Edges...) } } } - // These shapes skipped core layout, which means they also skipped label placements - for _, obj := range constantNears { - if obj.HasOutsideBottomLabel() { - obj.LabelPosition = go2.Pointer(string(label.OutsideBottomCenter)) - } else if obj.Attributes.Icon != nil { - obj.LabelPosition = go2.Pointer(string(label.InsideTopCenter)) - } else { - obj.LabelPosition = go2.Pointer(string(label.InsideMiddleCenter)) - } - } - return nil } @@ -59,30 +74,66 @@ func place(obj *d2graph.Object) (float64, float64) { tl, br := boundingBox(obj.Graph) w := br.X - tl.X h := br.Y - tl.Y - switch d2graph.Key(obj.Attributes.NearKey)[0] { + + nearKeyStr := d2graph.Key(obj.Attributes.NearKey)[0] + var x, y float64 + switch nearKeyStr { case "top-left": - return tl.X - obj.Width - pad, tl.Y - obj.Height - pad + x, y = tl.X-obj.Width-pad, tl.Y-obj.Height-pad + break case "top-center": - return tl.X + w/2 - obj.Width/2, tl.Y - obj.Height - pad + x, y = tl.X+w/2-obj.Width/2, tl.Y-obj.Height-pad + break case "top-right": - return br.X + pad, tl.Y - obj.Height - pad + x, y = br.X+pad, tl.Y-obj.Height-pad + break case "center-left": - return tl.X - obj.Width - pad, tl.Y + h/2 - obj.Height/2 + x, y = tl.X-obj.Width-pad, tl.Y+h/2-obj.Height/2 + break case "center-right": - return br.X + pad, tl.Y + h/2 - obj.Height/2 + x, y = br.X+pad, tl.Y+h/2-obj.Height/2 + break case "bottom-left": - return tl.X - obj.Width - pad, br.Y + pad + x, y = tl.X-obj.Width-pad, br.Y+pad + break case "bottom-center": - return br.X - w/2 - obj.Width/2, br.Y + pad + x, y = br.X-w/2-obj.Width/2, br.Y+pad + break case "bottom-right": - return br.X + pad, br.Y + pad + x, y = br.X+pad, br.Y+pad + break } - return 0, 0 + + if obj.LabelPosition != nil && !strings.Contains(*obj.LabelPosition, "INSIDE") { + if strings.Contains(*obj.LabelPosition, "_TOP_") { + // label is on the top, and container is placed on the bottom + if strings.Contains(nearKeyStr, "bottom") { + y += float64(*obj.LabelHeight) + } + } else if strings.Contains(*obj.LabelPosition, "_LEFT_") { + // label is on the left, and container is placed on the right + if strings.Contains(nearKeyStr, "right") { + x += float64(*obj.LabelWidth) + } + } else if strings.Contains(*obj.LabelPosition, "_RIGHT_") { + // label is on the right, and container is placed on the left + if strings.Contains(nearKeyStr, "left") { + x -= float64(*obj.LabelWidth) + } + } else if strings.Contains(*obj.LabelPosition, "_BOTTOM_") { + // label is on the bottom, and container is placed on the top + if strings.Contains(nearKeyStr, "top") { + y -= float64(*obj.LabelHeight) + } + } + } + + return x, y } // WithoutConstantNears plucks out the graph objects which have "near" set to a constant value // This is to be called before layout engines so they don't take part in regular positioning -func WithoutConstantNears(ctx context.Context, g *d2graph.Graph) (nears []*d2graph.Object) { +func WithoutConstantNears(ctx context.Context, g *d2graph.Graph) (constantNearGraphs []*d2graph.Graph) { for i := 0; i < len(g.Objects); i++ { obj := g.Objects[i] if obj.Attributes.NearKey == nil { @@ -94,8 +145,20 @@ func WithoutConstantNears(ctx context.Context, g *d2graph.Graph) (nears []*d2gra } _, isConst := d2graph.NearConstants[d2graph.Key(obj.Attributes.NearKey)[0]] if isConst { - nears = append(nears, obj) - g.Objects = append(g.Objects[:i], g.Objects[i+1:]...) + descendantObjects, edges := pluckObjAndEdges(g, obj) + + tempGraph := d2graph.NewGraph() + tempGraph.Root.ChildrenArray = []*d2graph.Object{obj} + tempGraph.Root.Children[strings.ToLower(obj.ID)] = obj + + for _, descendantObj := range descendantObjects { + descendantObj.Graph = tempGraph + } + tempGraph.Objects = descendantObjects + tempGraph.Edges = edges + + constantNearGraphs = append(constantNearGraphs, tempGraph) + i-- delete(obj.Parent.Children, strings.ToLower(obj.ID)) for i := 0; i < len(obj.Parent.ChildrenArray); i++ { @@ -104,9 +167,38 @@ func WithoutConstantNears(ctx context.Context, g *d2graph.Graph) (nears []*d2gra break } } + + obj.Parent = tempGraph.Root } } - return nears + return constantNearGraphs +} + +func pluckObjAndEdges(g *d2graph.Graph, obj *d2graph.Object) (descendantsObjects []*d2graph.Object, edges []*d2graph.Edge) { + for i := 0; i < len(g.Edges); i++ { + edge := g.Edges[i] + if edge.Src == obj || edge.Dst == obj { + edges = append(edges, edge) + g.Edges = append(g.Edges[:i], g.Edges[i+1:]...) + i-- + } + } + + for i := 0; i < len(g.Objects); i++ { + temp := g.Objects[i] + if temp.AbsID() == obj.AbsID() { + descendantsObjects = append(descendantsObjects, obj) + g.Objects = append(g.Objects[:i], g.Objects[i+1:]...) + for _, child := range obj.ChildrenArray { + subObjects, subEdges := pluckObjAndEdges(g, child) + descendantsObjects = append(descendantsObjects, subObjects...) + edges = append(edges, subEdges...) + } + break + } + } + + return descendantsObjects, edges } // boundingBox gets the center of the graph as defined by shapes @@ -134,6 +226,9 @@ func boundingBox(g *d2graph.Graph) (tl, br *geo.Point) { y2 = math.Max(y2, obj.TopLeft.Y+obj.Height) } } else { + if obj.OuterNearContainer() != nil { + continue + } x1 = math.Min(x1, obj.TopLeft.X) y1 = math.Min(y1, obj.TopLeft.Y) x2 = math.Max(x2, obj.TopLeft.X+obj.Width) diff --git a/d2layouts/d2sequence/layout.go b/d2layouts/d2sequence/layout.go index 28755f3e0..0da870f19 100644 --- a/d2layouts/d2sequence/layout.go +++ b/d2layouts/d2sequence/layout.go @@ -13,6 +13,33 @@ import ( "oss.terrastruct.com/d2/lib/label" ) +// Layout runs the sequence diagram layout engine on objects of shape sequence_diagram +// +// 1. Traverse graph from root, skip objects with shape not `sequence_diagram` +// 2. Construct a sequence diagram from all descendant objects and edges +// 3. Remove those objects and edges from the main graph +// 4. Run layout on sequence diagrams +// 5. Set the resulting dimensions to the main graph shape +// 6. Run core layouts (still without sequence diagram innards) +// 7. Put back sequence diagram innards in correct location +func Layout(ctx context.Context, g *d2graph.Graph, layout d2graph.LayoutGraph) error { + sequenceDiagrams, objectOrder, edgeOrder, err := WithoutSequenceDiagrams(ctx, g) + if err != nil { + return err + } + + if g.Root.IsSequenceDiagram() { + // the sequence diagram is the only layout engine if the whole diagram is + // shape: sequence_diagram + g.Root.TopLeft = geo.NewPoint(0, 0) + } else if err := layout(ctx, g); err != nil { + return err + } + + cleanup(g, sequenceDiagrams, objectOrder, edgeOrder) + return nil +} + func WithoutSequenceDiagrams(ctx context.Context, g *d2graph.Graph) (map[string]*sequenceDiagram, map[string]int, map[string]int, error) { objectsToRemove := make(map[*d2graph.Object]struct{}) edgesToRemove := make(map[*d2graph.Edge]struct{}) @@ -69,33 +96,6 @@ func WithoutSequenceDiagrams(ctx context.Context, g *d2graph.Graph) (map[string] return sequenceDiagrams, objectOrder, edgeOrder, nil } -// Layout runs the sequence diagram layout engine on objects of shape sequence_diagram -// -// 1. Traverse graph from root, skip objects with shape not `sequence_diagram` -// 2. Construct a sequence diagram from all descendant objects and edges -// 3. Remove those objects and edges from the main graph -// 4. Run layout on sequence diagrams -// 5. Set the resulting dimensions to the main graph shape -// 6. Run core layouts (still without sequence diagram innards) -// 7. Put back sequence diagram innards in correct location -func Layout(ctx context.Context, g *d2graph.Graph, layout func(ctx context.Context, g *d2graph.Graph) error) error { - sequenceDiagrams, objectOrder, edgeOrder, err := WithoutSequenceDiagrams(ctx, g) - if err != nil { - return err - } - - if g.Root.IsSequenceDiagram() { - // the sequence diagram is the only layout engine if the whole diagram is - // shape: sequence_diagram - g.Root.TopLeft = geo.NewPoint(0, 0) - } else if err := layout(ctx, g); err != nil { - return err - } - - cleanup(g, sequenceDiagrams, objectOrder, edgeOrder) - return nil -} - // layoutSequenceDiagram finds the edges inside the sequence diagram and performs the layout on the object descendants func layoutSequenceDiagram(g *d2graph.Graph, obj *d2graph.Object) (*sequenceDiagram, error) { var edges []*d2graph.Edge @@ -154,11 +154,11 @@ func cleanup(g *d2graph.Graph, sequenceDiagrams map[string]*sequenceDiagram, obj objects = g.Objects } for _, obj := range objects { - if _, exists := sequenceDiagrams[obj.AbsID()]; !exists { + sd, exists := sequenceDiagrams[obj.AbsID()] + if !exists { continue } obj.LabelPosition = go2.Pointer(string(label.InsideTopCenter)) - sd := sequenceDiagrams[obj.AbsID()] // shift the sequence diagrams as they are always placed at (0, 0) with some padding sd.shift( @@ -171,22 +171,22 @@ func cleanup(g *d2graph.Graph, sequenceDiagrams map[string]*sequenceDiagram, obj obj.Children = make(map[string]*d2graph.Object) obj.ChildrenArray = make([]*d2graph.Object, 0) for _, child := range sd.actors { - obj.Children[child.ID] = child + obj.Children[strings.ToLower(child.ID)] = child obj.ChildrenArray = append(obj.ChildrenArray, child) } for _, child := range sd.groups { if child.Parent.AbsID() == obj.AbsID() { - obj.Children[child.ID] = child + obj.Children[strings.ToLower(child.ID)] = child obj.ChildrenArray = append(obj.ChildrenArray, child) } } - g.Edges = append(g.Edges, sequenceDiagrams[obj.AbsID()].messages...) - g.Edges = append(g.Edges, sequenceDiagrams[obj.AbsID()].lifelines...) - g.Objects = append(g.Objects, sequenceDiagrams[obj.AbsID()].actors...) - g.Objects = append(g.Objects, sequenceDiagrams[obj.AbsID()].notes...) - g.Objects = append(g.Objects, sequenceDiagrams[obj.AbsID()].groups...) - g.Objects = append(g.Objects, sequenceDiagrams[obj.AbsID()].spans...) + g.Edges = append(g.Edges, sd.messages...) + g.Edges = append(g.Edges, sd.lifelines...) + g.Objects = append(g.Objects, sd.actors...) + g.Objects = append(g.Objects, sd.notes...) + g.Objects = append(g.Objects, sd.groups...) + g.Objects = append(g.Objects, sd.spans...) } // no new objects, so just keep the same position diff --git a/d2layouts/d2sequence/sequence_diagram.go b/d2layouts/d2sequence/sequence_diagram.go index f30307d7d..c67d146bd 100644 --- a/d2layouts/d2sequence/sequence_diagram.go +++ b/d2layouts/d2sequence/sequence_diagram.go @@ -386,15 +386,21 @@ func (sd *sequenceDiagram) addLifelineEdges() { } actorLifelineEnd := actor.Center() actorLifelineEnd.Y = endY + style := d2graph.Style{ + StrokeDash: &d2graph.Scalar{Value: fmt.Sprintf("%d", LIFELINE_STROKE_DASH)}, + StrokeWidth: &d2graph.Scalar{Value: fmt.Sprintf("%d", LIFELINE_STROKE_WIDTH)}, + } + if actor.Attributes.Style.StrokeDash != nil { + style.StrokeDash = &d2graph.Scalar{Value: actor.Attributes.Style.StrokeDash.Value} + } + if actor.Attributes.Style.Stroke != nil { + style.Stroke = &d2graph.Scalar{Value: actor.Attributes.Style.Stroke.Value} + } + sd.lifelines = append(sd.lifelines, &d2graph.Edge{ - Attributes: &d2graph.Attributes{ - Style: d2graph.Style{ - StrokeDash: &d2graph.Scalar{Value: fmt.Sprintf("%d", LIFELINE_STROKE_DASH)}, - StrokeWidth: &d2graph.Scalar{Value: fmt.Sprintf("%d", LIFELINE_STROKE_WIDTH)}, - }, - }, - Src: actor, - SrcArrow: false, + Attributes: &d2graph.Attributes{Style: style}, + Src: actor, + SrcArrow: false, Dst: &d2graph.Object{ ID: actor.ID + fmt.Sprintf("-lifeline-end-%d", go2.StringToIntHash(actor.ID+"-lifeline-end")), }, diff --git a/d2lib/d2.go b/d2lib/d2.go index 060204ea9..5b497b594 100644 --- a/d2lib/d2.go +++ b/d2lib/d2.go @@ -10,6 +10,7 @@ import ( "oss.terrastruct.com/d2/d2exporter" "oss.terrastruct.com/d2/d2graph" "oss.terrastruct.com/d2/d2layouts/d2dagrelayout" + "oss.terrastruct.com/d2/d2layouts/d2grid" "oss.terrastruct.com/d2/d2layouts/d2near" "oss.terrastruct.com/d2/d2layouts/d2sequence" "oss.terrastruct.com/d2/d2renderers/d2fonts" @@ -68,14 +69,23 @@ func compile(ctx context.Context, g *d2graph.Graph, opts *CompileOptions) (*d2ta return nil, err } - constantNears := d2near.WithoutConstantNears(ctx, g) + constantNearGraphs := d2near.WithoutConstantNears(ctx, g) - err = d2sequence.Layout(ctx, g, coreLayout) + // run core layout for constantNears + for _, tempGraph := range constantNearGraphs { + if err = coreLayout(ctx, tempGraph); err != nil { + return nil, err + } + } + + layoutWithGrids := d2grid.Layout(ctx, g, coreLayout) + + err = d2sequence.Layout(ctx, g, layoutWithGrids) if err != nil { return nil, err } - err = d2near.Layout(ctx, g, constantNears) + err = d2near.Layout(ctx, g, constantNearGraphs) if err != nil { return nil, err } @@ -110,7 +120,7 @@ func compile(ctx context.Context, g *d2graph.Graph, opts *CompileOptions) (*d2ta return d, nil } -func getLayout(opts *CompileOptions) (func(context.Context, *d2graph.Graph) error, error) { +func getLayout(opts *CompileOptions) (d2graph.LayoutGraph, error) { if opts.Layout != nil { return opts.Layout, nil } else if os.Getenv("D2_LAYOUT") == "dagre" { diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 668b6d4a0..58aaab1b6 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -314,6 +314,16 @@ func _set(g *d2graph.Graph, key string, tag, value *string) error { attrs.Left.MapKey.SetScalar(mk.Value.ScalarBox()) return nil } + case "grid-rows": + if attrs.GridRows != nil && attrs.GridRows.MapKey != nil { + attrs.GridRows.MapKey.SetScalar(mk.Value.ScalarBox()) + return nil + } + case "grid-columns": + if attrs.GridColumns != nil && attrs.GridColumns.MapKey != nil { + attrs.GridColumns.MapKey.SetScalar(mk.Value.ScalarBox()) + return nil + } case "source-arrowhead", "target-arrowhead": if reservedKey == "source-arrowhead" { attrs = edge.SrcArrowhead diff --git a/d2renderers/d2animate/d2animate.go b/d2renderers/d2animate/d2animate.go index b2f1b3074..7fca92dd7 100644 --- a/d2renderers/d2animate/d2animate.go +++ b/d2renderers/d2animate/d2animate.go @@ -14,23 +14,23 @@ import ( var transitionDurationMS = 1 -func makeKeyframe(delayMS, durationMS, totalMS, identifier int) string { +func makeKeyframe(delayMS, durationMS, totalMS, identifier int, diagramHash string) string { percentageBefore := (math.Max(0, float64(delayMS-transitionDurationMS)) / float64(totalMS)) * 100. percentageStart := (float64(delayMS) / float64(totalMS)) * 100. percentageEnd := (float64(delayMS+durationMS-transitionDurationMS) / float64(totalMS)) * 100. if int(math.Ceil(percentageEnd)) == 100 { - return fmt.Sprintf(`@keyframes d2Transition-%d { + return fmt.Sprintf(`@keyframes d2Transition-%s-%d { 0%%, %f%% { opacity: 0; } %f%%, %f%% { opacity: 1; } -}`, identifier, percentageBefore, percentageStart, math.Ceil(percentageEnd)) +}`, diagramHash, identifier, percentageBefore, percentageStart, math.Ceil(percentageEnd)) } percentageAfter := (float64(delayMS+durationMS) / float64(totalMS)) * 100. - return fmt.Sprintf(`@keyframes d2Transition-%d { + return fmt.Sprintf(`@keyframes d2Transition-%s-%d { 0%%, %f%% { opacity: 0; } @@ -40,7 +40,7 @@ func makeKeyframe(delayMS, durationMS, totalMS, identifier int) string { %f%%, 100%% { opacity: 0; } -}`, identifier, percentageBefore, percentageStart, percentageEnd, percentageAfter) +}`, diagramHash, identifier, percentageBefore, percentageStart, percentageEnd, percentageAfter) } func Wrap(rootDiagram *d2target.Diagram, svgs [][]byte, renderOpts d2svg.RenderOpts, intervalMS int) ([]byte, error) { @@ -99,13 +99,13 @@ func Wrap(rootDiagram *d2target.Diagram, svgs [][]byte, renderOpts d2svg.RenderO fmt.Fprint(buf, ``) for i, svg := range svgs { str := string(svg) - str = strings.Replace(str, " -rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud +rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/all_shapes_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/all_shapes_dark/sketch.exp.svg index af8dcf744..b2c01767e 100644 --- a/d2renderers/d2sketch/testdata/all_shapes_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/all_shapes_dark/sketch.exp.svg @@ -95,7 +95,7 @@ -rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud +rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/animated/sketch.exp.svg b/d2renderers/d2sketch/testdata/animated/sketch.exp.svg index 7a128d8ce..47ed52d24 100644 --- a/d2renderers/d2sketch/testdata/animated/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/animated/sketch.exp.svg @@ -110,7 +110,7 @@ -wintersummertreessnowsun +wintersummertreessnowsun \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/animated_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/animated_dark/sketch.exp.svg index f9ac02951..b2e8a5c53 100644 --- a/d2renderers/d2sketch/testdata/animated_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/animated_dark/sketch.exp.svg @@ -108,7 +108,7 @@ -wintersummertreessnowsun +wintersummertreessnowsun \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/arrowheads/sketch.exp.svg b/d2renderers/d2sketch/testdata/arrowheads/sketch.exp.svg index fb7f5db39..538921890 100644 --- a/d2renderers/d2sketch/testdata/arrowheads/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/arrowheads/sketch.exp.svg @@ -104,7 +104,7 @@ -112233445566778899none arrow triangle diamond diamond filled cf-many cf-many-required cf-one cf-one-required +112233445566778899none arrow triangle diamond diamond filled cf-many cf-many-required cf-one cf-one-required diff --git a/d2renderers/d2sketch/testdata/arrowheads_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/arrowheads_dark/sketch.exp.svg index a548d4246..764ed37d3 100644 --- a/d2renderers/d2sketch/testdata/arrowheads_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/arrowheads_dark/sketch.exp.svg @@ -102,7 +102,7 @@ -112233445566778899none arrow triangle diamond diamond filled cf-many cf-many-required cf-one cf-one-required +112233445566778899none arrow triangle diamond diamond filled cf-many cf-many-required cf-one cf-one-required diff --git a/d2renderers/d2sketch/testdata/basic/sketch.exp.svg b/d2renderers/d2sketch/testdata/basic/sketch.exp.svg index 67b68ac01..ebb0c22d7 100644 --- a/d2renderers/d2sketch/testdata/basic/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/basic/sketch.exp.svg @@ -97,7 +97,7 @@ -ab +ab \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/basic_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/basic_dark/sketch.exp.svg index 77ae0d395..3516f2453 100644 --- a/d2renderers/d2sketch/testdata/basic_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/basic_dark/sketch.exp.svg @@ -95,7 +95,7 @@ -ab +ab \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/child_to_child/sketch.exp.svg b/d2renderers/d2sketch/testdata/child_to_child/sketch.exp.svg index 922677f9a..c2defab67 100644 --- a/d2renderers/d2sketch/testdata/child_to_child/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/child_to_child/sketch.exp.svg @@ -104,7 +104,7 @@ -wintersummersnowsun +wintersummersnowsun \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/child_to_child_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/child_to_child_dark/sketch.exp.svg index cab12158a..449671153 100644 --- a/d2renderers/d2sketch/testdata/child_to_child_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/child_to_child_dark/sketch.exp.svg @@ -102,7 +102,7 @@ -wintersummersnowsun +wintersummersnowsun \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/connection_label/sketch.exp.svg b/d2renderers/d2sketch/testdata/connection_label/sketch.exp.svg index 07bf1fc06..2b5f0eea3 100644 --- a/d2renderers/d2sketch/testdata/connection_label/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/connection_label/sketch.exp.svg @@ -104,7 +104,7 @@ -ab hello +ab hello \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/connection_label_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/connection_label_dark/sketch.exp.svg index 12e3d5689..9347547a5 100644 --- a/d2renderers/d2sketch/testdata/connection_label_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/connection_label_dark/sketch.exp.svg @@ -102,7 +102,7 @@ -ab hello +ab hello \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/crows_feet/sketch.exp.svg b/d2renderers/d2sketch/testdata/crows_feet/sketch.exp.svg index 823824bd2..fc076f22e 100644 --- a/d2renderers/d2sketch/testdata/crows_feet/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/crows_feet/sketch.exp.svg @@ -97,7 +97,7 @@ -a1b1a2b2a3b3c1d1c2d2c3d3e1f1e2f2e3f3g1h1g2h2g3h3cdf +a1b1a2b2a3b3c1d1c2d2c3d3e1f1e2f2e3f3g1h1g2h2g3h3cdf \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/crows_feet_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/crows_feet_dark/sketch.exp.svg index 466a5dd23..bb1b56fff 100644 --- a/d2renderers/d2sketch/testdata/crows_feet_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/crows_feet_dark/sketch.exp.svg @@ -95,7 +95,7 @@ -a1b1a2b2a3b3c1d1c2d2c3d3e1f1e2f2e3f3g1h1g2h2g3h3cdf +a1b1a2b2a3b3c1d1c2d2c3d3e1f1e2f2e3f3g1h1g2h2g3h3cdf \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/dots-all/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-all/sketch.exp.svg index f533efe47..a589773d6 100644 --- a/d2renderers/d2sketch/testdata/dots-all/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/dots-all/sketch.exp.svg @@ -130,7 +130,7 @@ -rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud +rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg index 87a268e65..4a9a62da6 100644 --- a/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg @@ -130,7 +130,7 @@ -rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud +rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg index 0179b5089..2433dad67 100644 --- a/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg @@ -1,16 +1,16 @@ - + .d2-1107823994 .fill-N1{fill:#0A0F25;} + .d2-1107823994 .fill-N2{fill:#676C7E;} + .d2-1107823994 .fill-N3{fill:#9499AB;} + .d2-1107823994 .fill-N4{fill:#CFD2DD;} + .d2-1107823994 .fill-N5{fill:#DEE1EB;} + .d2-1107823994 .fill-N6{fill:#EEF1F8;} + .d2-1107823994 .fill-N7{fill:#FFFFFF;} + .d2-1107823994 .fill-B1{fill:#0D32B2;} + .d2-1107823994 .fill-B2{fill:#0D32B2;} + .d2-1107823994 .fill-B3{fill:#E3E9FD;} + .d2-1107823994 .fill-B4{fill:#E3E9FD;} + .d2-1107823994 .fill-B5{fill:#EDF0FD;} + .d2-1107823994 .fill-B6{fill:#F7F8FE;} + .d2-1107823994 .fill-AA2{fill:#4A6FF3;} + .d2-1107823994 .fill-AA4{fill:#EDF0FD;} + .d2-1107823994 .fill-AA5{fill:#F7F8FE;} + .d2-1107823994 .fill-AB4{fill:#EDF0FD;} + .d2-1107823994 .fill-AB5{fill:#F7F8FE;} + .d2-1107823994 .stroke-N1{stroke:#0A0F25;} + .d2-1107823994 .stroke-N2{stroke:#676C7E;} + .d2-1107823994 .stroke-N3{stroke:#9499AB;} + .d2-1107823994 .stroke-N4{stroke:#CFD2DD;} + .d2-1107823994 .stroke-N5{stroke:#DEE1EB;} + .d2-1107823994 .stroke-N6{stroke:#EEF1F8;} + .d2-1107823994 .stroke-N7{stroke:#FFFFFF;} + .d2-1107823994 .stroke-B1{stroke:#0D32B2;} + .d2-1107823994 .stroke-B2{stroke:#0D32B2;} + .d2-1107823994 .stroke-B3{stroke:#E3E9FD;} + .d2-1107823994 .stroke-B4{stroke:#E3E9FD;} + .d2-1107823994 .stroke-B5{stroke:#EDF0FD;} + .d2-1107823994 .stroke-B6{stroke:#F7F8FE;} + .d2-1107823994 .stroke-AA2{stroke:#4A6FF3;} + .d2-1107823994 .stroke-AA4{stroke:#EDF0FD;} + .d2-1107823994 .stroke-AA5{stroke:#F7F8FE;} + .d2-1107823994 .stroke-AB4{stroke:#EDF0FD;} + .d2-1107823994 .stroke-AB5{stroke:#F7F8FE;} + .d2-1107823994 .background-color-N1{background-color:#0A0F25;} + .d2-1107823994 .background-color-N2{background-color:#676C7E;} + .d2-1107823994 .background-color-N3{background-color:#9499AB;} + .d2-1107823994 .background-color-N4{background-color:#CFD2DD;} + .d2-1107823994 .background-color-N5{background-color:#DEE1EB;} + .d2-1107823994 .background-color-N6{background-color:#EEF1F8;} + .d2-1107823994 .background-color-N7{background-color:#FFFFFF;} + .d2-1107823994 .background-color-B1{background-color:#0D32B2;} + .d2-1107823994 .background-color-B2{background-color:#0D32B2;} + .d2-1107823994 .background-color-B3{background-color:#E3E9FD;} + .d2-1107823994 .background-color-B4{background-color:#E3E9FD;} + .d2-1107823994 .background-color-B5{background-color:#EDF0FD;} + .d2-1107823994 .background-color-B6{background-color:#F7F8FE;} + .d2-1107823994 .background-color-AA2{background-color:#4A6FF3;} + .d2-1107823994 .background-color-AA4{background-color:#EDF0FD;} + .d2-1107823994 .background-color-AA5{background-color:#F7F8FE;} + .d2-1107823994 .background-color-AB4{background-color:#EDF0FD;} + .d2-1107823994 .background-color-AB5{background-color:#F7F8FE;} + .d2-1107823994 .color-N1{color:#0A0F25;} + .d2-1107823994 .color-N2{color:#676C7E;} + .d2-1107823994 .color-N3{color:#9499AB;} + .d2-1107823994 .color-N4{color:#CFD2DD;} + .d2-1107823994 .color-N5{color:#DEE1EB;} + .d2-1107823994 .color-N6{color:#EEF1F8;} + .d2-1107823994 .color-N7{color:#FFFFFF;} + .d2-1107823994 .color-B1{color:#0D32B2;} + .d2-1107823994 .color-B2{color:#0D32B2;} + .d2-1107823994 .color-B3{color:#E3E9FD;} + .d2-1107823994 .color-B4{color:#E3E9FD;} + .d2-1107823994 .color-B5{color:#EDF0FD;} + .d2-1107823994 .color-B6{color:#F7F8FE;} + .d2-1107823994 .color-AA2{color:#4A6FF3;} + .d2-1107823994 .color-AA4{color:#EDF0FD;} + .d2-1107823994 .color-AA5{color:#F7F8FE;} + .d2-1107823994 .color-AB4{color:#EDF0FD;} + .d2-1107823994 .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}]]> @@ -159,9 +159,9 @@ -NETWORKD2 Parser+readerio.RuneReader+readerPosd2ast.Position-lookahead[]rune#peekn(n int)(s string, eof bool)+peek()(r rune, eof bool)+rewind()void+commit()voidCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND - - - - +NETWORKD2 Parser+readerio.RuneReader+readerPosd2ast.Position-lookahead[]rune#peekn(n int)(s string, eof bool)+peek()(r rune, eof bool)+rewind()void+commit()voidCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND + + + + \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/elk_corners/sketch.exp.svg b/d2renderers/d2sketch/testdata/elk_corners/sketch.exp.svg index 6c95c7608..f8e43a0c2 100644 --- a/d2renderers/d2sketch/testdata/elk_corners/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/elk_corners/sketch.exp.svg @@ -97,7 +97,7 @@ -abc +abc \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/opacity/sketch.exp.svg b/d2renderers/d2sketch/testdata/opacity/sketch.exp.svg index 0455f094c..f160edef3 100644 --- a/d2renderers/d2sketch/testdata/opacity/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/opacity/sketch.exp.svg @@ -854,7 +854,7 @@ x

linux: because a PC is a terrible thing to waste

-
auserslast_logindatetime You don't have to know how the computer works,just how to work the computer. +auserslast_logindatetime You don't have to know how the computer works,just how to work the computer. \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/opacity_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/opacity_dark/sketch.exp.svg index 925e52862..5759a8155 100644 --- a/d2renderers/d2sketch/testdata/opacity_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/opacity_dark/sketch.exp.svg @@ -852,7 +852,7 @@ x

linux: because a PC is a terrible thing to waste

-
auserslast_logindatetime You don't have to know how the computer works,just how to work the computer. +auserslast_logindatetime You don't have to know how the computer works,just how to work the computer. \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg b/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg index 6e7e0d143..b213a3400 100644 --- a/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg @@ -1,16 +1,16 @@ - + .d2-3084549463 .fill-N1{fill:#0A0F25;} + .d2-3084549463 .fill-N2{fill:#676C7E;} + .d2-3084549463 .fill-N3{fill:#9499AB;} + .d2-3084549463 .fill-N4{fill:#CFD2DD;} + .d2-3084549463 .fill-N5{fill:#DEE1EB;} + .d2-3084549463 .fill-N6{fill:#EEF1F8;} + .d2-3084549463 .fill-N7{fill:#FFFFFF;} + .d2-3084549463 .fill-B1{fill:#0D32B2;} + .d2-3084549463 .fill-B2{fill:#0D32B2;} + .d2-3084549463 .fill-B3{fill:#E3E9FD;} + .d2-3084549463 .fill-B4{fill:#E3E9FD;} + .d2-3084549463 .fill-B5{fill:#EDF0FD;} + .d2-3084549463 .fill-B6{fill:#F7F8FE;} + .d2-3084549463 .fill-AA2{fill:#4A6FF3;} + .d2-3084549463 .fill-AA4{fill:#EDF0FD;} + .d2-3084549463 .fill-AA5{fill:#F7F8FE;} + .d2-3084549463 .fill-AB4{fill:#EDF0FD;} + .d2-3084549463 .fill-AB5{fill:#F7F8FE;} + .d2-3084549463 .stroke-N1{stroke:#0A0F25;} + .d2-3084549463 .stroke-N2{stroke:#676C7E;} + .d2-3084549463 .stroke-N3{stroke:#9499AB;} + .d2-3084549463 .stroke-N4{stroke:#CFD2DD;} + .d2-3084549463 .stroke-N5{stroke:#DEE1EB;} + .d2-3084549463 .stroke-N6{stroke:#EEF1F8;} + .d2-3084549463 .stroke-N7{stroke:#FFFFFF;} + .d2-3084549463 .stroke-B1{stroke:#0D32B2;} + .d2-3084549463 .stroke-B2{stroke:#0D32B2;} + .d2-3084549463 .stroke-B3{stroke:#E3E9FD;} + .d2-3084549463 .stroke-B4{stroke:#E3E9FD;} + .d2-3084549463 .stroke-B5{stroke:#EDF0FD;} + .d2-3084549463 .stroke-B6{stroke:#F7F8FE;} + .d2-3084549463 .stroke-AA2{stroke:#4A6FF3;} + .d2-3084549463 .stroke-AA4{stroke:#EDF0FD;} + .d2-3084549463 .stroke-AA5{stroke:#F7F8FE;} + .d2-3084549463 .stroke-AB4{stroke:#EDF0FD;} + .d2-3084549463 .stroke-AB5{stroke:#F7F8FE;} + .d2-3084549463 .background-color-N1{background-color:#0A0F25;} + .d2-3084549463 .background-color-N2{background-color:#676C7E;} + .d2-3084549463 .background-color-N3{background-color:#9499AB;} + .d2-3084549463 .background-color-N4{background-color:#CFD2DD;} + .d2-3084549463 .background-color-N5{background-color:#DEE1EB;} + .d2-3084549463 .background-color-N6{background-color:#EEF1F8;} + .d2-3084549463 .background-color-N7{background-color:#FFFFFF;} + .d2-3084549463 .background-color-B1{background-color:#0D32B2;} + .d2-3084549463 .background-color-B2{background-color:#0D32B2;} + .d2-3084549463 .background-color-B3{background-color:#E3E9FD;} + .d2-3084549463 .background-color-B4{background-color:#E3E9FD;} + .d2-3084549463 .background-color-B5{background-color:#EDF0FD;} + .d2-3084549463 .background-color-B6{background-color:#F7F8FE;} + .d2-3084549463 .background-color-AA2{background-color:#4A6FF3;} + .d2-3084549463 .background-color-AA4{background-color:#EDF0FD;} + .d2-3084549463 .background-color-AA5{background-color:#F7F8FE;} + .d2-3084549463 .background-color-AB4{background-color:#EDF0FD;} + .d2-3084549463 .background-color-AB5{background-color:#F7F8FE;} + .d2-3084549463 .color-N1{color:#0A0F25;} + .d2-3084549463 .color-N2{color:#676C7E;} + .d2-3084549463 .color-N3{color:#9499AB;} + .d2-3084549463 .color-N4{color:#CFD2DD;} + .d2-3084549463 .color-N5{color:#DEE1EB;} + .d2-3084549463 .color-N6{color:#EEF1F8;} + .d2-3084549463 .color-N7{color:#FFFFFF;} + .d2-3084549463 .color-B1{color:#0D32B2;} + .d2-3084549463 .color-B2{color:#0D32B2;} + .d2-3084549463 .color-B3{color:#E3E9FD;} + .d2-3084549463 .color-B4{color:#E3E9FD;} + .d2-3084549463 .color-B5{color:#EDF0FD;} + .d2-3084549463 .color-B6{color:#F7F8FE;} + .d2-3084549463 .color-AA2{color:#4A6FF3;} + .d2-3084549463 .color-AA4{color:#EDF0FD;} + .d2-3084549463 .color-AA5{color:#F7F8FE;} + .d2-3084549463 .color-AB4{color:#EDF0FD;} + .d2-3084549463 .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}]]> @@ -1205,9 +1205,9 @@ -NETWORKCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND - - - - +NETWORKCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND + + + + \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg b/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg index 8a461140c..8d6c9227a 100644 --- a/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg @@ -1,16 +1,16 @@ -
  • Staging
  • Dispatch to Site
  • - + \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg b/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg index c60d9db93..7b8e108c9 100644 --- a/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg @@ -97,7 +97,7 @@ -usersidintnamestringemailstringpasswordstringlast_logindatetimeproductsidintpricedecimalskustringnamestringordersidintuser_idintproduct_idintshipmentsidintorder_idinttracking_numberstringPKstatusstring +usersidintnamestringemailstringpasswordstringlast_logindatetimeproductsidintpricedecimalskustringnamestringordersidintuser_idintproduct_idintshipmentsidintorder_idinttracking_numberstringPKstatusstring \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/sql_tables_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/sql_tables_dark/sketch.exp.svg index 7da016ed9..e47b0c700 100644 --- a/d2renderers/d2sketch/testdata/sql_tables_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/sql_tables_dark/sketch.exp.svg @@ -95,7 +95,7 @@ -usersidintnamestringemailstringpasswordstringlast_logindatetimeproductsidintpricedecimalskustringnamestringordersidintuser_idintproduct_idintshipmentsidintorder_idinttracking_numberstringPKstatusstring +usersidintnamestringemailstringpasswordstringlast_logindatetimeproductsidintpricedecimalskustringnamestringordersidintuser_idintproduct_idintshipmentsidintorder_idinttracking_numberstringPKstatusstring \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg b/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg index cf449f49b..4459c8a37 100644 --- a/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg @@ -1,16 +1,16 @@ - + .d2-457017616 .fill-N1{fill:#000410;} + .d2-457017616 .fill-N2{fill:#0000B8;} + .d2-457017616 .fill-N3{fill:#9499AB;} + .d2-457017616 .fill-N4{fill:#CFD2DD;} + .d2-457017616 .fill-N5{fill:#C3DEF3;} + .d2-457017616 .fill-N6{fill:#EEF1F8;} + .d2-457017616 .fill-N7{fill:#FFFFFF;} + .d2-457017616 .fill-B1{fill:#000410;} + .d2-457017616 .fill-B2{fill:#0000E4;} + .d2-457017616 .fill-B3{fill:#5AA4DC;} + .d2-457017616 .fill-B4{fill:#E7E9EE;} + .d2-457017616 .fill-B5{fill:#F5F6F9;} + .d2-457017616 .fill-B6{fill:#FFFFFF;} + .d2-457017616 .fill-AA2{fill:#008566;} + .d2-457017616 .fill-AA4{fill:#45BBA5;} + .d2-457017616 .fill-AA5{fill:#7ACCBD;} + .d2-457017616 .fill-AB4{fill:#F1C759;} + .d2-457017616 .fill-AB5{fill:#F9E088;} + .d2-457017616 .stroke-N1{stroke:#000410;} + .d2-457017616 .stroke-N2{stroke:#0000B8;} + .d2-457017616 .stroke-N3{stroke:#9499AB;} + .d2-457017616 .stroke-N4{stroke:#CFD2DD;} + .d2-457017616 .stroke-N5{stroke:#C3DEF3;} + .d2-457017616 .stroke-N6{stroke:#EEF1F8;} + .d2-457017616 .stroke-N7{stroke:#FFFFFF;} + .d2-457017616 .stroke-B1{stroke:#000410;} + .d2-457017616 .stroke-B2{stroke:#0000E4;} + .d2-457017616 .stroke-B3{stroke:#5AA4DC;} + .d2-457017616 .stroke-B4{stroke:#E7E9EE;} + .d2-457017616 .stroke-B5{stroke:#F5F6F9;} + .d2-457017616 .stroke-B6{stroke:#FFFFFF;} + .d2-457017616 .stroke-AA2{stroke:#008566;} + .d2-457017616 .stroke-AA4{stroke:#45BBA5;} + .d2-457017616 .stroke-AA5{stroke:#7ACCBD;} + .d2-457017616 .stroke-AB4{stroke:#F1C759;} + .d2-457017616 .stroke-AB5{stroke:#F9E088;} + .d2-457017616 .background-color-N1{background-color:#000410;} + .d2-457017616 .background-color-N2{background-color:#0000B8;} + .d2-457017616 .background-color-N3{background-color:#9499AB;} + .d2-457017616 .background-color-N4{background-color:#CFD2DD;} + .d2-457017616 .background-color-N5{background-color:#C3DEF3;} + .d2-457017616 .background-color-N6{background-color:#EEF1F8;} + .d2-457017616 .background-color-N7{background-color:#FFFFFF;} + .d2-457017616 .background-color-B1{background-color:#000410;} + .d2-457017616 .background-color-B2{background-color:#0000E4;} + .d2-457017616 .background-color-B3{background-color:#5AA4DC;} + .d2-457017616 .background-color-B4{background-color:#E7E9EE;} + .d2-457017616 .background-color-B5{background-color:#F5F6F9;} + .d2-457017616 .background-color-B6{background-color:#FFFFFF;} + .d2-457017616 .background-color-AA2{background-color:#008566;} + .d2-457017616 .background-color-AA4{background-color:#45BBA5;} + .d2-457017616 .background-color-AA5{background-color:#7ACCBD;} + .d2-457017616 .background-color-AB4{background-color:#F1C759;} + .d2-457017616 .background-color-AB5{background-color:#F9E088;} + .d2-457017616 .color-N1{color:#000410;} + .d2-457017616 .color-N2{color:#0000B8;} + .d2-457017616 .color-N3{color:#9499AB;} + .d2-457017616 .color-N4{color:#CFD2DD;} + .d2-457017616 .color-N5{color:#C3DEF3;} + .d2-457017616 .color-N6{color:#EEF1F8;} + .d2-457017616 .color-N7{color:#FFFFFF;} + .d2-457017616 .color-B1{color:#000410;} + .d2-457017616 .color-B2{color:#0000E4;} + .d2-457017616 .color-B3{color:#5AA4DC;} + .d2-457017616 .color-B4{color:#E7E9EE;} + .d2-457017616 .color-B5{color:#F5F6F9;} + .d2-457017616 .color-B6{color:#FFFFFF;} + .d2-457017616 .color-AA2{color:#008566;} + .d2-457017616 .color-AA4{color:#45BBA5;} + .d2-457017616 .color-AA5{color:#7ACCBD;} + .d2-457017616 .color-AB4{color:#F1C759;} + .d2-457017616 .color-AB5{color:#F9E088;}.appendix text.text{fill:#000410}.md{--color-fg-default:#000410;--color-fg-muted:#0000B8;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#000410;--color-border-muted:#0000E4;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0000E4;--color-accent-emphasis:#0000E4;--color-attention-subtle:#0000B8;--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-normal);mix-blend-mode:color-burn}.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-normal);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AB5{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker);mix-blend-mode:lighten}.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-normal);mix-blend-mode:color-burn}.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}]]> @@ -137,14 +137,14 @@ -NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SEND SEND SEND PHONE LOGS MAKE CALL ACCESS DISPLAY PERSIST - - - - - - +NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SEND SEND SEND PHONE LOGS MAKE CALL ACCESS DISPLAY PERSIST + + + + + + - - + + \ No newline at end of file diff --git a/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg b/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg index 3f44782ec..53a56f1c5 100644 --- a/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg @@ -870,7 +870,7 @@
  • Served data logging
  • GraphQLFederated Strato Column

    Tweet/user content hydration, visibility filtering

    -
    TLS-API (being deprecated)CrMixerEarlyBirdUtagSpaceCommunities iPhone web HTTP Android Thrift RPC Candidate Fetch Feature Hydration Candidate sources +TLS-API (being deprecated)CrMixerEarlyBirdUtagSpaceCommunities iPhone web HTTP Android Thrift RPC Candidate Fetch Feature Hydration Candidate sources diff --git a/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg index 03fe712f7..c24cfa73e 100644 --- a/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg @@ -870,7 +870,7 @@
  • Served data logging
  • GraphQLFederated Strato Column

    Tweet/user content hydration, visibility filtering

    -
    TLS-API (being deprecated)CrMixerEarlyBirdUtagSpaceCommunities iPhone web HTTP Android Thrift RPC Candidate Fetch Feature Hydration Candidate sources +TLS-API (being deprecated)CrMixerEarlyBirdUtagSpaceCommunities iPhone web HTTP Android Thrift RPC Candidate Fetch Feature Hydration Candidate sources diff --git a/d2renderers/d2svg/appendix/appendix.go b/d2renderers/d2svg/appendix/appendix.go index a0eb21077..0f58ffa82 100644 --- a/d2renderers/d2svg/appendix/appendix.go +++ b/d2renderers/d2svg/appendix/appendix.go @@ -238,7 +238,7 @@ func generateLine(i, y int, text string, ruler *textmeasure.Ruler) (string, int, 0, y, generateNumberedIcon(i, 0, 0)) line += fmt.Sprintf(`%s`, - ICON_RADIUS*3, y, FONT_SIZE, d2svg.RenderText(text, ICON_RADIUS*3, float64(dims.Height))) + ICON_RADIUS*3, y+5, FONT_SIZE, d2svg.RenderText(text, ICON_RADIUS*3, float64(dims.Height))) return line, dims.Width + ICON_RADIUS*3, go2.IntMax(dims.Height, ICON_RADIUS*2) } diff --git a/d2renderers/d2svg/appendix/testdata/diagram_wider_than_tooltip/sketch.exp.svg b/d2renderers/d2svg/appendix/testdata/diagram_wider_than_tooltip/sketch.exp.svg index 615e8b5ff..2a624e820 100644 --- a/d2renderers/d2svg/appendix/testdata/diagram_wider_than_tooltip/sketch.exp.svg +++ b/d2renderers/d2svg/appendix/testdata/diagram_wider_than_tooltip/sketch.exp.svg @@ -115,8 +115,8 @@ -1Like starbucks or something -2I'm not sure what this is +1Like starbucks or something +2I'm not sure what this is x1 + .d2-916646398 .fill-N1{fill:#0A0F25;} + .d2-916646398 .fill-N2{fill:#676C7E;} + .d2-916646398 .fill-N3{fill:#9499AB;} + .d2-916646398 .fill-N4{fill:#CFD2DD;} + .d2-916646398 .fill-N5{fill:#DEE1EB;} + .d2-916646398 .fill-N6{fill:#EEF1F8;} + .d2-916646398 .fill-N7{fill:#FFFFFF;} + .d2-916646398 .fill-B1{fill:#0D32B2;} + .d2-916646398 .fill-B2{fill:#0D32B2;} + .d2-916646398 .fill-B3{fill:#E3E9FD;} + .d2-916646398 .fill-B4{fill:#E3E9FD;} + .d2-916646398 .fill-B5{fill:#EDF0FD;} + .d2-916646398 .fill-B6{fill:#F7F8FE;} + .d2-916646398 .fill-AA2{fill:#4A6FF3;} + .d2-916646398 .fill-AA4{fill:#EDF0FD;} + .d2-916646398 .fill-AA5{fill:#F7F8FE;} + .d2-916646398 .fill-AB4{fill:#EDF0FD;} + .d2-916646398 .fill-AB5{fill:#F7F8FE;} + .d2-916646398 .stroke-N1{stroke:#0A0F25;} + .d2-916646398 .stroke-N2{stroke:#676C7E;} + .d2-916646398 .stroke-N3{stroke:#9499AB;} + .d2-916646398 .stroke-N4{stroke:#CFD2DD;} + .d2-916646398 .stroke-N5{stroke:#DEE1EB;} + .d2-916646398 .stroke-N6{stroke:#EEF1F8;} + .d2-916646398 .stroke-N7{stroke:#FFFFFF;} + .d2-916646398 .stroke-B1{stroke:#0D32B2;} + .d2-916646398 .stroke-B2{stroke:#0D32B2;} + .d2-916646398 .stroke-B3{stroke:#E3E9FD;} + .d2-916646398 .stroke-B4{stroke:#E3E9FD;} + .d2-916646398 .stroke-B5{stroke:#EDF0FD;} + .d2-916646398 .stroke-B6{stroke:#F7F8FE;} + .d2-916646398 .stroke-AA2{stroke:#4A6FF3;} + .d2-916646398 .stroke-AA4{stroke:#EDF0FD;} + .d2-916646398 .stroke-AA5{stroke:#F7F8FE;} + .d2-916646398 .stroke-AB4{stroke:#EDF0FD;} + .d2-916646398 .stroke-AB5{stroke:#F7F8FE;} + .d2-916646398 .background-color-N1{background-color:#0A0F25;} + .d2-916646398 .background-color-N2{background-color:#676C7E;} + .d2-916646398 .background-color-N3{background-color:#9499AB;} + .d2-916646398 .background-color-N4{background-color:#CFD2DD;} + .d2-916646398 .background-color-N5{background-color:#DEE1EB;} + .d2-916646398 .background-color-N6{background-color:#EEF1F8;} + .d2-916646398 .background-color-N7{background-color:#FFFFFF;} + .d2-916646398 .background-color-B1{background-color:#0D32B2;} + .d2-916646398 .background-color-B2{background-color:#0D32B2;} + .d2-916646398 .background-color-B3{background-color:#E3E9FD;} + .d2-916646398 .background-color-B4{background-color:#E3E9FD;} + .d2-916646398 .background-color-B5{background-color:#EDF0FD;} + .d2-916646398 .background-color-B6{background-color:#F7F8FE;} + .d2-916646398 .background-color-AA2{background-color:#4A6FF3;} + .d2-916646398 .background-color-AA4{background-color:#EDF0FD;} + .d2-916646398 .background-color-AA5{background-color:#F7F8FE;} + .d2-916646398 .background-color-AB4{background-color:#EDF0FD;} + .d2-916646398 .background-color-AB5{background-color:#F7F8FE;} + .d2-916646398 .color-N1{color:#0A0F25;} + .d2-916646398 .color-N2{color:#676C7E;} + .d2-916646398 .color-N3{color:#9499AB;} + .d2-916646398 .color-N4{color:#CFD2DD;} + .d2-916646398 .color-N5{color:#DEE1EB;} + .d2-916646398 .color-N6{color:#EEF1F8;} + .d2-916646398 .color-N7{color:#FFFFFF;} + .d2-916646398 .color-B1{color:#0D32B2;} + .d2-916646398 .color-B2{color:#0D32B2;} + .d2-916646398 .color-B3{color:#E3E9FD;} + .d2-916646398 .color-B4{color:#E3E9FD;} + .d2-916646398 .color-B5{color:#EDF0FD;} + .d2-916646398 .color-B6{color:#F7F8FE;} + .d2-916646398 .color-AA2{color:#4A6FF3;} + .d2-916646398 .color-AA4{color:#EDF0FD;} + .d2-916646398 .color-AA5{color:#F7F8FE;} + .d2-916646398 .color-AB4{color:#EDF0FD;} + .d2-916646398 .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}]]>x1 -1root > x +1root > x x1y2Gee, I feel kind of LIGHT in the head now, knowing I can't make my satellite dish PAYMENTS!3 -1https://d2lang.com -2Gee, I feel kind of LIGHT in the head now,knowing I can't make my satellite dish PAYMENTS! -3https://terrastruct.com +
    1https://d2lang.com +2Gee, I feel kind of LIGHT in the head now,knowing I can't make my satellite dish PAYMENTS! +3https://terrastruct.com x1y2Gee, I feel kind of LIGHT in the head now, knowing I can't make my satellite dish PAYMENTS!3 -1https://d2lang.com -2Gee, I feel kind of LIGHT in the head now,knowing I can't make my satellite dish PAYMENTS! -3https://fosny.eu +
    1https://d2lang.com +2Gee, I feel kind of LIGHT in the head now,knowing I can't make my satellite dish PAYMENTS! +3https://fosny.eu x1Total abstinence is easier than perfect moderationy2Gee, I feel kind of LIGHT in the head now, knowing I can't make my satellite dish PAYMENTS! -1Total abstinence is easier than perfect moderation -2Gee, I feel kind of LIGHT in the head now,knowing I can't make my satellite dish PAYMENTS! +
    1Total abstinence is easier than perfect moderation +2Gee, I feel kind of LIGHT in the head now,knowing I can't make my satellite dish PAYMENTS! x1Total abstinence is easier than perfect moderationy2Gee, I feel kind of LIGHT in the head now, knowing I can't make my satellite dish PAYMENTS! -1Total abstinence is easier than perfect moderation -2Gee, I feel kind of LIGHT in the head now,knowing I can't make my satellite dish PAYMENTS! +
    1Total abstinence is easier than perfect moderation +2Gee, I feel kind of LIGHT in the head now,knowing I can't make my satellite dish PAYMENTS! Chicken's plan +}]]>Chicken's plan -Approach roadChicken's plan +Approach roadChicken's plan -Approach roadCross roadChicken's plan +Approach roadCross roadChicken's plan -Approach roadCross roadMake you wonder whyChicken's plan +Approach roadCross roadMake you wonder whyChicken's plan \ No newline at end of file diff --git a/e2etests-cli/testdata/TestCLI_E2E/empty-layer/x.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/empty-layer/x.exp.svg new file mode 100644 index 000000000..3d316df15 --- /dev/null +++ b/e2etests-cli/testdata/TestCLI_E2E/empty-layer/x.exp.svg @@ -0,0 +1,88 @@ + + + + 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 64ceca2ea..5e1c9fe86 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/regression_test.go b/e2etests/regression_test.go index fd60724c5..def1627c1 100644 --- a/e2etests/regression_test.go +++ b/e2etests/regression_test.go @@ -271,9 +271,9 @@ m6_desc -> queue.M6 name: "unnamed_class_table_code", script: ` -class -> users -> code +class2 -> users -> code -class: "" { +class2: "" { shape: class -num: int -timeout: int @@ -318,7 +318,7 @@ ico: { name: "only_header_class_table", script: ` -class: RefreshAuthorizationPolicyProtocolServerSideTranslatorProtocolBuffer { +class2: RefreshAuthorizationPolicyProtocolServerSideTranslatorProtocolBuffer { shape: class } @@ -331,7 +331,7 @@ table with short col: RefreshAuthorizationPolicyCache { ok } -class -> table -> table with short col +class2 -> table -> table with short col `, }, { diff --git a/e2etests/stable_test.go b/e2etests/stable_test.go index 521d4c5e4..37da4d4a6 100644 --- a/e2etests/stable_test.go +++ b/e2etests/stable_test.go @@ -12,6 +12,68 @@ var testMarkdown string func testStable(t *testing.T) { tcs := []testCase{ + { + name: "legend_with_near_key", + script: ` + direction: right + + x -> y: { + style.stroke: green + } + + y -> z: { + style.stroke: red + } + + legend: { + near: bottom-center + color1: foo { + shape: text + style.font-color: green + } + + color2: bar { + shape: text + style.font-color: red + } + } + `, + }, + { + name: "near_keys_for_container", + script: ` + x: { + near: top-left + a -> b + c -> d + } + y: { + near: top-right + a -> b + c -> d + } + z: { + near: bottom-center + a -> b + c -> d + } + + a: { + near: top-center + b: { + c + } + } + b: { + near: bottom-right + a: { + c: { + d + } + } + } + `, + }, { name: "class_and_sqlTable_border_radius", script: ` @@ -143,6 +205,12 @@ logs: { shape: page; style.multiple: true } network.data processor -> api server `, }, + { + name: "edge-label-overflow", + script: `student -> committee chair: Apply for appeal +student <- committee chair: Deny. Need more information +committee chair -> committee: Accept appeal`, + }, { name: "mono-edge", script: `direction: right @@ -1481,8 +1549,13 @@ finally: { sequence: { shape: sequence_diagram # items appear in this order - scorer - concept + scorer { + style.stroke: red + style.stroke-dash: 2 + } + concept { + style.stroke-width: 6 + } essayRubric item itemOutcome @@ -1932,9 +2005,9 @@ x -> y name: "unnamed_only_width", script: ` -class -> users -> code -> package -> no width +class2 -> users -> code -> package -> no width -class: "" { +class2: "" { shape: class -num: int -timeout: int @@ -1964,7 +2037,7 @@ package: "" { shape: package } no width: "" -class.width: 512 +class2.width: 512 users.width: 512 code.width: 512 package.width: 512 @@ -1974,9 +2047,9 @@ package.width: 512 name: "unnamed_only_height", script: ` -class -> users -> code -> package -> no height +class2 -> users -> code -> package -> no height -class: "" { +class2: "" { shape: class -num: int -timeout: int @@ -2006,7 +2079,7 @@ package: "" { shape: package } no height: "" -class.height: 512 +class2.height: 512 users.height: 512 code.height: 512 package.height: 512 @@ -2301,6 +2374,29 @@ y: { z: { near: center-left } +`, + }, + { + name: "classes", + script: `classes: { + dragon_ball: { + label: "" + shape: circle + style.fill: orange + style.stroke-width: 0 + width: 50 + } + path: { + label: "then" + style.stroke-width: 4 + } +} +nostar: { class: dragon_ball } +1star: { label: "*"; class: dragon_ball } +2star: { label: "**"; class: dragon_ball } + +nostar -> 1star: { class: path } +1star -> 2star: { class: path } `, }, { @@ -2465,6 +2561,10 @@ scenarios: { }`, }, loadFromFile(t, "arrowhead_scaling"), + loadFromFile(t, "teleport_grid"), + loadFromFile(t, "dagger_grid"), + loadFromFile(t, "grid_tests"), + loadFromFile(t, "executive_grid"), } runa(t, tcs) diff --git a/e2etests/testdata/files/dagger_grid.d2 b/e2etests/testdata/files/dagger_grid.d2 new file mode 100644 index 000000000..2f6167c06 --- /dev/null +++ b/e2etests/testdata/files/dagger_grid.d2 @@ -0,0 +1,90 @@ +grid-rows: 5 +style.fill: black + +flow1: "" { + width: 120 + style: {fill: white; stroke: cornflowerblue; stroke-width: 10} +} +flow2: "" { + width: 120 + style: {fill: white; stroke: cornflowerblue; stroke-width: 10} +} +flow3: "" { + width: 120 + style: {fill: white; stroke: cornflowerblue; stroke-width: 10} +} +flow4: "" { + width: 120 + style: {fill: white; stroke: cornflowerblue; stroke-width: 10} +} +flow5: "" { + width: 120 + style: {fill: white; stroke: cornflowerblue; stroke-width: 10} +} +flow6: "" { + width: 240 + style: {fill: white; stroke: cornflowerblue; stroke-width: 10} +} +flow7: "" { + width: 80 + style: {fill: white; stroke: cornflowerblue; stroke-width: 10} +} +flow8: "" { + width: 160 + style: {fill: white; stroke: cornflowerblue; stroke-width: 10} +} +flow9: "" { + width: 160 + style: {fill: white; stroke: cornflowerblue; stroke-width: 10} +} + +DAGGER ENGINE: { + width: 800 + style: { + fill: beige + stroke: darkcyan + font-color: blue + stroke-width: 8 + } +} + +ANY DOCKER COMPATIBLE RUNTIME: { + width: 800 + style: { + fill: lightcyan + stroke: darkcyan + font-color: black + stroke-width: 8 + } + icon: https://icons.terrastruct.com/dev%2Fdocker.svg +} + +ANY CI: { + style: { + fill: gold + stroke: maroon + font-color: maroon + stroke-width: 8 + } +} + +WINDOWS.style: { + font-color: white + fill: darkcyan + stroke: black +} +LINUX.style: { + font-color: white + fill: darkcyan + stroke: black +} +MACOS.style: { + font-color: white + fill: darkcyan + stroke: black +} +KUBERNETES.style: { + font-color: white + fill: darkcyan + stroke: black +} diff --git a/e2etests/testdata/files/executive_grid.d2 b/e2etests/testdata/files/executive_grid.d2 new file mode 100644 index 000000000..a5178fbd6 --- /dev/null +++ b/e2etests/testdata/files/executive_grid.d2 @@ -0,0 +1,16 @@ +grid-rows: 3 + +Executive Services.width: 1000 + +I/O\nManager.width: 100 +I/O\nManager.height: 200 +Security\nReference\nMonitor.width: 100 +IPC\nManager.width: 100 +Virtual\nMemory\nManager\n(VMM).width: 100 +Process\nManager.width: 100 +PnP\nManager.width: 100 +Power\nManager.width: 100 +# TODO recursive grids +Window\nManager\n\nGDI.width: 100 + +Object Manager.width: 1000 diff --git a/e2etests/testdata/files/grid_tests.d2 b/e2etests/testdata/files/grid_tests.d2 new file mode 100644 index 000000000..aab1481e9 --- /dev/null +++ b/e2etests/testdata/files/grid_tests.d2 @@ -0,0 +1,134 @@ +rows 1: { + grid-rows: 1 + a + b + c + d + e + f + g +} + +columns 1: { + grid-columns: 1 + a + b + c + d + e + f + g +} + +rows 2: { + grid-rows: 2 + a + b + c + d + e + f + g +} + +columns 2: { + grid-columns: 2 + a + b + c + d + e + f + g +} + +rows 2 columns 2: { + grid-rows: 2 + grid-columns: 2 + + a + b + c + d + e + f + g +} + +columns 2 rows 2: { + grid-columns: 2 + grid-rows: 2 + + a + b + c + d + e + f + g +} + +rows 3 columns 3: { + grid-rows: 3 + grid-columns: 3 + + a + b + c + d + e + f + g +} + +columns 3 rows 3: { + grid-columns: 3 + grid-rows: 3 + + a + b + c + d + e + f + g +} + +rows 3: { + grid-rows: 3 + + a + b + c + d + e + f + g +} + +columns 3: { + grid-columns: 3 + + a + b + c + d + e + f + g +} + +widths heights: { + grid-rows: 3 + grid-columns: 3 + + a w200.width: 200 + b h300.height: 300 + c + d h200.height: 200 + e + f w400.width: 400 + g + h + i +} diff --git a/e2etests/testdata/files/teleport_grid.d2 b/e2etests/testdata/files/teleport_grid.d2 new file mode 100644 index 000000000..d0e737513 --- /dev/null +++ b/e2etests/testdata/files/teleport_grid.d2 @@ -0,0 +1,70 @@ +direction: right + +users -- via -- teleport + +teleport -> jita: "all connections audited and logged" +teleport -> infra + +teleport -> identity provider +teleport <- identity provider + +users: "" { + grid-columns: 1 + + Engineers: { + shape: circle + icon: https://icons.terrastruct.com/essentials%2F365-user.svg + } + Machines: { + shape: circle + icon: https://icons.terrastruct.com/aws%2FCompute%2FCompute.svg + } +} + +via: "" { + grid-columns: 1 + + https: "HTTPS://" + kubectl: "> kubectl" + tsh: "> tsh" + api: "> api" + db clients: "DB Clients" +} + +teleport: Teleport { + grid-rows: 2 + + inp: |md + # Identity Native Proxy + | { + width: 300 + } + + Audit Log.icon: https://icons.terrastruct.com/tech%2Flaptop.svg + Cert Authority.icon: https://icons.terrastruct.com/azure%2FWeb%20Service%20Color%2FApp%20Service%20Certificates.svg +} + +jita: "Just-in-time Access via" { + grid-rows: 1 + + Slack.icon: https://icons.terrastruct.com/dev%2Fslack.svg + Mattermost + Jira + Pagerduty + Email.icon: https://icons.terrastruct.com/aws%2F_General%2FAWS-Email_light-bg.svg +} + +infra: Infrastructure { + grid-rows: 2 + + ssh.icon: https://icons.terrastruct.com/essentials%2F112-server.svg + Kubernetes.icon: https://icons.terrastruct.com/azure%2F_Companies%2FKubernetes.svg + My SQL.icon: https://icons.terrastruct.com/dev%2Fmysql.svg + MongoDB.icon: https://icons.terrastruct.com/dev%2Fmongodb.svg + PSQL.icon: https://icons.terrastruct.com/dev%2Fpostgresql.svg + Windows.icon: https://icons.terrastruct.com/dev%2Fwindows.svg +} + +identity provider: Indentity Provider { + icon: https://icons.terrastruct.com/azure%2FIdentity%20Service%20Color%2FIdentity%20governance.svg +} diff --git a/e2etests/testdata/patterns/real-lines/dagre/board.exp.json b/e2etests/testdata/patterns/real-lines/dagre/board.exp.json index 82f61f9b5..40986c0a6 100644 --- a/e2etests/testdata/patterns/real-lines/dagre/board.exp.json +++ b/e2etests/testdata/patterns/real-lines/dagre/board.exp.json @@ -10,7 +10,7 @@ "x": 0, "y": 41 }, - "width": 334, + "width": 360, "height": 640, "opacity": 1, "strokeDash": 0, @@ -52,7 +52,7 @@ "x": 20, "y": 106 }, - "width": 294, + "width": 320, "height": 545, "opacity": 1, "strokeDash": 0, @@ -91,7 +91,7 @@ "id": "NETWORK.CELL TOWER.satellites", "type": "stored_data", "pos": { - "x": 87, + "x": 100, "y": 195 }, "width": 161, @@ -132,7 +132,7 @@ "id": "NETWORK.CELL TOWER.transmitter", "type": "rectangle", "pos": { - "x": 92, + "x": 105, "y": 496 }, "width": 151, @@ -173,7 +173,7 @@ "id": "costumes", "type": "sql_table", "pos": { - "x": 374, + "x": 401, "y": 100 }, "width": 311, @@ -330,7 +330,7 @@ "id": "monsters", "type": "sql_table", "pos": { - "x": 374, + "x": 401, "y": 401 }, "width": 311, @@ -512,19 +512,19 @@ "labelPercentage": 0, "route": [ { - "x": 151, + "x": 163, "y": 262 }, { - "x": 108, + "x": 114.4, "y": 355.6 }, { - "x": 108.05, + "x": 114.45, "y": 402.6 }, { - "x": 151.25, + "x": 163.25, "y": 497 } ], @@ -561,19 +561,19 @@ "labelPercentage": 0, "route": [ { - "x": 167, + "x": 180, "y": 262 }, { - "x": 167, + "x": 180.2, "y": 355.6 }, { - "x": 167, + "x": 180.25, "y": 402.6 }, { - "x": 167, + "x": 180.25, "y": 497 } ], @@ -610,19 +610,19 @@ "labelPercentage": 0, "route": [ { - "x": 183, + "x": 198, "y": 262 }, { - "x": 226, + "x": 246.2, "y": 355.6 }, { - "x": 225.95, + "x": 246.05, "y": 402.6 }, { - "x": 182.75, + "x": 197.25, "y": 497 } ], @@ -659,19 +659,19 @@ "labelPercentage": 0, "route": [ { - "x": 529.5, + "x": 556, "y": 280 }, { - "x": 529.5, + "x": 556, "y": 328.4 }, { - "x": 529.5, + "x": 556, "y": 352.7 }, { - "x": 529.5, + "x": 556, "y": 401.5 } ], diff --git a/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg b/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg index 6508e7c12..2ca214a94 100644 --- a/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg +++ b/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg @@ -1,23 +1,23 @@ -RefreshAuthorizationPolicyProtocolServerSideTranslatorProtocolBufferRefreshAuthorizationPolicyCacheRefreshAuthorizationPolicyCacheok + .d2-1676001659 .fill-N1{fill:#0A0F25;} + .d2-1676001659 .fill-N2{fill:#676C7E;} + .d2-1676001659 .fill-N3{fill:#9499AB;} + .d2-1676001659 .fill-N4{fill:#CFD2DD;} + .d2-1676001659 .fill-N5{fill:#DEE1EB;} + .d2-1676001659 .fill-N6{fill:#EEF1F8;} + .d2-1676001659 .fill-N7{fill:#FFFFFF;} + .d2-1676001659 .fill-B1{fill:#0D32B2;} + .d2-1676001659 .fill-B2{fill:#0D32B2;} + .d2-1676001659 .fill-B3{fill:#E3E9FD;} + .d2-1676001659 .fill-B4{fill:#E3E9FD;} + .d2-1676001659 .fill-B5{fill:#EDF0FD;} + .d2-1676001659 .fill-B6{fill:#F7F8FE;} + .d2-1676001659 .fill-AA2{fill:#4A6FF3;} + .d2-1676001659 .fill-AA4{fill:#EDF0FD;} + .d2-1676001659 .fill-AA5{fill:#F7F8FE;} + .d2-1676001659 .fill-AB4{fill:#EDF0FD;} + .d2-1676001659 .fill-AB5{fill:#F7F8FE;} + .d2-1676001659 .stroke-N1{stroke:#0A0F25;} + .d2-1676001659 .stroke-N2{stroke:#676C7E;} + .d2-1676001659 .stroke-N3{stroke:#9499AB;} + .d2-1676001659 .stroke-N4{stroke:#CFD2DD;} + .d2-1676001659 .stroke-N5{stroke:#DEE1EB;} + .d2-1676001659 .stroke-N6{stroke:#EEF1F8;} + .d2-1676001659 .stroke-N7{stroke:#FFFFFF;} + .d2-1676001659 .stroke-B1{stroke:#0D32B2;} + .d2-1676001659 .stroke-B2{stroke:#0D32B2;} + .d2-1676001659 .stroke-B3{stroke:#E3E9FD;} + .d2-1676001659 .stroke-B4{stroke:#E3E9FD;} + .d2-1676001659 .stroke-B5{stroke:#EDF0FD;} + .d2-1676001659 .stroke-B6{stroke:#F7F8FE;} + .d2-1676001659 .stroke-AA2{stroke:#4A6FF3;} + .d2-1676001659 .stroke-AA4{stroke:#EDF0FD;} + .d2-1676001659 .stroke-AA5{stroke:#F7F8FE;} + .d2-1676001659 .stroke-AB4{stroke:#EDF0FD;} + .d2-1676001659 .stroke-AB5{stroke:#F7F8FE;} + .d2-1676001659 .background-color-N1{background-color:#0A0F25;} + .d2-1676001659 .background-color-N2{background-color:#676C7E;} + .d2-1676001659 .background-color-N3{background-color:#9499AB;} + .d2-1676001659 .background-color-N4{background-color:#CFD2DD;} + .d2-1676001659 .background-color-N5{background-color:#DEE1EB;} + .d2-1676001659 .background-color-N6{background-color:#EEF1F8;} + .d2-1676001659 .background-color-N7{background-color:#FFFFFF;} + .d2-1676001659 .background-color-B1{background-color:#0D32B2;} + .d2-1676001659 .background-color-B2{background-color:#0D32B2;} + .d2-1676001659 .background-color-B3{background-color:#E3E9FD;} + .d2-1676001659 .background-color-B4{background-color:#E3E9FD;} + .d2-1676001659 .background-color-B5{background-color:#EDF0FD;} + .d2-1676001659 .background-color-B6{background-color:#F7F8FE;} + .d2-1676001659 .background-color-AA2{background-color:#4A6FF3;} + .d2-1676001659 .background-color-AA4{background-color:#EDF0FD;} + .d2-1676001659 .background-color-AA5{background-color:#F7F8FE;} + .d2-1676001659 .background-color-AB4{background-color:#EDF0FD;} + .d2-1676001659 .background-color-AB5{background-color:#F7F8FE;} + .d2-1676001659 .color-N1{color:#0A0F25;} + .d2-1676001659 .color-N2{color:#676C7E;} + .d2-1676001659 .color-N3{color:#9499AB;} + .d2-1676001659 .color-N4{color:#CFD2DD;} + .d2-1676001659 .color-N5{color:#DEE1EB;} + .d2-1676001659 .color-N6{color:#EEF1F8;} + .d2-1676001659 .color-N7{color:#FFFFFF;} + .d2-1676001659 .color-B1{color:#0D32B2;} + .d2-1676001659 .color-B2{color:#0D32B2;} + .d2-1676001659 .color-B3{color:#E3E9FD;} + .d2-1676001659 .color-B4{color:#E3E9FD;} + .d2-1676001659 .color-B5{color:#EDF0FD;} + .d2-1676001659 .color-B6{color:#F7F8FE;} + .d2-1676001659 .color-AA2{color:#4A6FF3;} + .d2-1676001659 .color-AA4{color:#EDF0FD;} + .d2-1676001659 .color-AA5{color:#F7F8FE;} + .d2-1676001659 .color-AB4{color:#EDF0FD;} + .d2-1676001659 .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}]]>RefreshAuthorizationPolicyProtocolServerSideTranslatorProtocolBufferRefreshAuthorizationPolicyCacheRefreshAuthorizationPolicyCacheok \ No newline at end of file diff --git a/e2etests/testdata/regression/only_header_class_table/elk/board.exp.json b/e2etests/testdata/regression/only_header_class_table/elk/board.exp.json index 97bcefe4e..63f96cae3 100644 --- a/e2etests/testdata/regression/only_header_class_table/elk/board.exp.json +++ b/e2etests/testdata/regression/only_header_class_table/elk/board.exp.json @@ -4,7 +4,7 @@ "fontFamily": "SourceSansPro", "shapes": [ { - "id": "class", + "id": "class2", "type": "class", "pos": { "x": 12, @@ -164,8 +164,8 @@ ], "connections": [ { - "id": "(class -> table)[0]", - "src": "class", + "id": "(class2 -> table)[0]", + "src": "class2", "srcArrow": "none", "srcLabel": "", "dst": "table", diff --git a/e2etests/testdata/regression/only_header_class_table/elk/sketch.exp.svg b/e2etests/testdata/regression/only_header_class_table/elk/sketch.exp.svg index f62ce001a..0228048bd 100644 --- a/e2etests/testdata/regression/only_header_class_table/elk/sketch.exp.svg +++ b/e2etests/testdata/regression/only_header_class_table/elk/sketch.exp.svg @@ -1,16 +1,16 @@ -RefreshAuthorizationPolicyProtocolServerSideTranslatorProtocolBufferRefreshAuthorizationPolicyCacheRefreshAuthorizationPolicyCacheok + .d2-2978833724 .fill-N1{fill:#0A0F25;} + .d2-2978833724 .fill-N2{fill:#676C7E;} + .d2-2978833724 .fill-N3{fill:#9499AB;} + .d2-2978833724 .fill-N4{fill:#CFD2DD;} + .d2-2978833724 .fill-N5{fill:#DEE1EB;} + .d2-2978833724 .fill-N6{fill:#EEF1F8;} + .d2-2978833724 .fill-N7{fill:#FFFFFF;} + .d2-2978833724 .fill-B1{fill:#0D32B2;} + .d2-2978833724 .fill-B2{fill:#0D32B2;} + .d2-2978833724 .fill-B3{fill:#E3E9FD;} + .d2-2978833724 .fill-B4{fill:#E3E9FD;} + .d2-2978833724 .fill-B5{fill:#EDF0FD;} + .d2-2978833724 .fill-B6{fill:#F7F8FE;} + .d2-2978833724 .fill-AA2{fill:#4A6FF3;} + .d2-2978833724 .fill-AA4{fill:#EDF0FD;} + .d2-2978833724 .fill-AA5{fill:#F7F8FE;} + .d2-2978833724 .fill-AB4{fill:#EDF0FD;} + .d2-2978833724 .fill-AB5{fill:#F7F8FE;} + .d2-2978833724 .stroke-N1{stroke:#0A0F25;} + .d2-2978833724 .stroke-N2{stroke:#676C7E;} + .d2-2978833724 .stroke-N3{stroke:#9499AB;} + .d2-2978833724 .stroke-N4{stroke:#CFD2DD;} + .d2-2978833724 .stroke-N5{stroke:#DEE1EB;} + .d2-2978833724 .stroke-N6{stroke:#EEF1F8;} + .d2-2978833724 .stroke-N7{stroke:#FFFFFF;} + .d2-2978833724 .stroke-B1{stroke:#0D32B2;} + .d2-2978833724 .stroke-B2{stroke:#0D32B2;} + .d2-2978833724 .stroke-B3{stroke:#E3E9FD;} + .d2-2978833724 .stroke-B4{stroke:#E3E9FD;} + .d2-2978833724 .stroke-B5{stroke:#EDF0FD;} + .d2-2978833724 .stroke-B6{stroke:#F7F8FE;} + .d2-2978833724 .stroke-AA2{stroke:#4A6FF3;} + .d2-2978833724 .stroke-AA4{stroke:#EDF0FD;} + .d2-2978833724 .stroke-AA5{stroke:#F7F8FE;} + .d2-2978833724 .stroke-AB4{stroke:#EDF0FD;} + .d2-2978833724 .stroke-AB5{stroke:#F7F8FE;} + .d2-2978833724 .background-color-N1{background-color:#0A0F25;} + .d2-2978833724 .background-color-N2{background-color:#676C7E;} + .d2-2978833724 .background-color-N3{background-color:#9499AB;} + .d2-2978833724 .background-color-N4{background-color:#CFD2DD;} + .d2-2978833724 .background-color-N5{background-color:#DEE1EB;} + .d2-2978833724 .background-color-N6{background-color:#EEF1F8;} + .d2-2978833724 .background-color-N7{background-color:#FFFFFF;} + .d2-2978833724 .background-color-B1{background-color:#0D32B2;} + .d2-2978833724 .background-color-B2{background-color:#0D32B2;} + .d2-2978833724 .background-color-B3{background-color:#E3E9FD;} + .d2-2978833724 .background-color-B4{background-color:#E3E9FD;} + .d2-2978833724 .background-color-B5{background-color:#EDF0FD;} + .d2-2978833724 .background-color-B6{background-color:#F7F8FE;} + .d2-2978833724 .background-color-AA2{background-color:#4A6FF3;} + .d2-2978833724 .background-color-AA4{background-color:#EDF0FD;} + .d2-2978833724 .background-color-AA5{background-color:#F7F8FE;} + .d2-2978833724 .background-color-AB4{background-color:#EDF0FD;} + .d2-2978833724 .background-color-AB5{background-color:#F7F8FE;} + .d2-2978833724 .color-N1{color:#0A0F25;} + .d2-2978833724 .color-N2{color:#676C7E;} + .d2-2978833724 .color-N3{color:#9499AB;} + .d2-2978833724 .color-N4{color:#CFD2DD;} + .d2-2978833724 .color-N5{color:#DEE1EB;} + .d2-2978833724 .color-N6{color:#EEF1F8;} + .d2-2978833724 .color-N7{color:#FFFFFF;} + .d2-2978833724 .color-B1{color:#0D32B2;} + .d2-2978833724 .color-B2{color:#0D32B2;} + .d2-2978833724 .color-B3{color:#E3E9FD;} + .d2-2978833724 .color-B4{color:#E3E9FD;} + .d2-2978833724 .color-B5{color:#EDF0FD;} + .d2-2978833724 .color-B6{color:#F7F8FE;} + .d2-2978833724 .color-AA2{color:#4A6FF3;} + .d2-2978833724 .color-AA4{color:#EDF0FD;} + .d2-2978833724 .color-AA5{color:#F7F8FE;} + .d2-2978833724 .color-AB4{color:#EDF0FD;} + .d2-2978833724 .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}]]>RefreshAuthorizationPolicyProtocolServerSideTranslatorProtocolBufferRefreshAuthorizationPolicyCacheRefreshAuthorizationPolicyCacheok \ No newline at end of file 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 5686cfd76..114eda5f5 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": 1200, + "width": 1220, "height": 125, "opacity": 1, "strokeDash": 0, @@ -294,10 +294,10 @@ "id": "osvc", "type": "rectangle", "pos": { - "x": 826, + "x": 796, "y": 328 }, - "width": 364, + "width": 414, "height": 125, "opacity": 1, "strokeDash": 0, @@ -335,7 +335,7 @@ "id": "osvc.vm1", "type": "rectangle", "pos": { - "x": 926, + "x": 916, "y": 357 }, "width": 76, @@ -376,7 +376,7 @@ "id": "osvc.vm2", "type": "rectangle", "pos": { - "x": 1074, + "x": 1094, "y": 357 }, "width": 76, @@ -442,19 +442,19 @@ "labelPercentage": 0, "route": [ { - "x": 884.75, + "x": 854.75, "y": 166 }, { - "x": 884.75, + "x": 854.75, "y": 214.4 }, { - "x": 884.75, + "x": 854.75, "y": 246.9 }, { - "x": 884.75, + "x": 854.75, "y": 328.5 } ], @@ -491,19 +491,19 @@ "labelPercentage": 0, "route": [ { - "x": 966.75, + "x": 956.75, "y": 166 }, { - "x": 966.75, + "x": 956.75, "y": 214.4 }, { - "x": 966.75, + "x": 956.75, "y": 238.7 }, { - "x": 966.75, + "x": 956.75, "y": 287.5 } ], @@ -540,19 +540,19 @@ "labelPercentage": 0, "route": [ { - "x": 1042.75, + "x": 1052.75, "y": 166 }, { - "x": 1042.75, + "x": 1052.75, "y": 214.4 }, { - "x": 1042.75, + "x": 1052.75, "y": 238.7 }, { - "x": 1042.75, + "x": 1052.75, "y": 287.5 } ], @@ -589,19 +589,19 @@ "labelPercentage": 0, "route": [ { - "x": 1137, + "x": 1157, "y": 166 }, { - "x": 1137, + "x": 1157, "y": 214.4 }, { - "x": 1137, + "x": 1157, "y": 246.9 }, { - "x": 1137, + "x": 1157, "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 5e232847c..7d2d89725 100644 --- a/e2etests/testdata/regression/overlapping-edge-label/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/overlapping-edge-label/dagre/sketch.exp.svg @@ -1,23 +1,23 @@ -Kubernetesopensvck8s-master1k8s-master2k8s-master3k8s-worker1k8s-worker2k8s-worker3VM1VM2 keycloakheptapodharborvault - - - - - + .d2-3464567729 .fill-N1{fill:#0A0F25;} + .d2-3464567729 .fill-N2{fill:#676C7E;} + .d2-3464567729 .fill-N3{fill:#9499AB;} + .d2-3464567729 .fill-N4{fill:#CFD2DD;} + .d2-3464567729 .fill-N5{fill:#DEE1EB;} + .d2-3464567729 .fill-N6{fill:#EEF1F8;} + .d2-3464567729 .fill-N7{fill:#FFFFFF;} + .d2-3464567729 .fill-B1{fill:#0D32B2;} + .d2-3464567729 .fill-B2{fill:#0D32B2;} + .d2-3464567729 .fill-B3{fill:#E3E9FD;} + .d2-3464567729 .fill-B4{fill:#E3E9FD;} + .d2-3464567729 .fill-B5{fill:#EDF0FD;} + .d2-3464567729 .fill-B6{fill:#F7F8FE;} + .d2-3464567729 .fill-AA2{fill:#4A6FF3;} + .d2-3464567729 .fill-AA4{fill:#EDF0FD;} + .d2-3464567729 .fill-AA5{fill:#F7F8FE;} + .d2-3464567729 .fill-AB4{fill:#EDF0FD;} + .d2-3464567729 .fill-AB5{fill:#F7F8FE;} + .d2-3464567729 .stroke-N1{stroke:#0A0F25;} + .d2-3464567729 .stroke-N2{stroke:#676C7E;} + .d2-3464567729 .stroke-N3{stroke:#9499AB;} + .d2-3464567729 .stroke-N4{stroke:#CFD2DD;} + .d2-3464567729 .stroke-N5{stroke:#DEE1EB;} + .d2-3464567729 .stroke-N6{stroke:#EEF1F8;} + .d2-3464567729 .stroke-N7{stroke:#FFFFFF;} + .d2-3464567729 .stroke-B1{stroke:#0D32B2;} + .d2-3464567729 .stroke-B2{stroke:#0D32B2;} + .d2-3464567729 .stroke-B3{stroke:#E3E9FD;} + .d2-3464567729 .stroke-B4{stroke:#E3E9FD;} + .d2-3464567729 .stroke-B5{stroke:#EDF0FD;} + .d2-3464567729 .stroke-B6{stroke:#F7F8FE;} + .d2-3464567729 .stroke-AA2{stroke:#4A6FF3;} + .d2-3464567729 .stroke-AA4{stroke:#EDF0FD;} + .d2-3464567729 .stroke-AA5{stroke:#F7F8FE;} + .d2-3464567729 .stroke-AB4{stroke:#EDF0FD;} + .d2-3464567729 .stroke-AB5{stroke:#F7F8FE;} + .d2-3464567729 .background-color-N1{background-color:#0A0F25;} + .d2-3464567729 .background-color-N2{background-color:#676C7E;} + .d2-3464567729 .background-color-N3{background-color:#9499AB;} + .d2-3464567729 .background-color-N4{background-color:#CFD2DD;} + .d2-3464567729 .background-color-N5{background-color:#DEE1EB;} + .d2-3464567729 .background-color-N6{background-color:#EEF1F8;} + .d2-3464567729 .background-color-N7{background-color:#FFFFFF;} + .d2-3464567729 .background-color-B1{background-color:#0D32B2;} + .d2-3464567729 .background-color-B2{background-color:#0D32B2;} + .d2-3464567729 .background-color-B3{background-color:#E3E9FD;} + .d2-3464567729 .background-color-B4{background-color:#E3E9FD;} + .d2-3464567729 .background-color-B5{background-color:#EDF0FD;} + .d2-3464567729 .background-color-B6{background-color:#F7F8FE;} + .d2-3464567729 .background-color-AA2{background-color:#4A6FF3;} + .d2-3464567729 .background-color-AA4{background-color:#EDF0FD;} + .d2-3464567729 .background-color-AA5{background-color:#F7F8FE;} + .d2-3464567729 .background-color-AB4{background-color:#EDF0FD;} + .d2-3464567729 .background-color-AB5{background-color:#F7F8FE;} + .d2-3464567729 .color-N1{color:#0A0F25;} + .d2-3464567729 .color-N2{color:#676C7E;} + .d2-3464567729 .color-N3{color:#9499AB;} + .d2-3464567729 .color-N4{color:#CFD2DD;} + .d2-3464567729 .color-N5{color:#DEE1EB;} + .d2-3464567729 .color-N6{color:#EEF1F8;} + .d2-3464567729 .color-N7{color:#FFFFFF;} + .d2-3464567729 .color-B1{color:#0D32B2;} + .d2-3464567729 .color-B2{color:#0D32B2;} + .d2-3464567729 .color-B3{color:#E3E9FD;} + .d2-3464567729 .color-B4{color:#E3E9FD;} + .d2-3464567729 .color-B5{color:#EDF0FD;} + .d2-3464567729 .color-B6{color:#F7F8FE;} + .d2-3464567729 .color-AA2{color:#4A6FF3;} + .d2-3464567729 .color-AA4{color:#EDF0FD;} + .d2-3464567729 .color-AA5{color:#F7F8FE;} + .d2-3464567729 .color-AB4{color:#EDF0FD;} + .d2-3464567729 .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/regression/unconnected/dagre/board.exp.json b/e2etests/testdata/regression/unconnected/dagre/board.exp.json index b878f6fe1..6567131b6 100644 --- a/e2etests/testdata/regression/unconnected/dagre/board.exp.json +++ b/e2etests/testdata/regression/unconnected/dagre/board.exp.json @@ -531,7 +531,6 @@ "underline": false, "labelWidth": 639, "labelHeight": 51, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 } diff --git a/e2etests/testdata/regression/unconnected/dagre/sketch.exp.svg b/e2etests/testdata/regression/unconnected/dagre/sketch.exp.svg index 33b8cfb2e..908e225ea 100644 --- a/e2etests/testdata/regression/unconnected/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/unconnected/dagre/sketch.exp.svg @@ -1,16 +1,16 @@ -
  • Staging
  • Dispatch to Site
  • -
    InstallationSupport +InstallationSupport \ No newline at end of file diff --git a/e2etests/testdata/regression/unconnected/elk/board.exp.json b/e2etests/testdata/regression/unconnected/elk/board.exp.json index 77c176dbb..f954eb796 100644 --- a/e2etests/testdata/regression/unconnected/elk/board.exp.json +++ b/e2etests/testdata/regression/unconnected/elk/board.exp.json @@ -531,7 +531,6 @@ "underline": false, "labelWidth": 639, "labelHeight": 51, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 } diff --git a/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg b/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg index 757ffae95..fca6f95e6 100644 --- a/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg +++ b/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg @@ -1,16 +1,16 @@ -
  • Staging
  • Dispatch to Site
  • -InstallationSupport +InstallationSupport \ No newline at end of file diff --git a/e2etests/testdata/regression/unnamed_class_table_code/dagre/board.exp.json b/e2etests/testdata/regression/unnamed_class_table_code/dagre/board.exp.json index 016e645a5..a775f28c1 100644 --- a/e2etests/testdata/regression/unnamed_class_table_code/dagre/board.exp.json +++ b/e2etests/testdata/regression/unnamed_class_table_code/dagre/board.exp.json @@ -4,7 +4,7 @@ "fontFamily": "SourceSansPro", "shapes": [ { - "id": "class", + "id": "class2", "type": "class", "pos": { "x": 0, @@ -305,8 +305,8 @@ ], "connections": [ { - "id": "(class -> users)[0]", - "src": "class", + "id": "(class2 -> users)[0]", + "src": "class2", "srcArrow": "none", "srcLabel": "", "dst": "users", diff --git a/e2etests/testdata/regression/unnamed_class_table_code/dagre/sketch.exp.svg b/e2etests/testdata/regression/unnamed_class_table_code/dagre/sketch.exp.svg index 8ca4633af..65e8e0ee8 100644 --- a/e2etests/testdata/regression/unnamed_class_table_code/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/unnamed_class_table_code/dagre/sketch.exp.svg @@ -1,23 +1,23 @@ --numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 + .d2-2260027450 .fill-N1{fill:#0A0F25;} + .d2-2260027450 .fill-N2{fill:#676C7E;} + .d2-2260027450 .fill-N3{fill:#9499AB;} + .d2-2260027450 .fill-N4{fill:#CFD2DD;} + .d2-2260027450 .fill-N5{fill:#DEE1EB;} + .d2-2260027450 .fill-N6{fill:#EEF1F8;} + .d2-2260027450 .fill-N7{fill:#FFFFFF;} + .d2-2260027450 .fill-B1{fill:#0D32B2;} + .d2-2260027450 .fill-B2{fill:#0D32B2;} + .d2-2260027450 .fill-B3{fill:#E3E9FD;} + .d2-2260027450 .fill-B4{fill:#E3E9FD;} + .d2-2260027450 .fill-B5{fill:#EDF0FD;} + .d2-2260027450 .fill-B6{fill:#F7F8FE;} + .d2-2260027450 .fill-AA2{fill:#4A6FF3;} + .d2-2260027450 .fill-AA4{fill:#EDF0FD;} + .d2-2260027450 .fill-AA5{fill:#F7F8FE;} + .d2-2260027450 .fill-AB4{fill:#EDF0FD;} + .d2-2260027450 .fill-AB5{fill:#F7F8FE;} + .d2-2260027450 .stroke-N1{stroke:#0A0F25;} + .d2-2260027450 .stroke-N2{stroke:#676C7E;} + .d2-2260027450 .stroke-N3{stroke:#9499AB;} + .d2-2260027450 .stroke-N4{stroke:#CFD2DD;} + .d2-2260027450 .stroke-N5{stroke:#DEE1EB;} + .d2-2260027450 .stroke-N6{stroke:#EEF1F8;} + .d2-2260027450 .stroke-N7{stroke:#FFFFFF;} + .d2-2260027450 .stroke-B1{stroke:#0D32B2;} + .d2-2260027450 .stroke-B2{stroke:#0D32B2;} + .d2-2260027450 .stroke-B3{stroke:#E3E9FD;} + .d2-2260027450 .stroke-B4{stroke:#E3E9FD;} + .d2-2260027450 .stroke-B5{stroke:#EDF0FD;} + .d2-2260027450 .stroke-B6{stroke:#F7F8FE;} + .d2-2260027450 .stroke-AA2{stroke:#4A6FF3;} + .d2-2260027450 .stroke-AA4{stroke:#EDF0FD;} + .d2-2260027450 .stroke-AA5{stroke:#F7F8FE;} + .d2-2260027450 .stroke-AB4{stroke:#EDF0FD;} + .d2-2260027450 .stroke-AB5{stroke:#F7F8FE;} + .d2-2260027450 .background-color-N1{background-color:#0A0F25;} + .d2-2260027450 .background-color-N2{background-color:#676C7E;} + .d2-2260027450 .background-color-N3{background-color:#9499AB;} + .d2-2260027450 .background-color-N4{background-color:#CFD2DD;} + .d2-2260027450 .background-color-N5{background-color:#DEE1EB;} + .d2-2260027450 .background-color-N6{background-color:#EEF1F8;} + .d2-2260027450 .background-color-N7{background-color:#FFFFFF;} + .d2-2260027450 .background-color-B1{background-color:#0D32B2;} + .d2-2260027450 .background-color-B2{background-color:#0D32B2;} + .d2-2260027450 .background-color-B3{background-color:#E3E9FD;} + .d2-2260027450 .background-color-B4{background-color:#E3E9FD;} + .d2-2260027450 .background-color-B5{background-color:#EDF0FD;} + .d2-2260027450 .background-color-B6{background-color:#F7F8FE;} + .d2-2260027450 .background-color-AA2{background-color:#4A6FF3;} + .d2-2260027450 .background-color-AA4{background-color:#EDF0FD;} + .d2-2260027450 .background-color-AA5{background-color:#F7F8FE;} + .d2-2260027450 .background-color-AB4{background-color:#EDF0FD;} + .d2-2260027450 .background-color-AB5{background-color:#F7F8FE;} + .d2-2260027450 .color-N1{color:#0A0F25;} + .d2-2260027450 .color-N2{color:#676C7E;} + .d2-2260027450 .color-N3{color:#9499AB;} + .d2-2260027450 .color-N4{color:#CFD2DD;} + .d2-2260027450 .color-N5{color:#DEE1EB;} + .d2-2260027450 .color-N6{color:#EEF1F8;} + .d2-2260027450 .color-N7{color:#FFFFFF;} + .d2-2260027450 .color-B1{color:#0D32B2;} + .d2-2260027450 .color-B2{color:#0D32B2;} + .d2-2260027450 .color-B3{color:#E3E9FD;} + .d2-2260027450 .color-B4{color:#E3E9FD;} + .d2-2260027450 .color-B5{color:#EDF0FD;} + .d2-2260027450 .color-B6{color:#F7F8FE;} + .d2-2260027450 .color-AA2{color:#4A6FF3;} + .d2-2260027450 .color-AA4{color:#EDF0FD;} + .d2-2260027450 .color-AA5{color:#F7F8FE;} + .d2-2260027450 .color-AB4{color:#EDF0FD;} + .d2-2260027450 .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}]]>-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 := a + 7 fmt.Printf("%d", b)a := 5 b := a + 7 -fmt.Printf("%d", b) +fmt.Printf("%d", b) \ No newline at end of file diff --git a/e2etests/testdata/regression/unnamed_class_table_code/elk/board.exp.json b/e2etests/testdata/regression/unnamed_class_table_code/elk/board.exp.json index e80f1cd7a..d6f391d68 100644 --- a/e2etests/testdata/regression/unnamed_class_table_code/elk/board.exp.json +++ b/e2etests/testdata/regression/unnamed_class_table_code/elk/board.exp.json @@ -4,7 +4,7 @@ "fontFamily": "SourceSansPro", "shapes": [ { - "id": "class", + "id": "class2", "type": "class", "pos": { "x": 12, @@ -305,8 +305,8 @@ ], "connections": [ { - "id": "(class -> users)[0]", - "src": "class", + "id": "(class2 -> users)[0]", + "src": "class2", "srcArrow": "none", "srcLabel": "", "dst": "users", diff --git a/e2etests/testdata/regression/unnamed_class_table_code/elk/sketch.exp.svg b/e2etests/testdata/regression/unnamed_class_table_code/elk/sketch.exp.svg index b585cc4cb..cf1c9e2eb 100644 --- a/e2etests/testdata/regression/unnamed_class_table_code/elk/sketch.exp.svg +++ b/e2etests/testdata/regression/unnamed_class_table_code/elk/sketch.exp.svg @@ -1,23 +1,23 @@ --numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 + .d2-302577983 .fill-N1{fill:#0A0F25;} + .d2-302577983 .fill-N2{fill:#676C7E;} + .d2-302577983 .fill-N3{fill:#9499AB;} + .d2-302577983 .fill-N4{fill:#CFD2DD;} + .d2-302577983 .fill-N5{fill:#DEE1EB;} + .d2-302577983 .fill-N6{fill:#EEF1F8;} + .d2-302577983 .fill-N7{fill:#FFFFFF;} + .d2-302577983 .fill-B1{fill:#0D32B2;} + .d2-302577983 .fill-B2{fill:#0D32B2;} + .d2-302577983 .fill-B3{fill:#E3E9FD;} + .d2-302577983 .fill-B4{fill:#E3E9FD;} + .d2-302577983 .fill-B5{fill:#EDF0FD;} + .d2-302577983 .fill-B6{fill:#F7F8FE;} + .d2-302577983 .fill-AA2{fill:#4A6FF3;} + .d2-302577983 .fill-AA4{fill:#EDF0FD;} + .d2-302577983 .fill-AA5{fill:#F7F8FE;} + .d2-302577983 .fill-AB4{fill:#EDF0FD;} + .d2-302577983 .fill-AB5{fill:#F7F8FE;} + .d2-302577983 .stroke-N1{stroke:#0A0F25;} + .d2-302577983 .stroke-N2{stroke:#676C7E;} + .d2-302577983 .stroke-N3{stroke:#9499AB;} + .d2-302577983 .stroke-N4{stroke:#CFD2DD;} + .d2-302577983 .stroke-N5{stroke:#DEE1EB;} + .d2-302577983 .stroke-N6{stroke:#EEF1F8;} + .d2-302577983 .stroke-N7{stroke:#FFFFFF;} + .d2-302577983 .stroke-B1{stroke:#0D32B2;} + .d2-302577983 .stroke-B2{stroke:#0D32B2;} + .d2-302577983 .stroke-B3{stroke:#E3E9FD;} + .d2-302577983 .stroke-B4{stroke:#E3E9FD;} + .d2-302577983 .stroke-B5{stroke:#EDF0FD;} + .d2-302577983 .stroke-B6{stroke:#F7F8FE;} + .d2-302577983 .stroke-AA2{stroke:#4A6FF3;} + .d2-302577983 .stroke-AA4{stroke:#EDF0FD;} + .d2-302577983 .stroke-AA5{stroke:#F7F8FE;} + .d2-302577983 .stroke-AB4{stroke:#EDF0FD;} + .d2-302577983 .stroke-AB5{stroke:#F7F8FE;} + .d2-302577983 .background-color-N1{background-color:#0A0F25;} + .d2-302577983 .background-color-N2{background-color:#676C7E;} + .d2-302577983 .background-color-N3{background-color:#9499AB;} + .d2-302577983 .background-color-N4{background-color:#CFD2DD;} + .d2-302577983 .background-color-N5{background-color:#DEE1EB;} + .d2-302577983 .background-color-N6{background-color:#EEF1F8;} + .d2-302577983 .background-color-N7{background-color:#FFFFFF;} + .d2-302577983 .background-color-B1{background-color:#0D32B2;} + .d2-302577983 .background-color-B2{background-color:#0D32B2;} + .d2-302577983 .background-color-B3{background-color:#E3E9FD;} + .d2-302577983 .background-color-B4{background-color:#E3E9FD;} + .d2-302577983 .background-color-B5{background-color:#EDF0FD;} + .d2-302577983 .background-color-B6{background-color:#F7F8FE;} + .d2-302577983 .background-color-AA2{background-color:#4A6FF3;} + .d2-302577983 .background-color-AA4{background-color:#EDF0FD;} + .d2-302577983 .background-color-AA5{background-color:#F7F8FE;} + .d2-302577983 .background-color-AB4{background-color:#EDF0FD;} + .d2-302577983 .background-color-AB5{background-color:#F7F8FE;} + .d2-302577983 .color-N1{color:#0A0F25;} + .d2-302577983 .color-N2{color:#676C7E;} + .d2-302577983 .color-N3{color:#9499AB;} + .d2-302577983 .color-N4{color:#CFD2DD;} + .d2-302577983 .color-N5{color:#DEE1EB;} + .d2-302577983 .color-N6{color:#EEF1F8;} + .d2-302577983 .color-N7{color:#FFFFFF;} + .d2-302577983 .color-B1{color:#0D32B2;} + .d2-302577983 .color-B2{color:#0D32B2;} + .d2-302577983 .color-B3{color:#E3E9FD;} + .d2-302577983 .color-B4{color:#E3E9FD;} + .d2-302577983 .color-B5{color:#EDF0FD;} + .d2-302577983 .color-B6{color:#F7F8FE;} + .d2-302577983 .color-AA2{color:#4A6FF3;} + .d2-302577983 .color-AA4{color:#EDF0FD;} + .d2-302577983 .color-AA5{color:#F7F8FE;} + .d2-302577983 .color-AB4{color:#EDF0FD;} + .d2-302577983 .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}]]>-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 := a + 7 fmt.Printf("%d", b)a := 5 b := a + 7 -fmt.Printf("%d", b) +fmt.Printf("%d", b) \ 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 1fb61555f..216ed84ab 100644 --- a/e2etests/testdata/stable/chaos2/dagre/board.exp.json +++ b/e2etests/testdata/stable/chaos2/dagre/board.exp.json @@ -10,7 +10,7 @@ "x": 0, "y": 41 }, - "width": 806, + "width": 834, "height": 1314, "opacity": 1, "strokeDash": 0, @@ -51,7 +51,7 @@ "x": 20, "y": 106 }, - "width": 567, + "width": 595, "height": 1219, "opacity": 1, "strokeDash": 0, @@ -92,7 +92,7 @@ "x": 40, "y": 721 }, - "width": 393, + "width": 421, "height": 572, "opacity": 1, "strokeDash": 0, @@ -252,7 +252,7 @@ "id": "aa.bb.cc.gg", "type": "text", "pos": { - "x": 190, + "x": 187, "y": 1043 }, "width": 17, @@ -292,7 +292,7 @@ "id": "aa.bb.cc.hh", "type": "rectangle", "pos": { - "x": 324, + "x": 334, "y": 1189 }, "width": 63, @@ -336,7 +336,7 @@ "x": 52, "y": 169 }, - "width": 469, + "width": 496, "height": 161, "opacity": 1, "strokeDash": 0, @@ -374,7 +374,7 @@ "id": "aa.bb.ii.jj", "type": "diamond", "pos": { - "x": 431, + "x": 458, "y": 204 }, "width": 50, @@ -415,7 +415,7 @@ "id": "aa.bb.kk", "type": "oval", "pos": { - "x": 474, + "x": 501, "y": 1169 }, "width": 74, @@ -456,7 +456,7 @@ "id": "aa.ll", "type": "rectangle", "pos": { - "x": 670, + "x": 698, "y": 772 }, "width": 54, @@ -497,7 +497,7 @@ "id": "aa.mm", "type": "cylinder", "pos": { - "x": 662, + "x": 689, "y": 433 }, "width": 71, @@ -538,7 +538,7 @@ "id": "aa.nn", "type": "text", "pos": { - "x": 628, + "x": 655, "y": 1178 }, "width": 16, @@ -578,7 +578,7 @@ "id": "aa.oo", "type": "rectangle", "pos": { - "x": 704, + "x": 731, "y": 1155 }, "width": 63, @@ -652,12 +652,12 @@ "y": 910.3 }, { - "x": 132.35, - "y": 995.1959501557633 + "x": 131.8, + "y": 995.1 }, { - "x": 189.75, - "y": 1045.9797507788162 + "x": 187, + "y": 1045.5 } ], "isCurve": true, @@ -693,20 +693,20 @@ "labelPercentage": 0, "route": [ { - "x": 198.25, + "x": 195.5, "y": 1064 }, { - "x": 198.25, + "x": 195.5, "y": 1112.4 }, { - "x": 223.45, - "y": 1140.1 + "x": 223.3, + "y": 1140.3 }, { - "x": 324.25, - "y": 1202.5 + "x": 334.5, + "y": 1203.5 } ], "isCurve": true, @@ -815,12 +815,12 @@ "labelPercentage": 0, "route": [ { - "x": 670.25, - "y": 811.7993675333802 + "x": 697.5, + "y": 811.4285714285714 }, { - "x": 587.25, - "y": 866.7993675333802 + "x": 614.5, + "y": 865.4285714285714 } ], "animated": false, @@ -855,12 +855,12 @@ "labelPercentage": 0, "route": [ { - "x": 662, - "y": 501 + "x": 689, + "y": 500 }, { - "x": 284.79999999999995, - "y": 589.8 + "x": 290.2, + "y": 589.6 }, { "x": 190.5, @@ -904,31 +904,31 @@ "labelPercentage": 0, "route": [ { - "x": 697, + "x": 725, "y": 552 }, { - "x": 697.2, + "x": 724.6, "y": 600 }, { - "x": 697.25, + "x": 724.5, "y": 624.1 }, { - "x": 697.25, + "x": 724.5, "y": 642.25 }, { - "x": 697.25, + "x": 724.5, "y": 660.4 }, { - "x": 697.25, + "x": 724.5, "y": 732.5 }, { - "x": 697.25, + "x": 724.5, "y": 772.5 } ], @@ -965,12 +965,12 @@ "labelPercentage": 0, "route": [ { - "x": 662, + "x": 689, "y": 505 }, { - "x": 587.75, - "y": 568.4633307868602 + "x": 615, + "y": 566.9955817378498 } ], "animated": false, @@ -1005,19 +1005,19 @@ "labelPercentage": 0, "route": [ { - "x": 670.25, - "y": 811.1842105263158 + "x": 697.5, + "y": 810.8167259786477 }, { - "x": 376.45, - "y": 873.0368421052632 + "x": 381.9, + "y": 872.9633451957295 }, { - "x": 283.8, + "x": 283.2, "y": 968.7 }, { - "x": 207, + "x": 204, "y": 1047.5 } ], @@ -1054,19 +1054,19 @@ "labelPercentage": 0, "route": [ { - "x": 662, + "x": 689, "y": 473 }, { - "x": 517.8, + "x": 545, "y": 393 }, { - "x": 481.8, + "x": 509, "y": 364.6 }, { - "x": 482, + "x": 509, "y": 331 } ], @@ -1103,12 +1103,12 @@ "labelPercentage": 0, "route": [ { - "x": 434, + "x": 461, "y": 896.5 }, { - "x": 670, - "y": 813.5 + "x": 697.5, + "y": 812.9328358208955 } ], "animated": false, @@ -1143,56 +1143,56 @@ "labelPercentage": 0, "route": [ { - "x": 454, + "x": 481, "y": 331 }, { - "x": 453.8, + "x": 481, "y": 364.6 }, { - "x": 453.75, + "x": 481, "y": 396.9 }, { - "x": 453.75, + "x": 481, "y": 432.75 }, { - "x": 453.75, + "x": 481, "y": 468.6 }, { - "x": 453.75, + "x": 481, "y": 516.4 }, { - "x": 453.75, + "x": 481, "y": 552.25 }, { - "x": 453.75, + "x": 481, "y": 588.1 }, { - "x": 453.75, + "x": 481, "y": 624.1 }, { - "x": 453.75, + "x": 481, "y": 642.25 }, { - "x": 453.75, + "x": 481, "y": 660.4 }, { - "x": 496.95, - "y": 737.3 + "x": 524.3, + "y": 737.2593429158111 }, { - "x": 669.75, - "y": 796.5 + "x": 697.5, + "y": 796.2967145790554 } ], "isCurve": true, diff --git a/e2etests/testdata/stable/chaos2/dagre/sketch.exp.svg b/e2etests/testdata/stable/chaos2/dagre/sketch.exp.svg index 2580cdbb6..b7776e4c0 100644 --- a/e2etests/testdata/stable/chaos2/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/chaos2/dagre/sketch.exp.svg @@ -1,23 +1,23 @@ -aabbllmmnnoocciikkddgghhjjeeff1122 334455667788 - - - - - - - - - +aabbllmmnnoocciikkddgghhjjeeff1122 334455667788 + + + + + + + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/classes/dagre/board.exp.json b/e2etests/testdata/stable/classes/dagre/board.exp.json new file mode 100644 index 000000000..5de10aa1a --- /dev/null +++ b/e2etests/testdata/stable/classes/dagre/board.exp.json @@ -0,0 +1,284 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "nostar", + "type": "oval", + "classes": [ + "dragon_ball" + ], + "pos": { + "x": 1, + "y": 0 + }, + "width": 50, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "orange", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 1 + }, + { + "id": "1star", + "type": "oval", + "classes": [ + "dragon_ball" + ], + "pos": { + "x": 1, + "y": 171 + }, + "width": 50, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "orange", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "*", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 7, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "2star", + "type": "oval", + "classes": [ + "dragon_ball" + ], + "pos": { + "x": 0, + "y": 342 + }, + "width": 52, + "height": 52, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "orange", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "**", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(nostar -> 1star)[0]", + "classes": [ + "path" + ], + "src": "nostar", + "srcArrow": "none", + "srcLabel": "", + "dst": "1star", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 4, + "stroke": "B1", + "borderRadius": 10, + "label": "then", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 30, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 26, + "y": 50 + }, + { + "x": 26, + "y": 98.4 + }, + { + "x": 26, + "y": 122.6 + }, + { + "x": 26, + "y": 171 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(1star -> 2star)[0]", + "classes": [ + "path" + ], + "src": "1star", + "srcArrow": "none", + "srcLabel": "", + "dst": "2star", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 4, + "stroke": "B1", + "borderRadius": 10, + "label": "then", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 30, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 26, + "y": 221 + }, + { + "x": 26, + "y": 269.4 + }, + { + "x": 26, + "y": 293.6 + }, + { + "x": 26, + "y": 342 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/classes/dagre/sketch.exp.svg b/e2etests/testdata/stable/classes/dagre/sketch.exp.svg new file mode 100644 index 000000000..ecbce855e --- /dev/null +++ b/e2etests/testdata/stable/classes/dagre/sketch.exp.svg @@ -0,0 +1,103 @@ +*** thenthen + + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/classes/elk/board.exp.json b/e2etests/testdata/stable/classes/elk/board.exp.json new file mode 100644 index 000000000..2dde2125e --- /dev/null +++ b/e2etests/testdata/stable/classes/elk/board.exp.json @@ -0,0 +1,266 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "nostar", + "type": "oval", + "classes": [ + "dragon_ball" + ], + "pos": { + "x": 13, + "y": 12 + }, + "width": 50, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "orange", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 1 + }, + { + "id": "1star", + "type": "oval", + "classes": [ + "dragon_ball" + ], + "pos": { + "x": 13, + "y": 223 + }, + "width": 50, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "orange", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "*", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 7, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "2star", + "type": "oval", + "classes": [ + "dragon_ball" + ], + "pos": { + "x": 12, + "y": 434 + }, + "width": 52, + "height": 52, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "orange", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "**", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(nostar -> 1star)[0]", + "classes": [ + "path" + ], + "src": "nostar", + "srcArrow": "none", + "srcLabel": "", + "dst": "1star", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 4, + "stroke": "B1", + "borderRadius": 10, + "label": "then", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 30, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 38, + "y": 62 + }, + { + "x": 38, + "y": 223 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(1star -> 2star)[0]", + "classes": [ + "path" + ], + "src": "1star", + "srcArrow": "none", + "srcLabel": "", + "dst": "2star", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 4, + "stroke": "B1", + "borderRadius": 10, + "label": "then", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 30, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 38, + "y": 273 + }, + { + "x": 38, + "y": 434 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/classes/elk/sketch.exp.svg b/e2etests/testdata/stable/classes/elk/sketch.exp.svg new file mode 100644 index 000000000..8088c80d0 --- /dev/null +++ b/e2etests/testdata/stable/classes/elk/sketch.exp.svg @@ -0,0 +1,103 @@ +*** thenthen + + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/complex-layers/dagre/board.exp.json b/e2etests/testdata/stable/complex-layers/dagre/board.exp.json index 2143537d3..c90970ef4 100644 --- a/e2etests/testdata/stable/complex-layers/dagre/board.exp.json +++ b/e2etests/testdata/stable/complex-layers/dagre/board.exp.json @@ -828,15 +828,15 @@ "type": "rectangle", "pos": { "x": 0, - "y": 0 + "y": 41 }, - "width": 159, - "height": 66, + "width": 361, + "height": 125, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, "borderRadius": 0, - "fill": "B6", + "fill": "B4", "stroke": "B1", "shadow": false, "3d": false, @@ -851,6 +851,47 @@ "methods": null, "columns": null, "label": "find contractors", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 187, + "labelHeight": 36, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "find contractors.craigslist", + "type": "rectangle", + "pos": { + "x": 40, + "y": 70 + }, + "width": 110, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "craigslist", "fontSize": 16, "fontFamily": "DEFAULT", "language": "", @@ -858,18 +899,59 @@ "italic": false, "bold": true, "underline": false, - "labelWidth": 114, + "labelWidth": 65, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, - "level": 1 + "level": 2 + }, + { + "id": "find contractors.facebook", + "type": "rectangle", + "pos": { + "x": 210, + "y": 70 + }, + "width": 111, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "facebook", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 66, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 }, { "id": "solicit quotes", "type": "rectangle", "pos": { - "x": 10, - "y": 166 + "x": 196, + "y": 266 }, "width": 140, "height": 66, @@ -934,20 +1016,20 @@ "labelPercentage": 0, "route": [ { - "x": 79.5, - "y": 66 - }, - { - "x": 79.5, - "y": 106 - }, - { - "x": 79.5, - "y": 126 - }, - { - "x": 79.5, + "x": 265.5, "y": 166 + }, + { + "x": 265.5, + "y": 206 + }, + { + "x": 265.5, + "y": 226 + }, + { + "x": 265.5, + "y": 266 } ], "isCurve": true, @@ -1004,11 +1086,175 @@ "fontFamily": "SourceSansPro", "shapes": [ { - "id": "obtain quotes", + "id": "find contractors", "type": "rectangle", "pos": { "x": 0, - "y": 0 + "y": 41 + }, + "width": 361, + "height": 125, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "find contractors", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 187, + "labelHeight": 36, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "find contractors.craigslist", + "type": "rectangle", + "pos": { + "x": 40, + "y": 70 + }, + "width": 110, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "craigslist", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 65, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "find contractors.facebook", + "type": "rectangle", + "pos": { + "x": 210, + "y": 70 + }, + "width": 111, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "facebook", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 66, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "solicit quotes", + "type": "rectangle", + "pos": { + "x": 196, + "y": 266 + }, + "width": 140, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "solicit quotes", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 95, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "obtain quotes", + "type": "rectangle", + "pos": { + "x": 401, + "y": 50 }, "width": 143, "height": 66, @@ -1048,8 +1294,8 @@ "id": "negotiate", "type": "rectangle", "pos": { - "x": 16, - "y": 166 + "x": 417, + "y": 266 }, "width": 112, "height": 66, @@ -1087,6 +1333,55 @@ } ], "connections": [ + { + "id": "(find contractors -> solicit quotes)[0]", + "src": "find contractors", + "srcArrow": "none", + "srcLabel": "", + "dst": "solicit quotes", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 265.5, + "y": 166 + }, + { + "x": 265.5, + "y": 206 + }, + { + "x": 265.5, + "y": 226 + }, + { + "x": 265.5, + "y": 266 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, { "id": "(obtain quotes -> negotiate)[0]", "src": "obtain quotes", @@ -1114,20 +1409,20 @@ "labelPercentage": 0, "route": [ { - "x": 71.5, - "y": 66 + "x": 472.5, + "y": 116 }, { - "x": 71.5, - "y": 106 + "x": 472.5, + "y": 156 }, { - "x": 71.5, - "y": 126 + "x": 472.5, + "y": 226 }, { - "x": 71.5, - "y": 166 + "x": 472.5, + "y": 266 } ], "isCurve": true, @@ -1183,12 +1478,217 @@ "isFolderOnly": false, "fontFamily": "SourceSansPro", "shapes": [ + { + "id": "find contractors", + "type": "rectangle", + "pos": { + "x": 0, + "y": 41 + }, + "width": 361, + "height": 125, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "find contractors", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 187, + "labelHeight": 36, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "find contractors.craigslist", + "type": "rectangle", + "pos": { + "x": 40, + "y": 70 + }, + "width": 110, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "craigslist", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 65, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "find contractors.facebook", + "type": "rectangle", + "pos": { + "x": 210, + "y": 70 + }, + "width": 111, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "facebook", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 66, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "solicit quotes", + "type": "rectangle", + "pos": { + "x": 196, + "y": 266 + }, + "width": 140, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "solicit quotes", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 95, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "obtain quotes", + "type": "rectangle", + "pos": { + "x": 401, + "y": 50 + }, + "width": 143, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "obtain quotes", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 98, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, { "id": "negotiate", "type": "rectangle", "pos": { - "x": 28, - "y": 0 + "x": 417, + "y": 266 }, "width": 112, "height": 66, @@ -1228,8 +1728,8 @@ "id": "book the best bid", "type": "rectangle", "pos": { - "x": 0, - "y": 166 + "x": 389, + "y": 432 }, "width": 167, "height": 66, @@ -1267,6 +1767,104 @@ } ], "connections": [ + { + "id": "(find contractors -> solicit quotes)[0]", + "src": "find contractors", + "srcArrow": "none", + "srcLabel": "", + "dst": "solicit quotes", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 265.5, + "y": 166 + }, + { + "x": 265.5, + "y": 206 + }, + { + "x": 265.5, + "y": 226 + }, + { + "x": 265.5, + "y": 266 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(obtain quotes -> negotiate)[0]", + "src": "obtain quotes", + "srcArrow": "none", + "srcLabel": "", + "dst": "negotiate", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 472.5, + "y": 116 + }, + { + "x": 472.5, + "y": 156 + }, + { + "x": 472.5, + "y": 226 + }, + { + "x": 472.5, + "y": 266 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, { "id": "(negotiate -> book the best bid)[0]", "src": "negotiate", @@ -1294,20 +1892,20 @@ "labelPercentage": 0, "route": [ { - "x": 83.5, - "y": 66 + "x": 472.5, + "y": 332 }, { - "x": 83.5, - "y": 106 + "x": 472.5, + "y": 372 }, { - "x": 83.5, - "y": 126 + "x": 472.5, + "y": 392 }, { - "x": 83.5, - "y": 166 + "x": 472.5, + "y": 432 } ], "isCurve": true, diff --git a/e2etests/testdata/stable/complex-layers/dagre/sketch.exp.svg b/e2etests/testdata/stable/complex-layers/dagre/sketch.exp.svg index 082fc6a07..43fa84ddd 100644 --- a/e2etests/testdata/stable/complex-layers/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/complex-layers/dagre/sketch.exp.svg @@ -1,9 +1,9 @@ -windowroofgarage + .d2-1606881621 .fill-N1{fill:#0A0F25;} + .d2-1606881621 .fill-N2{fill:#676C7E;} + .d2-1606881621 .fill-N3{fill:#9499AB;} + .d2-1606881621 .fill-N4{fill:#CFD2DD;} + .d2-1606881621 .fill-N5{fill:#DEE1EB;} + .d2-1606881621 .fill-N6{fill:#EEF1F8;} + .d2-1606881621 .fill-N7{fill:#FFFFFF;} + .d2-1606881621 .fill-B1{fill:#0D32B2;} + .d2-1606881621 .fill-B2{fill:#0D32B2;} + .d2-1606881621 .fill-B3{fill:#E3E9FD;} + .d2-1606881621 .fill-B4{fill:#E3E9FD;} + .d2-1606881621 .fill-B5{fill:#EDF0FD;} + .d2-1606881621 .fill-B6{fill:#F7F8FE;} + .d2-1606881621 .fill-AA2{fill:#4A6FF3;} + .d2-1606881621 .fill-AA4{fill:#EDF0FD;} + .d2-1606881621 .fill-AA5{fill:#F7F8FE;} + .d2-1606881621 .fill-AB4{fill:#EDF0FD;} + .d2-1606881621 .fill-AB5{fill:#F7F8FE;} + .d2-1606881621 .stroke-N1{stroke:#0A0F25;} + .d2-1606881621 .stroke-N2{stroke:#676C7E;} + .d2-1606881621 .stroke-N3{stroke:#9499AB;} + .d2-1606881621 .stroke-N4{stroke:#CFD2DD;} + .d2-1606881621 .stroke-N5{stroke:#DEE1EB;} + .d2-1606881621 .stroke-N6{stroke:#EEF1F8;} + .d2-1606881621 .stroke-N7{stroke:#FFFFFF;} + .d2-1606881621 .stroke-B1{stroke:#0D32B2;} + .d2-1606881621 .stroke-B2{stroke:#0D32B2;} + .d2-1606881621 .stroke-B3{stroke:#E3E9FD;} + .d2-1606881621 .stroke-B4{stroke:#E3E9FD;} + .d2-1606881621 .stroke-B5{stroke:#EDF0FD;} + .d2-1606881621 .stroke-B6{stroke:#F7F8FE;} + .d2-1606881621 .stroke-AA2{stroke:#4A6FF3;} + .d2-1606881621 .stroke-AA4{stroke:#EDF0FD;} + .d2-1606881621 .stroke-AA5{stroke:#F7F8FE;} + .d2-1606881621 .stroke-AB4{stroke:#EDF0FD;} + .d2-1606881621 .stroke-AB5{stroke:#F7F8FE;} + .d2-1606881621 .background-color-N1{background-color:#0A0F25;} + .d2-1606881621 .background-color-N2{background-color:#676C7E;} + .d2-1606881621 .background-color-N3{background-color:#9499AB;} + .d2-1606881621 .background-color-N4{background-color:#CFD2DD;} + .d2-1606881621 .background-color-N5{background-color:#DEE1EB;} + .d2-1606881621 .background-color-N6{background-color:#EEF1F8;} + .d2-1606881621 .background-color-N7{background-color:#FFFFFF;} + .d2-1606881621 .background-color-B1{background-color:#0D32B2;} + .d2-1606881621 .background-color-B2{background-color:#0D32B2;} + .d2-1606881621 .background-color-B3{background-color:#E3E9FD;} + .d2-1606881621 .background-color-B4{background-color:#E3E9FD;} + .d2-1606881621 .background-color-B5{background-color:#EDF0FD;} + .d2-1606881621 .background-color-B6{background-color:#F7F8FE;} + .d2-1606881621 .background-color-AA2{background-color:#4A6FF3;} + .d2-1606881621 .background-color-AA4{background-color:#EDF0FD;} + .d2-1606881621 .background-color-AA5{background-color:#F7F8FE;} + .d2-1606881621 .background-color-AB4{background-color:#EDF0FD;} + .d2-1606881621 .background-color-AB5{background-color:#F7F8FE;} + .d2-1606881621 .color-N1{color:#0A0F25;} + .d2-1606881621 .color-N2{color:#676C7E;} + .d2-1606881621 .color-N3{color:#9499AB;} + .d2-1606881621 .color-N4{color:#CFD2DD;} + .d2-1606881621 .color-N5{color:#DEE1EB;} + .d2-1606881621 .color-N6{color:#EEF1F8;} + .d2-1606881621 .color-N7{color:#FFFFFF;} + .d2-1606881621 .color-B1{color:#0D32B2;} + .d2-1606881621 .color-B2{color:#0D32B2;} + .d2-1606881621 .color-B3{color:#E3E9FD;} + .d2-1606881621 .color-B4{color:#E3E9FD;} + .d2-1606881621 .color-B5{color:#EDF0FD;} + .d2-1606881621 .color-B6{color:#F7F8FE;} + .d2-1606881621 .color-AA2{color:#4A6FF3;} + .d2-1606881621 .color-AA4{color:#EDF0FD;} + .d2-1606881621 .color-AA5{color:#F7F8FE;} + .d2-1606881621 .color-AB4{color:#EDF0FD;} + .d2-1606881621 .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}]]>windowroofgarage \ No newline at end of file diff --git a/e2etests/testdata/stable/complex-layers/elk/board.exp.json b/e2etests/testdata/stable/complex-layers/elk/board.exp.json index 0d1f96aa8..2ab04d994 100644 --- a/e2etests/testdata/stable/complex-layers/elk/board.exp.json +++ b/e2etests/testdata/stable/complex-layers/elk/board.exp.json @@ -830,13 +830,13 @@ "x": 12, "y": 12 }, - "width": 159, - "height": 66, + "width": 341, + "height": 166, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, "borderRadius": 0, - "fill": "B6", + "fill": "B4", "stroke": "B1", "shadow": false, "3d": false, @@ -851,6 +851,47 @@ "methods": null, "columns": null, "label": "find contractors", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 187, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "find contractors.craigslist", + "type": "rectangle", + "pos": { + "x": 62, + "y": 62 + }, + "width": 110, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "craigslist", "fontSize": 16, "fontFamily": "DEFAULT", "language": "", @@ -858,18 +899,59 @@ "italic": false, "bold": true, "underline": false, - "labelWidth": 114, + "labelWidth": 65, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, - "level": 1 + "level": 2 + }, + { + "id": "find contractors.facebook", + "type": "rectangle", + "pos": { + "x": 192, + "y": 62 + }, + "width": 111, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "facebook", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 66, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 }, { "id": "solicit quotes", "type": "rectangle", "pos": { - "x": 21, - "y": 148 + "x": 112, + "y": 248 }, "width": 140, "height": 66, @@ -934,12 +1016,12 @@ "labelPercentage": 0, "route": [ { - "x": 91.5, - "y": 78 + "x": 182.5, + "y": 178 }, { - "x": 91.5, - "y": 148 + "x": 182.5, + "y": 248 } ], "animated": false, @@ -995,12 +1077,176 @@ "fontFamily": "SourceSansPro", "shapes": [ { - "id": "obtain quotes", + "id": "find contractors", "type": "rectangle", "pos": { "x": 12, "y": 12 }, + "width": 341, + "height": 166, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "find contractors", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 187, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "find contractors.craigslist", + "type": "rectangle", + "pos": { + "x": 62, + "y": 62 + }, + "width": 110, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "craigslist", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 65, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "find contractors.facebook", + "type": "rectangle", + "pos": { + "x": 192, + "y": 62 + }, + "width": 111, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "facebook", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 66, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "solicit quotes", + "type": "rectangle", + "pos": { + "x": 112, + "y": 248 + }, + "width": 140, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "solicit quotes", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 95, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "obtain quotes", + "type": "rectangle", + "pos": { + "x": 373, + "y": 112 + }, "width": 143, "height": 66, "opacity": 1, @@ -1039,8 +1285,8 @@ "id": "negotiate", "type": "rectangle", "pos": { - "x": 27, - "y": 148 + "x": 388, + "y": 248 }, "width": 112, "height": 66, @@ -1078,6 +1324,46 @@ } ], "connections": [ + { + "id": "(find contractors -> solicit quotes)[0]", + "src": "find contractors", + "srcArrow": "none", + "srcLabel": "", + "dst": "solicit quotes", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 182.5, + "y": 178 + }, + { + "x": 182.5, + "y": 248 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, { "id": "(obtain quotes -> negotiate)[0]", "src": "obtain quotes", @@ -1105,12 +1391,12 @@ "labelPercentage": 0, "route": [ { - "x": 83.5, - "y": 78 + "x": 444.5, + "y": 178 }, { - "x": 83.5, - "y": 148 + "x": 444.5, + "y": 248 } ], "animated": false, @@ -1165,12 +1451,217 @@ "isFolderOnly": false, "fontFamily": "SourceSansPro", "shapes": [ + { + "id": "find contractors", + "type": "rectangle", + "pos": { + "x": 12, + "y": 12 + }, + "width": 341, + "height": 166, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "find contractors", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 187, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "find contractors.craigslist", + "type": "rectangle", + "pos": { + "x": 62, + "y": 62 + }, + "width": 110, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "craigslist", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 65, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "find contractors.facebook", + "type": "rectangle", + "pos": { + "x": 192, + "y": 62 + }, + "width": 111, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "facebook", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 66, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "solicit quotes", + "type": "rectangle", + "pos": { + "x": 112, + "y": 248 + }, + "width": 140, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "solicit quotes", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 95, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "obtain quotes", + "type": "rectangle", + "pos": { + "x": 373, + "y": 112 + }, + "width": 143, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "obtain quotes", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 98, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, { "id": "negotiate", "type": "rectangle", "pos": { - "x": 39, - "y": 12 + "x": 388, + "y": 248 }, "width": 112, "height": 66, @@ -1210,8 +1701,8 @@ "id": "book the best bid", "type": "rectangle", "pos": { - "x": 12, - "y": 148 + "x": 361, + "y": 384 }, "width": 167, "height": 66, @@ -1249,6 +1740,86 @@ } ], "connections": [ + { + "id": "(find contractors -> solicit quotes)[0]", + "src": "find contractors", + "srcArrow": "none", + "srcLabel": "", + "dst": "solicit quotes", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 182.5, + "y": 178 + }, + { + "x": 182.5, + "y": 248 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(obtain quotes -> negotiate)[0]", + "src": "obtain quotes", + "srcArrow": "none", + "srcLabel": "", + "dst": "negotiate", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 444.5, + "y": 178 + }, + { + "x": 444.5, + "y": 248 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, { "id": "(negotiate -> book the best bid)[0]", "src": "negotiate", @@ -1276,12 +1847,12 @@ "labelPercentage": 0, "route": [ { - "x": 95.5, - "y": 78 + "x": 444.5, + "y": 314 }, { - "x": 95.5, - "y": 148 + "x": 444.5, + "y": 384 } ], "animated": false, diff --git a/e2etests/testdata/stable/complex-layers/elk/sketch.exp.svg b/e2etests/testdata/stable/complex-layers/elk/sketch.exp.svg index de054737d..2b7d980fe 100644 --- a/e2etests/testdata/stable/complex-layers/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/complex-layers/elk/sketch.exp.svg @@ -1,9 +1,9 @@ -windowroofgarage + .d2-1428720329 .fill-N1{fill:#0A0F25;} + .d2-1428720329 .fill-N2{fill:#676C7E;} + .d2-1428720329 .fill-N3{fill:#9499AB;} + .d2-1428720329 .fill-N4{fill:#CFD2DD;} + .d2-1428720329 .fill-N5{fill:#DEE1EB;} + .d2-1428720329 .fill-N6{fill:#EEF1F8;} + .d2-1428720329 .fill-N7{fill:#FFFFFF;} + .d2-1428720329 .fill-B1{fill:#0D32B2;} + .d2-1428720329 .fill-B2{fill:#0D32B2;} + .d2-1428720329 .fill-B3{fill:#E3E9FD;} + .d2-1428720329 .fill-B4{fill:#E3E9FD;} + .d2-1428720329 .fill-B5{fill:#EDF0FD;} + .d2-1428720329 .fill-B6{fill:#F7F8FE;} + .d2-1428720329 .fill-AA2{fill:#4A6FF3;} + .d2-1428720329 .fill-AA4{fill:#EDF0FD;} + .d2-1428720329 .fill-AA5{fill:#F7F8FE;} + .d2-1428720329 .fill-AB4{fill:#EDF0FD;} + .d2-1428720329 .fill-AB5{fill:#F7F8FE;} + .d2-1428720329 .stroke-N1{stroke:#0A0F25;} + .d2-1428720329 .stroke-N2{stroke:#676C7E;} + .d2-1428720329 .stroke-N3{stroke:#9499AB;} + .d2-1428720329 .stroke-N4{stroke:#CFD2DD;} + .d2-1428720329 .stroke-N5{stroke:#DEE1EB;} + .d2-1428720329 .stroke-N6{stroke:#EEF1F8;} + .d2-1428720329 .stroke-N7{stroke:#FFFFFF;} + .d2-1428720329 .stroke-B1{stroke:#0D32B2;} + .d2-1428720329 .stroke-B2{stroke:#0D32B2;} + .d2-1428720329 .stroke-B3{stroke:#E3E9FD;} + .d2-1428720329 .stroke-B4{stroke:#E3E9FD;} + .d2-1428720329 .stroke-B5{stroke:#EDF0FD;} + .d2-1428720329 .stroke-B6{stroke:#F7F8FE;} + .d2-1428720329 .stroke-AA2{stroke:#4A6FF3;} + .d2-1428720329 .stroke-AA4{stroke:#EDF0FD;} + .d2-1428720329 .stroke-AA5{stroke:#F7F8FE;} + .d2-1428720329 .stroke-AB4{stroke:#EDF0FD;} + .d2-1428720329 .stroke-AB5{stroke:#F7F8FE;} + .d2-1428720329 .background-color-N1{background-color:#0A0F25;} + .d2-1428720329 .background-color-N2{background-color:#676C7E;} + .d2-1428720329 .background-color-N3{background-color:#9499AB;} + .d2-1428720329 .background-color-N4{background-color:#CFD2DD;} + .d2-1428720329 .background-color-N5{background-color:#DEE1EB;} + .d2-1428720329 .background-color-N6{background-color:#EEF1F8;} + .d2-1428720329 .background-color-N7{background-color:#FFFFFF;} + .d2-1428720329 .background-color-B1{background-color:#0D32B2;} + .d2-1428720329 .background-color-B2{background-color:#0D32B2;} + .d2-1428720329 .background-color-B3{background-color:#E3E9FD;} + .d2-1428720329 .background-color-B4{background-color:#E3E9FD;} + .d2-1428720329 .background-color-B5{background-color:#EDF0FD;} + .d2-1428720329 .background-color-B6{background-color:#F7F8FE;} + .d2-1428720329 .background-color-AA2{background-color:#4A6FF3;} + .d2-1428720329 .background-color-AA4{background-color:#EDF0FD;} + .d2-1428720329 .background-color-AA5{background-color:#F7F8FE;} + .d2-1428720329 .background-color-AB4{background-color:#EDF0FD;} + .d2-1428720329 .background-color-AB5{background-color:#F7F8FE;} + .d2-1428720329 .color-N1{color:#0A0F25;} + .d2-1428720329 .color-N2{color:#676C7E;} + .d2-1428720329 .color-N3{color:#9499AB;} + .d2-1428720329 .color-N4{color:#CFD2DD;} + .d2-1428720329 .color-N5{color:#DEE1EB;} + .d2-1428720329 .color-N6{color:#EEF1F8;} + .d2-1428720329 .color-N7{color:#FFFFFF;} + .d2-1428720329 .color-B1{color:#0D32B2;} + .d2-1428720329 .color-B2{color:#0D32B2;} + .d2-1428720329 .color-B3{color:#E3E9FD;} + .d2-1428720329 .color-B4{color:#E3E9FD;} + .d2-1428720329 .color-B5{color:#EDF0FD;} + .d2-1428720329 .color-B6{color:#F7F8FE;} + .d2-1428720329 .color-AA2{color:#4A6FF3;} + .d2-1428720329 .color-AA4{color:#EDF0FD;} + .d2-1428720329 .color-AA5{color:#F7F8FE;} + .d2-1428720329 .color-AB4{color:#EDF0FD;} + .d2-1428720329 .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}]]>windowroofgarage \ No newline at end of file diff --git a/e2etests/testdata/stable/constant_near_stress/dagre/board.exp.json b/e2etests/testdata/stable/constant_near_stress/dagre/board.exp.json index 43eed6303..5b41f8c97 100644 --- a/e2etests/testdata/stable/constant_near_stress/dagre/board.exp.json +++ b/e2etests/testdata/stable/constant_near_stress/dagre/board.exp.json @@ -122,7 +122,6 @@ "underline": false, "labelWidth": 162, "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, @@ -163,7 +162,6 @@ "underline": false, "labelWidth": 943, "labelHeight": 131, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, @@ -286,7 +284,6 @@ "underline": false, "labelWidth": 80, "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, @@ -327,7 +324,6 @@ "underline": false, "labelWidth": 90, "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, @@ -368,7 +364,6 @@ "underline": false, "labelWidth": 107, "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, @@ -409,7 +404,6 @@ "underline": false, "labelWidth": 117, "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 } diff --git a/e2etests/testdata/stable/constant_near_stress/dagre/sketch.exp.svg b/e2etests/testdata/stable/constant_near_stress/dagre/sketch.exp.svg index 4aaef7269..0cd1d32c5 100644 --- a/e2etests/testdata/stable/constant_near_stress/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/constant_near_stress/dagre/sketch.exp.svg @@ -1,16 +1,16 @@ -xyThe top of the mountain

    Cats, no less liquid than their shadows, offer no angles to the wind.

    If we can't fix it, it ain't broke.

    Dieters live life in the fasting lane.

    -
    JoeDonaldi am top lefti am top righti am bottom lefti am bottom right +JoeDonaldi am top lefti am top righti am bottom lefti am bottom right
    \ No newline at end of file diff --git a/e2etests/testdata/stable/constant_near_stress/elk/board.exp.json b/e2etests/testdata/stable/constant_near_stress/elk/board.exp.json index 12a29e999..340654717 100644 --- a/e2etests/testdata/stable/constant_near_stress/elk/board.exp.json +++ b/e2etests/testdata/stable/constant_near_stress/elk/board.exp.json @@ -122,7 +122,6 @@ "underline": false, "labelWidth": 162, "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, @@ -163,7 +162,6 @@ "underline": false, "labelWidth": 943, "labelHeight": 131, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, @@ -286,7 +284,6 @@ "underline": false, "labelWidth": 80, "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, @@ -327,7 +324,6 @@ "underline": false, "labelWidth": 90, "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, @@ -368,7 +364,6 @@ "underline": false, "labelWidth": 107, "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, @@ -409,7 +404,6 @@ "underline": false, "labelWidth": 117, "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 } diff --git a/e2etests/testdata/stable/constant_near_stress/elk/sketch.exp.svg b/e2etests/testdata/stable/constant_near_stress/elk/sketch.exp.svg index 28a2fd326..d0fa21159 100644 --- a/e2etests/testdata/stable/constant_near_stress/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/constant_near_stress/elk/sketch.exp.svg @@ -1,16 +1,16 @@ -xyThe top of the mountain

    Cats, no less liquid than their shadows, offer no angles to the wind.

    If we can't fix it, it ain't broke.

    Dieters live life in the fasting lane.

    -
    JoeDonaldi am top lefti am top righti am bottom lefti am bottom right +JoeDonaldi am top lefti am top righti am bottom lefti am bottom right
    \ No newline at end of file diff --git a/e2etests/testdata/stable/constant_near_title/dagre/board.exp.json b/e2etests/testdata/stable/constant_near_title/dagre/board.exp.json index e1edce8c6..ecde77955 100644 --- a/e2etests/testdata/stable/constant_near_title/dagre/board.exp.json +++ b/e2etests/testdata/stable/constant_near_title/dagre/board.exp.json @@ -245,7 +245,6 @@ "underline": false, "labelWidth": 266, "labelHeight": 51, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 } diff --git a/e2etests/testdata/stable/constant_near_title/dagre/sketch.exp.svg b/e2etests/testdata/stable/constant_near_title/dagre/sketch.exp.svg index 6a993aab3..aba3b1358 100644 --- a/e2etests/testdata/stable/constant_near_title/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/constant_near_title/dagre/sketch.exp.svg @@ -1,16 +1,16 @@ -poll the peopleresultsunfavorablefavorablewill of the people

    A winning strategy

    -
    +
    \ No newline at end of file diff --git a/e2etests/testdata/stable/constant_near_title/elk/board.exp.json b/e2etests/testdata/stable/constant_near_title/elk/board.exp.json index 30d2251bd..5ce0d864e 100644 --- a/e2etests/testdata/stable/constant_near_title/elk/board.exp.json +++ b/e2etests/testdata/stable/constant_near_title/elk/board.exp.json @@ -245,7 +245,6 @@ "underline": false, "labelWidth": 266, "labelHeight": 51, - "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 } diff --git a/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg b/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg index c7b55c66b..59adac5f9 100644 --- a/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg @@ -1,16 +1,16 @@ -poll the peopleresultsunfavorablefavorablewill of the people

    A winning strategy

    -
    +
    \ No newline at end of file diff --git a/e2etests/testdata/stable/dagger_grid/dagre/board.exp.json b/e2etests/testdata/stable/dagger_grid/dagre/board.exp.json new file mode 100644 index 000000000..b94be0069 --- /dev/null +++ b/e2etests/testdata/stable/dagger_grid/dagre/board.exp.json @@ -0,0 +1,716 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "flow1", + "type": "rectangle", + "pos": { + "x": 0, + "y": 0 + }, + "width": 128, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow2", + "type": "rectangle", + "pos": { + "x": 168, + "y": 0 + }, + "width": 128, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow3", + "type": "rectangle", + "pos": { + "x": 336, + "y": 0 + }, + "width": 128, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow4", + "type": "rectangle", + "pos": { + "x": 504, + "y": 0 + }, + "width": 128, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow5", + "type": "rectangle", + "pos": { + "x": 672, + "y": 0 + }, + "width": 128, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow6", + "type": "rectangle", + "pos": { + "x": 0, + "y": 140 + }, + "width": 240, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow7", + "type": "rectangle", + "pos": { + "x": 280, + "y": 140 + }, + "width": 120, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow8", + "type": "rectangle", + "pos": { + "x": 440, + "y": 140 + }, + "width": 160, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow9", + "type": "rectangle", + "pos": { + "x": 640, + "y": 140 + }, + "width": 160, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "DAGGER ENGINE", + "type": "rectangle", + "pos": { + "x": 0, + "y": 280 + }, + "width": 800, + "height": 61, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 8, + "borderRadius": 0, + "fill": "beige", + "stroke": "darkcyan", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "DAGGER ENGINE", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "blue", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 114, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "ANY DOCKER COMPATIBLE RUNTIME", + "type": "rectangle", + "pos": { + "x": 0, + "y": 381 + }, + "width": 800, + "height": 87, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 8, + "borderRadius": 0, + "fill": "lightcyan", + "stroke": "darkcyan", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/docker.svg", + "RawPath": "/dev%2Fdocker.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "ANY DOCKER COMPATIBLE RUNTIME", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "black", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 255, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "ANY CI", + "type": "rectangle", + "pos": { + "x": 0, + "y": 508 + }, + "width": 139, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 8, + "borderRadius": 0, + "fill": "gold", + "stroke": "maroon", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "ANY CI", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "maroon", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 46, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "WINDOWS", + "type": "rectangle", + "pos": { + "x": 179, + "y": 508 + }, + "width": 117, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "darkcyan", + "stroke": "black", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "WINDOWS", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "white", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 72, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "LINUX", + "type": "rectangle", + "pos": { + "x": 336, + "y": 508 + }, + "width": 139, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "darkcyan", + "stroke": "black", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "LINUX", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "white", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 43, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "MACOS", + "type": "rectangle", + "pos": { + "x": 515, + "y": 508 + }, + "width": 106, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "darkcyan", + "stroke": "black", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "MACOS", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "white", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 50, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "KUBERNETES", + "type": "rectangle", + "pos": { + "x": 661, + "y": 508 + }, + "width": 139, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "darkcyan", + "stroke": "black", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "KUBERNETES", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "white", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 94, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "black", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/dagger_grid/dagre/sketch.exp.svg b/e2etests/testdata/stable/dagger_grid/dagre/sketch.exp.svg new file mode 100644 index 000000000..cc62b273b --- /dev/null +++ b/e2etests/testdata/stable/dagger_grid/dagre/sketch.exp.svg @@ -0,0 +1,95 @@ +DAGGER ENGINEANY DOCKER COMPATIBLE RUNTIMEANY CIWINDOWSLINUXMACOSKUBERNETES + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/dagger_grid/elk/board.exp.json b/e2etests/testdata/stable/dagger_grid/elk/board.exp.json new file mode 100644 index 000000000..b94be0069 --- /dev/null +++ b/e2etests/testdata/stable/dagger_grid/elk/board.exp.json @@ -0,0 +1,716 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "flow1", + "type": "rectangle", + "pos": { + "x": 0, + "y": 0 + }, + "width": 128, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow2", + "type": "rectangle", + "pos": { + "x": 168, + "y": 0 + }, + "width": 128, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow3", + "type": "rectangle", + "pos": { + "x": 336, + "y": 0 + }, + "width": 128, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow4", + "type": "rectangle", + "pos": { + "x": 504, + "y": 0 + }, + "width": 128, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow5", + "type": "rectangle", + "pos": { + "x": 672, + "y": 0 + }, + "width": 128, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow6", + "type": "rectangle", + "pos": { + "x": 0, + "y": 140 + }, + "width": 240, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow7", + "type": "rectangle", + "pos": { + "x": 280, + "y": 140 + }, + "width": 120, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow8", + "type": "rectangle", + "pos": { + "x": 440, + "y": 140 + }, + "width": 160, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "flow9", + "type": "rectangle", + "pos": { + "x": 640, + "y": 140 + }, + "width": 160, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "borderRadius": 0, + "fill": "white", + "stroke": "cornflowerblue", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "DAGGER ENGINE", + "type": "rectangle", + "pos": { + "x": 0, + "y": 280 + }, + "width": 800, + "height": 61, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 8, + "borderRadius": 0, + "fill": "beige", + "stroke": "darkcyan", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "DAGGER ENGINE", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "blue", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 114, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "ANY DOCKER COMPATIBLE RUNTIME", + "type": "rectangle", + "pos": { + "x": 0, + "y": 381 + }, + "width": 800, + "height": 87, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 8, + "borderRadius": 0, + "fill": "lightcyan", + "stroke": "darkcyan", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/docker.svg", + "RawPath": "/dev%2Fdocker.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "ANY DOCKER COMPATIBLE RUNTIME", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "black", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 255, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "ANY CI", + "type": "rectangle", + "pos": { + "x": 0, + "y": 508 + }, + "width": 139, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 8, + "borderRadius": 0, + "fill": "gold", + "stroke": "maroon", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "ANY CI", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "maroon", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 46, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "WINDOWS", + "type": "rectangle", + "pos": { + "x": 179, + "y": 508 + }, + "width": 117, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "darkcyan", + "stroke": "black", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "WINDOWS", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "white", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 72, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "LINUX", + "type": "rectangle", + "pos": { + "x": 336, + "y": 508 + }, + "width": 139, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "darkcyan", + "stroke": "black", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "LINUX", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "white", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 43, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "MACOS", + "type": "rectangle", + "pos": { + "x": 515, + "y": 508 + }, + "width": 106, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "darkcyan", + "stroke": "black", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "MACOS", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "white", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 50, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "KUBERNETES", + "type": "rectangle", + "pos": { + "x": 661, + "y": 508 + }, + "width": 139, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "darkcyan", + "stroke": "black", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "KUBERNETES", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "white", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 94, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "black", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/dagger_grid/elk/sketch.exp.svg b/e2etests/testdata/stable/dagger_grid/elk/sketch.exp.svg new file mode 100644 index 000000000..cc62b273b --- /dev/null +++ b/e2etests/testdata/stable/dagger_grid/elk/sketch.exp.svg @@ -0,0 +1,95 @@ +DAGGER ENGINEANY DOCKER COMPATIBLE RUNTIMEANY CIWINDOWSLINUXMACOSKUBERNETES + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/edge-label-overflow/dagre/board.exp.json b/e2etests/testdata/stable/edge-label-overflow/dagre/board.exp.json new file mode 100644 index 000000000..447a27946 --- /dev/null +++ b/e2etests/testdata/stable/edge-label-overflow/dagre/board.exp.json @@ -0,0 +1,319 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "student", + "type": "rectangle", + "pos": { + "x": 110, + "y": 0 + }, + "width": 100, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "student", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 55, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "committee chair", + "type": "rectangle", + "pos": { + "x": 79, + "y": 187 + }, + "width": 162, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "committee chair", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 117, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "committee", + "type": "rectangle", + "pos": { + "x": 99, + "y": 374 + }, + "width": 122, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "committee", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 77, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(student -> committee chair)[0]", + "src": "student", + "srcArrow": "none", + "srcLabel": "", + "dst": "committee chair", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "Apply for appeal", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 109, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 126.13235294117646, + "y": 66 + }, + { + "x": 76.82647058823528, + "y": 114.4 + }, + { + "x": 76.9, + "y": 138.7 + }, + { + "x": 126.5, + "y": 187.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(student <- committee chair)[0]", + "src": "student", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "committee chair", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "Deny. Need more information", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 192, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 193.36764705882354, + "y": 66 + }, + { + "x": 242.67352941176472, + "y": 114.4 + }, + { + "x": 242.6, + "y": 138.7 + }, + { + "x": 193, + "y": 187.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(committee chair -> committee)[0]", + "src": "committee chair", + "srcArrow": "none", + "srcLabel": "", + "dst": "committee", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "Accept appeal", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 94, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 159.75, + "y": 253 + }, + { + "x": 159.75, + "y": 301.4 + }, + { + "x": 159.75, + "y": 325.7 + }, + { + "x": 159.75, + "y": 374.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/edge-label-overflow/dagre/sketch.exp.svg b/e2etests/testdata/stable/edge-label-overflow/dagre/sketch.exp.svg new file mode 100644 index 000000000..efcdc3cce --- /dev/null +++ b/e2etests/testdata/stable/edge-label-overflow/dagre/sketch.exp.svg @@ -0,0 +1,104 @@ +studentcommittee chaircommittee Apply for appeal Deny. Need more informationAccept appeal + + + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/edge-label-overflow/elk/board.exp.json b/e2etests/testdata/stable/edge-label-overflow/elk/board.exp.json new file mode 100644 index 000000000..f17ddcb63 --- /dev/null +++ b/e2etests/testdata/stable/edge-label-overflow/elk/board.exp.json @@ -0,0 +1,324 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "student", + "type": "rectangle", + "pos": { + "x": 97, + "y": 12 + }, + "width": 100, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "student", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 55, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "committee chair", + "type": "rectangle", + "pos": { + "x": 66, + "y": 259 + }, + "width": 162, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "committee chair", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 117, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "committee", + "type": "rectangle", + "pos": { + "x": 86, + "y": 486 + }, + "width": 122, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "committee", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 77, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(student -> committee chair)[0]", + "src": "student", + "srcArrow": "none", + "srcLabel": "", + "dst": "committee chair", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "Apply for appeal", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 109, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 130.58333333333331, + "y": 78 + }, + { + "x": 130.58333333333331, + "y": 118 + }, + { + "x": 66.5, + "y": 118 + }, + { + "x": 66.5, + "y": 219 + }, + { + "x": 120.25, + "y": 219 + }, + { + "x": 120.25, + "y": 259 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(student <- committee chair)[0]", + "src": "student", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "committee chair", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "Deny. Need more information", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 192, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 163.91666666666666, + "y": 78 + }, + { + "x": 163.91666666666666, + "y": 118 + }, + { + "x": 228, + "y": 118 + }, + { + "x": 228, + "y": 219 + }, + { + "x": 174.25, + "y": 219 + }, + { + "x": 174.25, + "y": 259 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(committee chair -> committee)[0]", + "src": "committee chair", + "srcArrow": "none", + "srcLabel": "", + "dst": "committee", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "Accept appeal", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 94, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 147.25, + "y": 325 + }, + { + "x": 147.25, + "y": 486 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/edge-label-overflow/elk/sketch.exp.svg b/e2etests/testdata/stable/edge-label-overflow/elk/sketch.exp.svg new file mode 100644 index 000000000..fd70eb8b0 --- /dev/null +++ b/e2etests/testdata/stable/edge-label-overflow/elk/sketch.exp.svg @@ -0,0 +1,104 @@ +studentcommittee chaircommittee Apply for appeal Deny. Need more informationAccept appeal + + + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/elk_shim/dagre/board.exp.json b/e2etests/testdata/stable/elk_shim/dagre/board.exp.json index f839bf8a2..825a9fef0 100644 --- a/e2etests/testdata/stable/elk_shim/dagre/board.exp.json +++ b/e2etests/testdata/stable/elk_shim/dagre/board.exp.json @@ -10,7 +10,7 @@ "x": 0, "y": 275 }, - "width": 387, + "width": 417, "height": 1215, "opacity": 1, "strokeDash": 0, @@ -51,7 +51,7 @@ "x": 95, "y": 340 }, - "width": 273, + "width": 302, "height": 307, "opacity": 1, "strokeDash": 0, @@ -89,7 +89,7 @@ "id": "network.cell tower.satellites", "type": "stored_data", "pos": { - "x": 161, + "x": 176, "y": 372 }, "width": 140, @@ -130,7 +130,7 @@ "id": "network.cell tower.transmitter", "type": "rectangle", "pos": { - "x": 161, + "x": 176, "y": 554 }, "width": 140, @@ -253,7 +253,7 @@ "id": "network.data processor", "type": "rectangle", "pos": { - "x": 142, + "x": 157, "y": 804 }, "width": 179, @@ -294,7 +294,7 @@ "id": "network.data processor.storage", "type": "cylinder", "pos": { - "x": 182, + "x": 197, "y": 836 }, "width": 99, @@ -335,7 +335,7 @@ "id": "user", "type": "person", "pos": { - "x": 75, + "x": 80, "y": 0 }, "width": 130, @@ -376,7 +376,7 @@ "id": "api server", "type": "rectangle", "pos": { - "x": 428, + "x": 457, "y": 1066 }, "width": 116, @@ -417,7 +417,7 @@ "id": "logs", "type": "page", "pos": { - "x": 449, + "x": 479, "y": 1303 }, "width": 73, @@ -483,19 +483,19 @@ "labelPercentage": 0, "route": [ { - "x": 210, + "x": 221, "y": 434 }, { - "x": 176.4, + "x": 182.6, "y": 482 }, { - "x": 176.4, + "x": 182.8, "y": 506.2 }, { - "x": 210, + "x": 222, "y": 555 } ], @@ -532,19 +532,19 @@ "labelPercentage": 0, "route": [ { - "x": 231, + "x": 246, "y": 434 }, { - "x": 231.2, + "x": 246, "y": 482 }, { - "x": 231.25, + "x": 246, "y": 506.2 }, { - "x": 231.25, + "x": 246, "y": 555 } ], @@ -581,19 +581,19 @@ "labelPercentage": 0, "route": [ { - "x": 253, + "x": 271, "y": 434 }, { - "x": 286.2, + "x": 309.4, "y": 482 }, { - "x": 286.1, + "x": 309.2, "y": 506.2 }, { - "x": 252.5, + "x": 270, "y": 555 } ], @@ -630,31 +630,31 @@ "labelPercentage": 0, "route": [ { - "x": 231.25, + "x": 246, "y": 615.5 }, { - "x": 231.25, + "x": 246, "y": 641.1 }, { - "x": 231.25, + "x": 246, "y": 659.6 }, { - "x": 231.25, + "x": 246, "y": 677.75 }, { - "x": 231.25, + "x": 246, "y": 695.9 }, { - "x": 231.2, + "x": 246, "y": 782.2 }, { - "x": 231, + "x": 246, "y": 837 } ], @@ -691,19 +691,19 @@ "labelPercentage": 0, "route": [ { - "x": 164, + "x": 171, "y": 87 }, { - "x": 217.8, + "x": 231, "y": 156.2 }, { - "x": 231.25, + "x": 246, "y": 248.2 }, { - "x": 231.25, + "x": 246, "y": 305 } ], @@ -740,11 +740,11 @@ "labelPercentage": 0, "route": [ { - "x": 123, + "x": 126, "y": 87 }, { - "x": 84.4, + "x": 85, "y": 156.2 }, { @@ -945,12 +945,12 @@ "labelPercentage": 0, "route": [ { - "x": 427.75, - "y": 1113.8881262868908 + "x": 457.25, + "y": 1112.7726984126984 }, { - "x": 182.75, - "y": 1176.777625257378 + "x": 188.64999999999998, + "y": 1176.5545396825396 }, { "x": 118.2, @@ -994,19 +994,19 @@ "labelPercentage": 0, "route": [ { - "x": 485.75, + "x": 515.25, "y": 1132 }, { - "x": 485.75, + "x": 515.25, "y": 1180.4 }, { - "x": 485.8, + "x": 515.2, "y": 1263 }, { - "x": 486, + "x": 515, "y": 1303 } ], @@ -1043,20 +1043,20 @@ "labelPercentage": 0, "route": [ { - "x": 231.25, + "x": 246, "y": 986.5 }, { - "x": 231.25, + "x": 246, "y": 1010.1 }, { - "x": 270.55, - "y": 1028.8168958742633 + "x": 288.2, + "y": 1029 }, { - "x": 427.75, - "y": 1080.0844793713163 + "x": 457, + "y": 1081 } ], "isCurve": true, diff --git a/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg b/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg index 6f5a2477e..b7f521821 100644 --- a/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg @@ -1,23 +1,23 @@ -networkuserapi serverlogscell towerONLINE PORTALLLLdata processorsatellitestransmitteruistorage sendsendsendphone logsmake call accessdisplaypersist - - - - - - - - - + .d2-49621034 .fill-N1{fill:#0A0F25;} + .d2-49621034 .fill-N2{fill:#676C7E;} + .d2-49621034 .fill-N3{fill:#9499AB;} + .d2-49621034 .fill-N4{fill:#CFD2DD;} + .d2-49621034 .fill-N5{fill:#DEE1EB;} + .d2-49621034 .fill-N6{fill:#EEF1F8;} + .d2-49621034 .fill-N7{fill:#FFFFFF;} + .d2-49621034 .fill-B1{fill:#0D32B2;} + .d2-49621034 .fill-B2{fill:#0D32B2;} + .d2-49621034 .fill-B3{fill:#E3E9FD;} + .d2-49621034 .fill-B4{fill:#E3E9FD;} + .d2-49621034 .fill-B5{fill:#EDF0FD;} + .d2-49621034 .fill-B6{fill:#F7F8FE;} + .d2-49621034 .fill-AA2{fill:#4A6FF3;} + .d2-49621034 .fill-AA4{fill:#EDF0FD;} + .d2-49621034 .fill-AA5{fill:#F7F8FE;} + .d2-49621034 .fill-AB4{fill:#EDF0FD;} + .d2-49621034 .fill-AB5{fill:#F7F8FE;} + .d2-49621034 .stroke-N1{stroke:#0A0F25;} + .d2-49621034 .stroke-N2{stroke:#676C7E;} + .d2-49621034 .stroke-N3{stroke:#9499AB;} + .d2-49621034 .stroke-N4{stroke:#CFD2DD;} + .d2-49621034 .stroke-N5{stroke:#DEE1EB;} + .d2-49621034 .stroke-N6{stroke:#EEF1F8;} + .d2-49621034 .stroke-N7{stroke:#FFFFFF;} + .d2-49621034 .stroke-B1{stroke:#0D32B2;} + .d2-49621034 .stroke-B2{stroke:#0D32B2;} + .d2-49621034 .stroke-B3{stroke:#E3E9FD;} + .d2-49621034 .stroke-B4{stroke:#E3E9FD;} + .d2-49621034 .stroke-B5{stroke:#EDF0FD;} + .d2-49621034 .stroke-B6{stroke:#F7F8FE;} + .d2-49621034 .stroke-AA2{stroke:#4A6FF3;} + .d2-49621034 .stroke-AA4{stroke:#EDF0FD;} + .d2-49621034 .stroke-AA5{stroke:#F7F8FE;} + .d2-49621034 .stroke-AB4{stroke:#EDF0FD;} + .d2-49621034 .stroke-AB5{stroke:#F7F8FE;} + .d2-49621034 .background-color-N1{background-color:#0A0F25;} + .d2-49621034 .background-color-N2{background-color:#676C7E;} + .d2-49621034 .background-color-N3{background-color:#9499AB;} + .d2-49621034 .background-color-N4{background-color:#CFD2DD;} + .d2-49621034 .background-color-N5{background-color:#DEE1EB;} + .d2-49621034 .background-color-N6{background-color:#EEF1F8;} + .d2-49621034 .background-color-N7{background-color:#FFFFFF;} + .d2-49621034 .background-color-B1{background-color:#0D32B2;} + .d2-49621034 .background-color-B2{background-color:#0D32B2;} + .d2-49621034 .background-color-B3{background-color:#E3E9FD;} + .d2-49621034 .background-color-B4{background-color:#E3E9FD;} + .d2-49621034 .background-color-B5{background-color:#EDF0FD;} + .d2-49621034 .background-color-B6{background-color:#F7F8FE;} + .d2-49621034 .background-color-AA2{background-color:#4A6FF3;} + .d2-49621034 .background-color-AA4{background-color:#EDF0FD;} + .d2-49621034 .background-color-AA5{background-color:#F7F8FE;} + .d2-49621034 .background-color-AB4{background-color:#EDF0FD;} + .d2-49621034 .background-color-AB5{background-color:#F7F8FE;} + .d2-49621034 .color-N1{color:#0A0F25;} + .d2-49621034 .color-N2{color:#676C7E;} + .d2-49621034 .color-N3{color:#9499AB;} + .d2-49621034 .color-N4{color:#CFD2DD;} + .d2-49621034 .color-N5{color:#DEE1EB;} + .d2-49621034 .color-N6{color:#EEF1F8;} + .d2-49621034 .color-N7{color:#FFFFFF;} + .d2-49621034 .color-B1{color:#0D32B2;} + .d2-49621034 .color-B2{color:#0D32B2;} + .d2-49621034 .color-B3{color:#E3E9FD;} + .d2-49621034 .color-B4{color:#E3E9FD;} + .d2-49621034 .color-B5{color:#EDF0FD;} + .d2-49621034 .color-B6{color:#F7F8FE;} + .d2-49621034 .color-AA2{color:#4A6FF3;} + .d2-49621034 .color-AA4{color:#EDF0FD;} + .d2-49621034 .color-AA5{color:#F7F8FE;} + .d2-49621034 .color-AB4{color:#EDF0FD;} + .d2-49621034 .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}]]>networkuserapi serverlogscell towerONLINE PORTALLLLdata processorsatellitestransmitteruistorage sendsendsendphone logsmake call accessdisplaypersist + + + + + + + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/executive_grid/dagre/board.exp.json b/e2etests/testdata/stable/executive_grid/dagre/board.exp.json new file mode 100644 index 000000000..6ec7a989f --- /dev/null +++ b/e2etests/testdata/stable/executive_grid/dagre/board.exp.json @@ -0,0 +1,458 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "Executive Services", + "type": "rectangle", + "pos": { + "x": 0, + "y": 0 + }, + "width": 1080, + "height": 61, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Executive Services", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 131, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"I/O\\nManager\"", + "type": "rectangle", + "pos": { + "x": 0, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "I/O\nManager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"Security\\nReference\\nMonitor\"", + "type": "rectangle", + "pos": { + "x": 140, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Security\nReference\nMonitor", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 72, + "labelHeight": 53, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"IPC\\nManager\"", + "type": "rectangle", + "pos": { + "x": 280, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "IPC\nManager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"Virtual\\nMemory\\nManager\\n(VMM)\"", + "type": "rectangle", + "pos": { + "x": 420, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Virtual\nMemory\nManager\n(VMM)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 64, + "labelHeight": 69, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"Process\\nManager\"", + "type": "rectangle", + "pos": { + "x": 560, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Process\nManager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"PnP\\nManager\"", + "type": "rectangle", + "pos": { + "x": 700, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "PnP\nManager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"Power\\nManager\"", + "type": "rectangle", + "pos": { + "x": 840, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Power\nManager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"Window\\nManager\\n\\nGDI\"", + "type": "rectangle", + "pos": { + "x": 980, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Window\nManager\n\nGDI", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 63, + "labelHeight": 69, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "Object Manager", + "type": "rectangle", + "pos": { + "x": 0, + "y": 341 + }, + "width": 1080, + "height": 61, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Object Manager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 112, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/executive_grid/dagre/sketch.exp.svg b/e2etests/testdata/stable/executive_grid/dagre/sketch.exp.svg new file mode 100644 index 000000000..8b27b5168 --- /dev/null +++ b/e2etests/testdata/stable/executive_grid/dagre/sketch.exp.svg @@ -0,0 +1,95 @@ +Executive ServicesI/OManagerSecurityReferenceMonitorIPCManagerVirtualMemoryManager(VMM)ProcessManagerPnPManagerPowerManagerWindowManager GDIObject Manager + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/executive_grid/elk/board.exp.json b/e2etests/testdata/stable/executive_grid/elk/board.exp.json new file mode 100644 index 000000000..6ec7a989f --- /dev/null +++ b/e2etests/testdata/stable/executive_grid/elk/board.exp.json @@ -0,0 +1,458 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "Executive Services", + "type": "rectangle", + "pos": { + "x": 0, + "y": 0 + }, + "width": 1080, + "height": 61, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Executive Services", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 131, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"I/O\\nManager\"", + "type": "rectangle", + "pos": { + "x": 0, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "I/O\nManager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"Security\\nReference\\nMonitor\"", + "type": "rectangle", + "pos": { + "x": 140, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Security\nReference\nMonitor", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 72, + "labelHeight": 53, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"IPC\\nManager\"", + "type": "rectangle", + "pos": { + "x": 280, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "IPC\nManager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"Virtual\\nMemory\\nManager\\n(VMM)\"", + "type": "rectangle", + "pos": { + "x": 420, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Virtual\nMemory\nManager\n(VMM)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 64, + "labelHeight": 69, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"Process\\nManager\"", + "type": "rectangle", + "pos": { + "x": 560, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Process\nManager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"PnP\\nManager\"", + "type": "rectangle", + "pos": { + "x": 700, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "PnP\nManager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"Power\\nManager\"", + "type": "rectangle", + "pos": { + "x": 840, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Power\nManager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"Window\\nManager\\n\\nGDI\"", + "type": "rectangle", + "pos": { + "x": 980, + "y": 101 + }, + "width": 100, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Window\nManager\n\nGDI", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 63, + "labelHeight": 69, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "Object Manager", + "type": "rectangle", + "pos": { + "x": 0, + "y": 341 + }, + "width": 1080, + "height": 61, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Object Manager", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 112, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/executive_grid/elk/sketch.exp.svg b/e2etests/testdata/stable/executive_grid/elk/sketch.exp.svg new file mode 100644 index 000000000..8b27b5168 --- /dev/null +++ b/e2etests/testdata/stable/executive_grid/elk/sketch.exp.svg @@ -0,0 +1,95 @@ +Executive ServicesI/OManagerSecurityReferenceMonitorIPCManagerVirtualMemoryManager(VMM)ProcessManagerPnPManagerPowerManagerWindowManager GDIObject Manager + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/grid_tests/dagre/board.exp.json b/e2etests/testdata/stable/grid_tests/dagre/board.exp.json new file mode 100644 index 000000000..15c3df149 --- /dev/null +++ b/e2etests/testdata/stable/grid_tests/dagre/board.exp.json @@ -0,0 +1,3738 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "rows 1", + "type": "rectangle", + "pos": { + "x": 0, + "y": 318 + }, + "width": 731, + "height": 186, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "rows 1", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 74, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "rows 1.a", + "type": "rectangle", + "pos": { + "x": 60, + "y": 378 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.b", + "type": "rectangle", + "pos": { + "x": 153, + "y": 378 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.c", + "type": "rectangle", + "pos": { + "x": 246, + "y": 378 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.d", + "type": "rectangle", + "pos": { + "x": 339, + "y": 378 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.e", + "type": "rectangle", + "pos": { + "x": 433, + "y": 378 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.f", + "type": "rectangle", + "pos": { + "x": 526, + "y": 378 + }, + "width": 51, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.g", + "type": "rectangle", + "pos": { + "x": 617, + "y": 378 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1", + "type": "rectangle", + "pos": { + "x": 791, + "y": 0 + }, + "width": 174, + "height": 822, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "columns 1", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 119, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "columns 1.a", + "type": "rectangle", + "pos": { + "x": 851, + "y": 60 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.b", + "type": "rectangle", + "pos": { + "x": 851, + "y": 166 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.c", + "type": "rectangle", + "pos": { + "x": 851, + "y": 272 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.d", + "type": "rectangle", + "pos": { + "x": 851, + "y": 378 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.e", + "type": "rectangle", + "pos": { + "x": 851, + "y": 484 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.f", + "type": "rectangle", + "pos": { + "x": 851, + "y": 590 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.g", + "type": "rectangle", + "pos": { + "x": 851, + "y": 696 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2", + "type": "rectangle", + "pos": { + "x": 1025, + "y": 265 + }, + "width": 452, + "height": 292, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "rows 2", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 74, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "rows 2.a", + "type": "rectangle", + "pos": { + "x": 1085, + "y": 325 + }, + "width": 84, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.b", + "type": "rectangle", + "pos": { + "x": 1209, + "y": 325 + }, + "width": 84, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.c", + "type": "rectangle", + "pos": { + "x": 1333, + "y": 325 + }, + "width": 84, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.d", + "type": "rectangle", + "pos": { + "x": 1085, + "y": 431 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.e", + "type": "rectangle", + "pos": { + "x": 1179, + "y": 431 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.f", + "type": "rectangle", + "pos": { + "x": 1272, + "y": 431 + }, + "width": 51, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.g", + "type": "rectangle", + "pos": { + "x": 1363, + "y": 431 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2", + "type": "rectangle", + "pos": { + "x": 1537, + "y": 159 + }, + "width": 268, + "height": 504, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "columns 2", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 119, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "columns 2.a", + "type": "rectangle", + "pos": { + "x": 1597, + "y": 219 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.b", + "type": "rectangle", + "pos": { + "x": 1597, + "y": 325 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.c", + "type": "rectangle", + "pos": { + "x": 1597, + "y": 431 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.d", + "type": "rectangle", + "pos": { + "x": 1597, + "y": 537 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.e", + "type": "rectangle", + "pos": { + "x": 1691, + "y": 219 + }, + "width": 54, + "height": 101, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.f", + "type": "rectangle", + "pos": { + "x": 1691, + "y": 360 + }, + "width": 54, + "height": 101, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.g", + "type": "rectangle", + "pos": { + "x": 1691, + "y": 501 + }, + "width": 54, + "height": 101, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2", + "type": "rectangle", + "pos": { + "x": 1865, + "y": 159 + }, + "width": 268, + "height": 504, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "rows 2 columns 2", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 200, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "rows 2 columns 2.a", + "type": "rectangle", + "pos": { + "x": 1925, + "y": 219 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.b", + "type": "rectangle", + "pos": { + "x": 2019, + "y": 219 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.c", + "type": "rectangle", + "pos": { + "x": 1925, + "y": 325 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.d", + "type": "rectangle", + "pos": { + "x": 2019, + "y": 325 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.e", + "type": "rectangle", + "pos": { + "x": 1925, + "y": 431 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.f", + "type": "rectangle", + "pos": { + "x": 2019, + "y": 431 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.g", + "type": "rectangle", + "pos": { + "x": 1925, + "y": 537 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2", + "type": "rectangle", + "pos": { + "x": 2193, + "y": 265 + }, + "width": 454, + "height": 292, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "columns 2 rows 2", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 201, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "columns 2 rows 2.a", + "type": "rectangle", + "pos": { + "x": 2253, + "y": 325 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.b", + "type": "rectangle", + "pos": { + "x": 2253, + "y": 431 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.c", + "type": "rectangle", + "pos": { + "x": 2346, + "y": 325 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.d", + "type": "rectangle", + "pos": { + "x": 2346, + "y": 431 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.e", + "type": "rectangle", + "pos": { + "x": 2440, + "y": 325 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.f", + "type": "rectangle", + "pos": { + "x": 2440, + "y": 431 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.g", + "type": "rectangle", + "pos": { + "x": 2533, + "y": 325 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3", + "type": "rectangle", + "pos": { + "x": 2707, + "y": 212 + }, + "width": 360, + "height": 398, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "rows 3 columns 3", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 200, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "rows 3 columns 3.a", + "type": "rectangle", + "pos": { + "x": 2767, + "y": 272 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.b", + "type": "rectangle", + "pos": { + "x": 2861, + "y": 272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.c", + "type": "rectangle", + "pos": { + "x": 2954, + "y": 272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.d", + "type": "rectangle", + "pos": { + "x": 2767, + "y": 378 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.e", + "type": "rectangle", + "pos": { + "x": 2861, + "y": 378 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.f", + "type": "rectangle", + "pos": { + "x": 2954, + "y": 378 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.g", + "type": "rectangle", + "pos": { + "x": 2767, + "y": 484 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3", + "type": "rectangle", + "pos": { + "x": 3127, + "y": 212 + }, + "width": 361, + "height": 398, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "columns 3 rows 3", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 201, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "columns 3 rows 3.a", + "type": "rectangle", + "pos": { + "x": 3187, + "y": 272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.b", + "type": "rectangle", + "pos": { + "x": 3187, + "y": 378 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.c", + "type": "rectangle", + "pos": { + "x": 3187, + "y": 484 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.d", + "type": "rectangle", + "pos": { + "x": 3280, + "y": 272 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.e", + "type": "rectangle", + "pos": { + "x": 3280, + "y": 378 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.f", + "type": "rectangle", + "pos": { + "x": 3280, + "y": 484 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.g", + "type": "rectangle", + "pos": { + "x": 3374, + "y": 272 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3", + "type": "rectangle", + "pos": { + "x": 3548, + "y": 212 + }, + "width": 359, + "height": 398, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "rows 3", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 74, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "rows 3.a", + "type": "rectangle", + "pos": { + "x": 3608, + "y": 272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.b", + "type": "rectangle", + "pos": { + "x": 3701, + "y": 272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.c", + "type": "rectangle", + "pos": { + "x": 3794, + "y": 272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.d", + "type": "rectangle", + "pos": { + "x": 3608, + "y": 378 + }, + "width": 99, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.e", + "type": "rectangle", + "pos": { + "x": 3747, + "y": 378 + }, + "width": 99, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.f", + "type": "rectangle", + "pos": { + "x": 3608, + "y": 484 + }, + "width": 99, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.g", + "type": "rectangle", + "pos": { + "x": 3747, + "y": 484 + }, + "width": 99, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3", + "type": "rectangle", + "pos": { + "x": 3967, + "y": 212 + }, + "width": 361, + "height": 398, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "columns 3", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 119, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "columns 3.a", + "type": "rectangle", + "pos": { + "x": 4027, + "y": 272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.b", + "type": "rectangle", + "pos": { + "x": 4027, + "y": 378 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.c", + "type": "rectangle", + "pos": { + "x": 4027, + "y": 484 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.d", + "type": "rectangle", + "pos": { + "x": 4120, + "y": 272 + }, + "width": 54, + "height": 119, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.e", + "type": "rectangle", + "pos": { + "x": 4120, + "y": 431 + }, + "width": 54, + "height": 119, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.f", + "type": "rectangle", + "pos": { + "x": 4214, + "y": 272 + }, + "width": 54, + "height": 119, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.g", + "type": "rectangle", + "pos": { + "x": 4214, + "y": 431 + }, + "width": 54, + "height": 119, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights", + "type": "rectangle", + "pos": { + "x": 4388, + "y": 28 + }, + "width": 886, + "height": 766, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "widths heights", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 171, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "widths heights.a w200", + "type": "rectangle", + "pos": { + "x": 4448, + "y": 88 + }, + "width": 200, + "height": 300, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a w200", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 49, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.b h300", + "type": "rectangle", + "pos": { + "x": 4688, + "y": 88 + }, + "width": 86, + "height": 300, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b h300", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 46, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.c", + "type": "rectangle", + "pos": { + "x": 4814, + "y": 88 + }, + "width": 400, + "height": 300, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.d h200", + "type": "rectangle", + "pos": { + "x": 4448, + "y": 428 + }, + "width": 200, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d h200", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 47, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.e", + "type": "rectangle", + "pos": { + "x": 4688, + "y": 428 + }, + "width": 86, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.f w400", + "type": "rectangle", + "pos": { + "x": 4814, + "y": 428 + }, + "width": 400, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f w400", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 46, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.g", + "type": "rectangle", + "pos": { + "x": 4448, + "y": 668 + }, + "width": 200, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.h", + "type": "rectangle", + "pos": { + "x": 4688, + "y": 668 + }, + "width": 86, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "h", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.i", + "type": "rectangle", + "pos": { + "x": 4814, + "y": 668 + }, + "width": 400, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "i", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 4, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + } + ], + "connections": [], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/grid_tests/dagre/sketch.exp.svg b/e2etests/testdata/stable/grid_tests/dagre/sketch.exp.svg new file mode 100644 index 000000000..4f6c4484f --- /dev/null +++ b/e2etests/testdata/stable/grid_tests/dagre/sketch.exp.svg @@ -0,0 +1,102 @@ +rows 1columns 1rows 2columns 2rows 2 columns 2columns 2 rows 2rows 3 columns 3columns 3 rows 3rows 3columns 3widths heightsabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefga w200b h300cd h200ef w400ghi + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/grid_tests/elk/board.exp.json b/e2etests/testdata/stable/grid_tests/elk/board.exp.json new file mode 100644 index 000000000..95b4c1c12 --- /dev/null +++ b/e2etests/testdata/stable/grid_tests/elk/board.exp.json @@ -0,0 +1,3738 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "rows 1", + "type": "rectangle", + "pos": { + "x": 12, + "y": 330 + }, + "width": 731, + "height": 186, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "rows 1", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 74, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "rows 1.a", + "type": "rectangle", + "pos": { + "x": 72, + "y": 390 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.b", + "type": "rectangle", + "pos": { + "x": 165, + "y": 390 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.c", + "type": "rectangle", + "pos": { + "x": 258, + "y": 390 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.d", + "type": "rectangle", + "pos": { + "x": 351, + "y": 390 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.e", + "type": "rectangle", + "pos": { + "x": 445, + "y": 390 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.f", + "type": "rectangle", + "pos": { + "x": 538, + "y": 390 + }, + "width": 51, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 1.g", + "type": "rectangle", + "pos": { + "x": 629, + "y": 390 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1", + "type": "rectangle", + "pos": { + "x": 763, + "y": 12 + }, + "width": 174, + "height": 822, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "columns 1", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 119, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "columns 1.a", + "type": "rectangle", + "pos": { + "x": 823, + "y": 72 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.b", + "type": "rectangle", + "pos": { + "x": 823, + "y": 178 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.c", + "type": "rectangle", + "pos": { + "x": 823, + "y": 284 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.d", + "type": "rectangle", + "pos": { + "x": 823, + "y": 390 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.e", + "type": "rectangle", + "pos": { + "x": 823, + "y": 496 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.f", + "type": "rectangle", + "pos": { + "x": 823, + "y": 602 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 1.g", + "type": "rectangle", + "pos": { + "x": 823, + "y": 708 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2", + "type": "rectangle", + "pos": { + "x": 957, + "y": 277 + }, + "width": 452, + "height": 292, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "rows 2", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 74, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "rows 2.a", + "type": "rectangle", + "pos": { + "x": 1017, + "y": 337 + }, + "width": 84, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.b", + "type": "rectangle", + "pos": { + "x": 1141, + "y": 337 + }, + "width": 84, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.c", + "type": "rectangle", + "pos": { + "x": 1265, + "y": 337 + }, + "width": 84, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.d", + "type": "rectangle", + "pos": { + "x": 1017, + "y": 443 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.e", + "type": "rectangle", + "pos": { + "x": 1111, + "y": 443 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.f", + "type": "rectangle", + "pos": { + "x": 1204, + "y": 443 + }, + "width": 51, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2.g", + "type": "rectangle", + "pos": { + "x": 1295, + "y": 443 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2", + "type": "rectangle", + "pos": { + "x": 1429, + "y": 171 + }, + "width": 268, + "height": 504, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "columns 2", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 119, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "columns 2.a", + "type": "rectangle", + "pos": { + "x": 1489, + "y": 231 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.b", + "type": "rectangle", + "pos": { + "x": 1489, + "y": 337 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.c", + "type": "rectangle", + "pos": { + "x": 1489, + "y": 443 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.d", + "type": "rectangle", + "pos": { + "x": 1489, + "y": 549 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.e", + "type": "rectangle", + "pos": { + "x": 1583, + "y": 231 + }, + "width": 54, + "height": 101, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.f", + "type": "rectangle", + "pos": { + "x": 1583, + "y": 372 + }, + "width": 54, + "height": 101, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2.g", + "type": "rectangle", + "pos": { + "x": 1583, + "y": 513 + }, + "width": 54, + "height": 101, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2", + "type": "rectangle", + "pos": { + "x": 1717, + "y": 171 + }, + "width": 268, + "height": 504, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "rows 2 columns 2", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 200, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "rows 2 columns 2.a", + "type": "rectangle", + "pos": { + "x": 1777, + "y": 231 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.b", + "type": "rectangle", + "pos": { + "x": 1871, + "y": 231 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.c", + "type": "rectangle", + "pos": { + "x": 1777, + "y": 337 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.d", + "type": "rectangle", + "pos": { + "x": 1871, + "y": 337 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.e", + "type": "rectangle", + "pos": { + "x": 1777, + "y": 443 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.f", + "type": "rectangle", + "pos": { + "x": 1871, + "y": 443 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 2 columns 2.g", + "type": "rectangle", + "pos": { + "x": 1777, + "y": 549 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2", + "type": "rectangle", + "pos": { + "x": 2005, + "y": 277 + }, + "width": 454, + "height": 292, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "columns 2 rows 2", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 201, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "columns 2 rows 2.a", + "type": "rectangle", + "pos": { + "x": 2065, + "y": 337 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.b", + "type": "rectangle", + "pos": { + "x": 2065, + "y": 443 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.c", + "type": "rectangle", + "pos": { + "x": 2158, + "y": 337 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.d", + "type": "rectangle", + "pos": { + "x": 2158, + "y": 443 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.e", + "type": "rectangle", + "pos": { + "x": 2252, + "y": 337 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.f", + "type": "rectangle", + "pos": { + "x": 2252, + "y": 443 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 2 rows 2.g", + "type": "rectangle", + "pos": { + "x": 2345, + "y": 337 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3", + "type": "rectangle", + "pos": { + "x": 2479, + "y": 224 + }, + "width": 360, + "height": 398, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "rows 3 columns 3", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 200, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "rows 3 columns 3.a", + "type": "rectangle", + "pos": { + "x": 2539, + "y": 284 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.b", + "type": "rectangle", + "pos": { + "x": 2633, + "y": 284 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.c", + "type": "rectangle", + "pos": { + "x": 2726, + "y": 284 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.d", + "type": "rectangle", + "pos": { + "x": 2539, + "y": 390 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.e", + "type": "rectangle", + "pos": { + "x": 2633, + "y": 390 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.f", + "type": "rectangle", + "pos": { + "x": 2726, + "y": 390 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3 columns 3.g", + "type": "rectangle", + "pos": { + "x": 2539, + "y": 496 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3", + "type": "rectangle", + "pos": { + "x": 2859, + "y": 224 + }, + "width": 361, + "height": 398, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "columns 3 rows 3", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 201, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "columns 3 rows 3.a", + "type": "rectangle", + "pos": { + "x": 2919, + "y": 284 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.b", + "type": "rectangle", + "pos": { + "x": 2919, + "y": 390 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.c", + "type": "rectangle", + "pos": { + "x": 2919, + "y": 496 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.d", + "type": "rectangle", + "pos": { + "x": 3012, + "y": 284 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.e", + "type": "rectangle", + "pos": { + "x": 3012, + "y": 390 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.f", + "type": "rectangle", + "pos": { + "x": 3012, + "y": 496 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3 rows 3.g", + "type": "rectangle", + "pos": { + "x": 3106, + "y": 284 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3", + "type": "rectangle", + "pos": { + "x": 3240, + "y": 224 + }, + "width": 359, + "height": 398, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "rows 3", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 74, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "rows 3.a", + "type": "rectangle", + "pos": { + "x": 3300, + "y": 284 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.b", + "type": "rectangle", + "pos": { + "x": 3393, + "y": 284 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.c", + "type": "rectangle", + "pos": { + "x": 3486, + "y": 284 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.d", + "type": "rectangle", + "pos": { + "x": 3300, + "y": 390 + }, + "width": 99, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.e", + "type": "rectangle", + "pos": { + "x": 3439, + "y": 390 + }, + "width": 99, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.f", + "type": "rectangle", + "pos": { + "x": 3300, + "y": 496 + }, + "width": 99, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "rows 3.g", + "type": "rectangle", + "pos": { + "x": 3439, + "y": 496 + }, + "width": 99, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3", + "type": "rectangle", + "pos": { + "x": 3619, + "y": 224 + }, + "width": 361, + "height": 398, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "columns 3", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 119, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "columns 3.a", + "type": "rectangle", + "pos": { + "x": 3679, + "y": 284 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.b", + "type": "rectangle", + "pos": { + "x": 3679, + "y": 390 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.c", + "type": "rectangle", + "pos": { + "x": 3679, + "y": 496 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.d", + "type": "rectangle", + "pos": { + "x": 3772, + "y": 284 + }, + "width": 54, + "height": 119, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.e", + "type": "rectangle", + "pos": { + "x": 3772, + "y": 443 + }, + "width": 54, + "height": 119, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.f", + "type": "rectangle", + "pos": { + "x": 3866, + "y": 284 + }, + "width": 54, + "height": 119, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 6, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "columns 3.g", + "type": "rectangle", + "pos": { + "x": 3866, + "y": 443 + }, + "width": 54, + "height": 119, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights", + "type": "rectangle", + "pos": { + "x": 4000, + "y": 40 + }, + "width": 886, + "height": 766, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "widths heights", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 171, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "widths heights.a w200", + "type": "rectangle", + "pos": { + "x": 4060, + "y": 100 + }, + "width": 200, + "height": 300, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a w200", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 49, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.b h300", + "type": "rectangle", + "pos": { + "x": 4300, + "y": 100 + }, + "width": 86, + "height": 300, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b h300", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 46, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.c", + "type": "rectangle", + "pos": { + "x": 4426, + "y": 100 + }, + "width": 400, + "height": 300, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.d h200", + "type": "rectangle", + "pos": { + "x": 4060, + "y": 440 + }, + "width": 200, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d h200", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 47, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.e", + "type": "rectangle", + "pos": { + "x": 4300, + "y": 440 + }, + "width": 86, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "e", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.f w400", + "type": "rectangle", + "pos": { + "x": 4426, + "y": 440 + }, + "width": 400, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "f w400", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 46, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.g", + "type": "rectangle", + "pos": { + "x": 4060, + "y": 680 + }, + "width": 200, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "g", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.h", + "type": "rectangle", + "pos": { + "x": 4300, + "y": 680 + }, + "width": 86, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "h", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "widths heights.i", + "type": "rectangle", + "pos": { + "x": 4426, + "y": 680 + }, + "width": 400, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "i", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 4, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + } + ], + "connections": [], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/grid_tests/elk/sketch.exp.svg b/e2etests/testdata/stable/grid_tests/elk/sketch.exp.svg new file mode 100644 index 000000000..f85853334 --- /dev/null +++ b/e2etests/testdata/stable/grid_tests/elk/sketch.exp.svg @@ -0,0 +1,102 @@ +rows 1columns 1rows 2columns 2rows 2 columns 2columns 2 rows 2rows 3 columns 3columns 3 rows 3rows 3columns 3widths heightsabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefga w200b h300cd h200ef w400ghi + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/legend_with_near_key/dagre/board.exp.json b/e2etests/testdata/stable/legend_with_near_key/dagre/board.exp.json new file mode 100644 index 000000000..1d2073df6 --- /dev/null +++ b/e2etests/testdata/stable/legend_with_near_key/dagre/board.exp.json @@ -0,0 +1,391 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "x", + "type": "rectangle", + "pos": { + "x": 0, + "y": 0 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "x", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "y", + "type": "rectangle", + "pos": { + "x": 153, + "y": 0 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "y", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "z", + "type": "rectangle", + "pos": { + "x": 307, + "y": 0 + }, + "width": 52, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "z", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 7, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "legend", + "type": "rectangle", + "pos": { + "x": 87, + "y": 122 + }, + "width": 184, + "height": 80, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "legend", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 77, + "labelHeight": 36, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "legend.color1", + "type": "text", + "pos": { + "x": 127, + "y": 151 + }, + "width": 22, + "height": 21, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "foo", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "green", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 22, + "labelHeight": 21, + "zIndex": 0, + "level": 2 + }, + { + "id": "legend.color2", + "type": "text", + "pos": { + "x": 209, + "y": 151 + }, + "width": 22, + "height": 21, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "red", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 22, + "labelHeight": 21, + "zIndex": 0, + "level": 2 + } + ], + "connections": [ + { + "id": "(x -> y)[0]", + "src": "x", + "srcArrow": "none", + "srcLabel": "", + "dst": "y", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "green", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 53, + "y": 33 + }, + { + "x": 93, + "y": 33 + }, + { + "x": 113, + "y": 33 + }, + { + "x": 153, + "y": 33 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(y -> z)[0]", + "src": "y", + "srcArrow": "none", + "srcLabel": "", + "dst": "z", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "red", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 207, + "y": 33 + }, + { + "x": 247, + "y": 33 + }, + { + "x": 267, + "y": 33 + }, + { + "x": 307, + "y": 33 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/legend_with_near_key/dagre/sketch.exp.svg b/e2etests/testdata/stable/legend_with_near_key/dagre/sketch.exp.svg new file mode 100644 index 000000000..0e1462716 --- /dev/null +++ b/e2etests/testdata/stable/legend_with_near_key/dagre/sketch.exp.svg @@ -0,0 +1,844 @@ +xyzlegendfoobar + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/legend_with_near_key/elk/board.exp.json b/e2etests/testdata/stable/legend_with_near_key/elk/board.exp.json new file mode 100644 index 000000000..e2e2ac59b --- /dev/null +++ b/e2etests/testdata/stable/legend_with_near_key/elk/board.exp.json @@ -0,0 +1,373 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "x", + "type": "rectangle", + "pos": { + "x": 12, + "y": 12 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "x", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "y", + "type": "rectangle", + "pos": { + "x": 135, + "y": 12 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "y", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "z", + "type": "rectangle", + "pos": { + "x": 259, + "y": 12 + }, + "width": 52, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "z", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 7, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "legend", + "type": "rectangle", + "pos": { + "x": 79, + "y": 98 + }, + "width": 164, + "height": 121, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "legend", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 77, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "legend.color1", + "type": "text", + "pos": { + "x": 129, + "y": 148 + }, + "width": 22, + "height": 21, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "foo", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "green", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 22, + "labelHeight": 21, + "zIndex": 0, + "level": 2 + }, + { + "id": "legend.color2", + "type": "text", + "pos": { + "x": 171, + "y": 148 + }, + "width": 22, + "height": 21, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "red", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 22, + "labelHeight": 21, + "zIndex": 0, + "level": 2 + } + ], + "connections": [ + { + "id": "(x -> y)[0]", + "src": "x", + "srcArrow": "none", + "srcLabel": "", + "dst": "y", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "green", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 65, + "y": 45 + }, + { + "x": 135, + "y": 45 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(y -> z)[0]", + "src": "y", + "srcArrow": "none", + "srcLabel": "", + "dst": "z", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "red", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 189, + "y": 45 + }, + { + "x": 259, + "y": 45 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/legend_with_near_key/elk/sketch.exp.svg b/e2etests/testdata/stable/legend_with_near_key/elk/sketch.exp.svg new file mode 100644 index 000000000..5073ac79e --- /dev/null +++ b/e2etests/testdata/stable/legend_with_near_key/elk/sketch.exp.svg @@ -0,0 +1,844 @@ +xyzlegendfoobar + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/mono-font/dagre/board.exp.json b/e2etests/testdata/stable/mono-font/dagre/board.exp.json index 81f339d09..26858d406 100644 --- a/e2etests/testdata/stable/mono-font/dagre/board.exp.json +++ b/e2etests/testdata/stable/mono-font/dagre/board.exp.json @@ -7,7 +7,7 @@ "id": "satellites", "type": "stored_data", "pos": { - "x": 0, + "x": 27, "y": 0 }, "width": 161, @@ -48,7 +48,7 @@ "id": "transmitter", "type": "rectangle", "pos": { - "x": 5, + "x": 32, "y": 187 }, "width": 151, @@ -114,19 +114,19 @@ "labelPercentage": 0, "route": [ { - "x": 60, + "x": 79, "y": 66 }, { - "x": 30, + "x": 39, "y": 114.4 }, { - "x": 30.1, + "x": 39, "y": 138.7 }, { - "x": 60.5, + "x": 79, "y": 187.5 } ], @@ -163,19 +163,19 @@ "labelPercentage": 0, "route": [ { - "x": 80, + "x": 107, "y": 66 }, { - "x": 80.4, + "x": 107, "y": 114.4 }, { - "x": 80.5, + "x": 107, "y": 138.7 }, { - "x": 80.5, + "x": 107, "y": 187.5 } ], @@ -212,19 +212,19 @@ "labelPercentage": 0, "route": [ { - "x": 101, + "x": 135, "y": 66 }, { - "x": 131, + "x": 175, "y": 114.4 }, { - "x": 130.9, + "x": 175, "y": 138.7 }, { - "x": 100.5, + "x": 135, "y": 187.5 } ], diff --git a/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg b/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg index ce9247380..3a7b425a7 100644 --- a/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg @@ -1,16 +1,16 @@ -SATELLITESTRANSMITTER SENDSENDSEND - - - - + .d2-1620692864 .fill-N1{fill:#0A0F25;} + .d2-1620692864 .fill-N2{fill:#676C7E;} + .d2-1620692864 .fill-N3{fill:#9499AB;} + .d2-1620692864 .fill-N4{fill:#CFD2DD;} + .d2-1620692864 .fill-N5{fill:#DEE1EB;} + .d2-1620692864 .fill-N6{fill:#EEF1F8;} + .d2-1620692864 .fill-N7{fill:#FFFFFF;} + .d2-1620692864 .fill-B1{fill:#0D32B2;} + .d2-1620692864 .fill-B2{fill:#0D32B2;} + .d2-1620692864 .fill-B3{fill:#E3E9FD;} + .d2-1620692864 .fill-B4{fill:#E3E9FD;} + .d2-1620692864 .fill-B5{fill:#EDF0FD;} + .d2-1620692864 .fill-B6{fill:#F7F8FE;} + .d2-1620692864 .fill-AA2{fill:#4A6FF3;} + .d2-1620692864 .fill-AA4{fill:#EDF0FD;} + .d2-1620692864 .fill-AA5{fill:#F7F8FE;} + .d2-1620692864 .fill-AB4{fill:#EDF0FD;} + .d2-1620692864 .fill-AB5{fill:#F7F8FE;} + .d2-1620692864 .stroke-N1{stroke:#0A0F25;} + .d2-1620692864 .stroke-N2{stroke:#676C7E;} + .d2-1620692864 .stroke-N3{stroke:#9499AB;} + .d2-1620692864 .stroke-N4{stroke:#CFD2DD;} + .d2-1620692864 .stroke-N5{stroke:#DEE1EB;} + .d2-1620692864 .stroke-N6{stroke:#EEF1F8;} + .d2-1620692864 .stroke-N7{stroke:#FFFFFF;} + .d2-1620692864 .stroke-B1{stroke:#0D32B2;} + .d2-1620692864 .stroke-B2{stroke:#0D32B2;} + .d2-1620692864 .stroke-B3{stroke:#E3E9FD;} + .d2-1620692864 .stroke-B4{stroke:#E3E9FD;} + .d2-1620692864 .stroke-B5{stroke:#EDF0FD;} + .d2-1620692864 .stroke-B6{stroke:#F7F8FE;} + .d2-1620692864 .stroke-AA2{stroke:#4A6FF3;} + .d2-1620692864 .stroke-AA4{stroke:#EDF0FD;} + .d2-1620692864 .stroke-AA5{stroke:#F7F8FE;} + .d2-1620692864 .stroke-AB4{stroke:#EDF0FD;} + .d2-1620692864 .stroke-AB5{stroke:#F7F8FE;} + .d2-1620692864 .background-color-N1{background-color:#0A0F25;} + .d2-1620692864 .background-color-N2{background-color:#676C7E;} + .d2-1620692864 .background-color-N3{background-color:#9499AB;} + .d2-1620692864 .background-color-N4{background-color:#CFD2DD;} + .d2-1620692864 .background-color-N5{background-color:#DEE1EB;} + .d2-1620692864 .background-color-N6{background-color:#EEF1F8;} + .d2-1620692864 .background-color-N7{background-color:#FFFFFF;} + .d2-1620692864 .background-color-B1{background-color:#0D32B2;} + .d2-1620692864 .background-color-B2{background-color:#0D32B2;} + .d2-1620692864 .background-color-B3{background-color:#E3E9FD;} + .d2-1620692864 .background-color-B4{background-color:#E3E9FD;} + .d2-1620692864 .background-color-B5{background-color:#EDF0FD;} + .d2-1620692864 .background-color-B6{background-color:#F7F8FE;} + .d2-1620692864 .background-color-AA2{background-color:#4A6FF3;} + .d2-1620692864 .background-color-AA4{background-color:#EDF0FD;} + .d2-1620692864 .background-color-AA5{background-color:#F7F8FE;} + .d2-1620692864 .background-color-AB4{background-color:#EDF0FD;} + .d2-1620692864 .background-color-AB5{background-color:#F7F8FE;} + .d2-1620692864 .color-N1{color:#0A0F25;} + .d2-1620692864 .color-N2{color:#676C7E;} + .d2-1620692864 .color-N3{color:#9499AB;} + .d2-1620692864 .color-N4{color:#CFD2DD;} + .d2-1620692864 .color-N5{color:#DEE1EB;} + .d2-1620692864 .color-N6{color:#EEF1F8;} + .d2-1620692864 .color-N7{color:#FFFFFF;} + .d2-1620692864 .color-B1{color:#0D32B2;} + .d2-1620692864 .color-B2{color:#0D32B2;} + .d2-1620692864 .color-B3{color:#E3E9FD;} + .d2-1620692864 .color-B4{color:#E3E9FD;} + .d2-1620692864 .color-B5{color:#EDF0FD;} + .d2-1620692864 .color-B6{color:#F7F8FE;} + .d2-1620692864 .color-AA2{color:#4A6FF3;} + .d2-1620692864 .color-AA4{color:#EDF0FD;} + .d2-1620692864 .color-AA5{color:#F7F8FE;} + .d2-1620692864 .color-AB4{color:#EDF0FD;} + .d2-1620692864 .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}]]>SATELLITESTRANSMITTER SENDSENDSEND + + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/near_keys_for_container/dagre/board.exp.json b/e2etests/testdata/stable/near_keys_for_container/dagre/board.exp.json new file mode 100644 index 000000000..97329ee10 --- /dev/null +++ b/e2etests/testdata/stable/near_keys_for_container/dagre/board.exp.json @@ -0,0 +1,1245 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "z", + "type": "rectangle", + "pos": { + "x": -123, + "y": 56 + }, + "width": 247, + "height": 291, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "z", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 12, + "labelHeight": 36, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "z.a", + "type": "rectangle", + "pos": { + "x": -83, + "y": 85 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "z.b", + "type": "rectangle", + "pos": { + "x": -83, + "y": 251 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "z.c", + "type": "rectangle", + "pos": { + "x": 30, + "y": 85 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "z.d", + "type": "rectangle", + "pos": { + "x": 29, + "y": 251 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a", + "type": "rectangle", + "pos": { + "x": -86, + "y": -245 + }, + "width": 173, + "height": 225, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 12, + "labelHeight": 36, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "a.b", + "type": "rectangle", + "pos": { + "x": -66, + "y": -179 + }, + "width": 133, + "height": 130, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 12, + "labelHeight": 31, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a.b.c", + "type": "rectangle", + "pos": { + "x": -26, + "y": -147 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "x", + "type": "rectangle", + "pos": { + "x": -390, + "y": -311 + }, + "width": 247, + "height": 291, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "x", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 13, + "labelHeight": 36, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "x.a", + "type": "rectangle", + "pos": { + "x": -350, + "y": -281 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "x.b", + "type": "rectangle", + "pos": { + "x": -350, + "y": -115 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "x.c", + "type": "rectangle", + "pos": { + "x": -236, + "y": -281 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "x.d", + "type": "rectangle", + "pos": { + "x": -237, + "y": -115 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "y", + "type": "rectangle", + "pos": { + "x": 143, + "y": -311 + }, + "width": 247, + "height": 291, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "y", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 13, + "labelHeight": 36, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "y.a", + "type": "rectangle", + "pos": { + "x": 183, + "y": -281 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "y.b", + "type": "rectangle", + "pos": { + "x": 183, + "y": -115 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "y.c", + "type": "rectangle", + "pos": { + "x": 297, + "y": -281 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "y.d", + "type": "rectangle", + "pos": { + "x": 296, + "y": -115 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "b", + "type": "rectangle", + "pos": { + "x": 143, + "y": 56 + }, + "width": 214, + "height": 325, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 13, + "labelHeight": 36, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "b.a", + "type": "rectangle", + "pos": { + "x": 163, + "y": 121 + }, + "width": 174, + "height": 230, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 10, + "labelHeight": 31, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "b.a.c", + "type": "rectangle", + "pos": { + "x": 183, + "y": 184 + }, + "width": 134, + "height": 135, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 9, + "labelHeight": 26, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "b.a.c.d", + "type": "rectangle", + "pos": { + "x": 223, + "y": 219 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "N7", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 4 + } + ], + "connections": [ + { + "id": "z.(a -> b)[0]", + "src": "z.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "z.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": -57, + "y": 151.5 + }, + { + "x": -57, + "y": 191.5 + }, + { + "x": -57, + "y": 211.5 + }, + { + "x": -57, + "y": 251.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "z.(c -> d)[0]", + "src": "z.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "z.d", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 56.5, + "y": 151.5 + }, + { + "x": 56.5, + "y": 191.5 + }, + { + "x": 56.5, + "y": 211.5 + }, + { + "x": 56.5, + "y": 251.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "x.(a -> b)[0]", + "src": "x.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "x.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": -324, + "y": -215.5 + }, + { + "x": -324, + "y": -175.5 + }, + { + "x": -324, + "y": -155.5 + }, + { + "x": -324, + "y": -115.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "x.(c -> d)[0]", + "src": "x.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "x.d", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": -210.5, + "y": -215.5 + }, + { + "x": -210.5, + "y": -175.5 + }, + { + "x": -210.5, + "y": -155.5 + }, + { + "x": -210.5, + "y": -115.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "y.(a -> b)[0]", + "src": "y.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "y.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 210, + "y": -215.5 + }, + { + "x": 210, + "y": -175.5 + }, + { + "x": 210, + "y": -155.5 + }, + { + "x": 210, + "y": -115.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "y.(c -> d)[0]", + "src": "y.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "y.d", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 323.5, + "y": -215.5 + }, + { + "x": 323.5, + "y": -175.5 + }, + { + "x": 323.5, + "y": -155.5 + }, + { + "x": 323.5, + "y": -115.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/near_keys_for_container/dagre/sketch.exp.svg b/e2etests/testdata/stable/near_keys_for_container/dagre/sketch.exp.svg new file mode 100644 index 000000000..0074bee6b --- /dev/null +++ b/e2etests/testdata/stable/near_keys_for_container/dagre/sketch.exp.svg @@ -0,0 +1,102 @@ +zaxybabcdbabcdabcdaccd + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/near_keys_for_container/elk/board.exp.json b/e2etests/testdata/stable/near_keys_for_container/elk/board.exp.json new file mode 100644 index 000000000..942b0e639 --- /dev/null +++ b/e2etests/testdata/stable/near_keys_for_container/elk/board.exp.json @@ -0,0 +1,1191 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "z", + "type": "rectangle", + "pos": { + "x": -113, + "y": 20 + }, + "width": 227, + "height": 302, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "z", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 12, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "z.a", + "type": "rectangle", + "pos": { + "x": -63, + "y": 70 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "z.b", + "type": "rectangle", + "pos": { + "x": -63, + "y": 206 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "z.c", + "type": "rectangle", + "pos": { + "x": 10, + "y": 70 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "z.d", + "type": "rectangle", + "pos": { + "x": 9, + "y": 206 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a", + "type": "rectangle", + "pos": { + "x": -126, + "y": -286 + }, + "width": 253, + "height": 266, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 12, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "a.b", + "type": "rectangle", + "pos": { + "x": -76, + "y": -236 + }, + "width": 153, + "height": 166, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 12, + "labelHeight": 31, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a.b.c", + "type": "rectangle", + "pos": { + "x": -26, + "y": -186 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "x", + "type": "rectangle", + "pos": { + "x": -373, + "y": -322 + }, + "width": 227, + "height": 302, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "x", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 13, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "x.a", + "type": "rectangle", + "pos": { + "x": -323, + "y": -272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "x.b", + "type": "rectangle", + "pos": { + "x": -323, + "y": -136 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "x.c", + "type": "rectangle", + "pos": { + "x": -250, + "y": -272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "x.d", + "type": "rectangle", + "pos": { + "x": -250, + "y": -136 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "y", + "type": "rectangle", + "pos": { + "x": 146, + "y": -322 + }, + "width": 227, + "height": 302, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "y", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 13, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "y.a", + "type": "rectangle", + "pos": { + "x": 196, + "y": -272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "y.b", + "type": "rectangle", + "pos": { + "x": 196, + "y": -136 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "y.c", + "type": "rectangle", + "pos": { + "x": 270, + "y": -272 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "y.d", + "type": "rectangle", + "pos": { + "x": 269, + "y": -136 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "b", + "type": "rectangle", + "pos": { + "x": 146, + "y": 20 + }, + "width": 354, + "height": 366, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 13, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "b.a", + "type": "rectangle", + "pos": { + "x": 196, + "y": 70 + }, + "width": 254, + "height": 266, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 10, + "labelHeight": 31, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "b.a.c", + "type": "rectangle", + "pos": { + "x": 246, + "y": 120 + }, + "width": 154, + "height": 166, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "c", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 9, + "labelHeight": 26, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "b.a.c.d", + "type": "rectangle", + "pos": { + "x": 296, + "y": 170 + }, + "width": 54, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "N7", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "d", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 9, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 4 + } + ], + "connections": [ + { + "id": "z.(a -> b)[0]", + "src": "z.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "z.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": -37, + "y": 136 + }, + { + "x": -37, + "y": 206 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "z.(c -> d)[0]", + "src": "z.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "z.d", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 36.5, + "y": 136 + }, + { + "x": 36.5, + "y": 206 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "x.(a -> b)[0]", + "src": "x.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "x.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": -297, + "y": -206 + }, + { + "x": -297, + "y": -136 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "x.(c -> d)[0]", + "src": "x.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "x.d", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": -223.5, + "y": -206 + }, + { + "x": -223.5, + "y": -136 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "y.(a -> b)[0]", + "src": "y.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "y.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 223, + "y": -206 + }, + { + "x": 223, + "y": -136 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "y.(c -> d)[0]", + "src": "y.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "y.d", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 296.5, + "y": -206 + }, + { + "x": 296.5, + "y": -136 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/near_keys_for_container/elk/sketch.exp.svg b/e2etests/testdata/stable/near_keys_for_container/elk/sketch.exp.svg new file mode 100644 index 000000000..a6c4191ba --- /dev/null +++ b/e2etests/testdata/stable/near_keys_for_container/elk/sketch.exp.svg @@ -0,0 +1,102 @@ +zaxybabcdbabcdabcdaccd + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/self-referencing/dagre/board.exp.json b/e2etests/testdata/stable/self-referencing/dagre/board.exp.json index 400eed576..f0bffef02 100644 --- a/e2etests/testdata/stable/self-referencing/dagre/board.exp.json +++ b/e2etests/testdata/stable/self-referencing/dagre/board.exp.json @@ -48,7 +48,7 @@ "id": "y", "type": "rectangle", "pos": { - "x": 76, + "x": 96, "y": 166 }, "width": 54, @@ -89,7 +89,7 @@ "id": "z", "type": "rectangle", "pos": { - "x": 153, + "x": 193, "y": 0 }, "width": 52, @@ -156,55 +156,55 @@ "route": [ { "x": 53, - "y": 16.551724137931032 + "y": 18.38440111420613 }, { - "x": 74.33333333333333, - "y": 3.3103448275862064 + "x": 79.66666666666667, + "y": 3.676880222841225 }, { - "x": 81, + "x": 88, "y": 0 }, { - "x": 83, + "x": 90.5, "y": 0 }, { - "x": 85, + "x": 93, "y": 0 }, { - "x": 87.66666666666667, + "x": 96.33333333333333, "y": 6.6000000000000005 }, { - "x": 89.66666666666667, + "x": 98.83333333333333, "y": 16.5 }, { - "x": 91.66666666666667, + "x": 101.33333333333333, "y": 26.400000000000002 }, { - "x": 91.66666666666667, + "x": 101.33333333333333, "y": 39.6 }, { - "x": 89.66666666666667, + "x": 98.83333333333333, "y": 49.5 }, { - "x": 87.66666666666667, + "x": 96.33333333333333, "y": 59.400000000000006 }, { - "x": 74.33333333333333, - "y": 62.689655172413794 + "x": 79.66666666666667, + "y": 62.32311977715877 }, { "x": 53, - "y": 49.44827586206897 + "y": 47.61559888579387 } ], "isCurve": true, @@ -241,55 +241,55 @@ "route": [ { "x": 53, - "y": 19.849624060150376 - }, - { - "x": 85, - "y": 3.969924812030074 - }, - { - "x": 95, - "y": 0 - }, - { - "x": 98, - "y": 0 + "y": 22.890173410404625 }, { "x": 101, + "y": 4.578034682080926 + }, + { + "x": 116, "y": 0 }, { - "x": 105, + "x": 120.5, + "y": 0 + }, + { + "x": 125, + "y": 0 + }, + { + "x": 131, "y": 6.6000000000000005 }, { - "x": 108, + "x": 135.5, "y": 16.5 }, { - "x": 111, + "x": 140, "y": 26.400000000000002 }, { - "x": 111, + "x": 140, "y": 39.6 }, { - "x": 108, + "x": 135.5, "y": 49.5 }, { - "x": 105, + "x": 131, "y": 59.400000000000006 }, { - "x": 85, - "y": 62.03007518796993 + "x": 101, + "y": 61.421965317919074 }, { "x": 53, - "y": 46.150375939849624 + "y": 43.10982658959537 } ], "isCurve": true, @@ -333,12 +333,12 @@ "y": 106 }, { - "x": 36.35, - "y": 126.72196721311475 + "x": 40.35, + "y": 127.94337662337662 }, { - "x": 75.75, - "y": 169.60983606557377 + "x": 95.75, + "y": 175.7168831168831 } ], "isCurve": true, @@ -374,20 +374,20 @@ "labelPercentage": 0, "route": [ { - "x": 179, + "x": 219, "y": 66 }, { - "x": 179, + "x": 219, "y": 106 }, { - "x": 169.2, - "y": 126.6 + "x": 205.2, + "y": 128 }, { - "x": 130, - "y": 169 + "x": 150, + "y": 176 } ], "isCurve": true, @@ -423,56 +423,56 @@ "labelPercentage": 0, "route": [ { - "x": 205, - "y": 19.523560209424083 + "x": 245, + "y": 19.52356020942409 }, { - "x": 235.13333333333333, - "y": 3.9047120418848156 + "x": 275.1333333333333, + "y": 3.9047120418848174 }, { - "x": 244.54999999999998, + "x": 284.55, "y": 0 }, { - "x": 247.375, + "x": 287.375, "y": 0 }, { - "x": 250.20000000000002, + "x": 290.2, "y": 0 }, { - "x": 253.96666666666667, + "x": 293.96666666666664, "y": 6.6000000000000005 }, { - "x": 256.7916666666667, + "x": 296.79166666666663, "y": 16.5 }, { - "x": 259.6166666666667, + "x": 299.6166666666667, "y": 26.400000000000002 }, { - "x": 259.6166666666667, + "x": 299.6166666666667, "y": 39.6 }, { - "x": 256.7916666666667, + "x": 296.79166666666663, "y": 49.5 }, { - "x": 253.96666666666667, + "x": 293.96666666666664, "y": 59.400000000000006 }, { - "x": 235.13333333333333, - "y": 62.095287958115186 + "x": 275.1333333333333, + "y": 62.09528795811518 }, { - "x": 205, - "y": 46.47643979057592 + "x": 245, + "y": 46.47643979057591 } ], "isCurve": true, diff --git a/e2etests/testdata/stable/self-referencing/dagre/sketch.exp.svg b/e2etests/testdata/stable/self-referencing/dagre/sketch.exp.svg index f20e33297..57476f28f 100644 --- a/e2etests/testdata/stable/self-referencing/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/self-referencing/dagre/sketch.exp.svg @@ -1,16 +1,16 @@ -xyz hello - - + .d2-4144856773 .fill-N1{fill:#0A0F25;} + .d2-4144856773 .fill-N2{fill:#676C7E;} + .d2-4144856773 .fill-N3{fill:#9499AB;} + .d2-4144856773 .fill-N4{fill:#CFD2DD;} + .d2-4144856773 .fill-N5{fill:#DEE1EB;} + .d2-4144856773 .fill-N6{fill:#EEF1F8;} + .d2-4144856773 .fill-N7{fill:#FFFFFF;} + .d2-4144856773 .fill-B1{fill:#0D32B2;} + .d2-4144856773 .fill-B2{fill:#0D32B2;} + .d2-4144856773 .fill-B3{fill:#E3E9FD;} + .d2-4144856773 .fill-B4{fill:#E3E9FD;} + .d2-4144856773 .fill-B5{fill:#EDF0FD;} + .d2-4144856773 .fill-B6{fill:#F7F8FE;} + .d2-4144856773 .fill-AA2{fill:#4A6FF3;} + .d2-4144856773 .fill-AA4{fill:#EDF0FD;} + .d2-4144856773 .fill-AA5{fill:#F7F8FE;} + .d2-4144856773 .fill-AB4{fill:#EDF0FD;} + .d2-4144856773 .fill-AB5{fill:#F7F8FE;} + .d2-4144856773 .stroke-N1{stroke:#0A0F25;} + .d2-4144856773 .stroke-N2{stroke:#676C7E;} + .d2-4144856773 .stroke-N3{stroke:#9499AB;} + .d2-4144856773 .stroke-N4{stroke:#CFD2DD;} + .d2-4144856773 .stroke-N5{stroke:#DEE1EB;} + .d2-4144856773 .stroke-N6{stroke:#EEF1F8;} + .d2-4144856773 .stroke-N7{stroke:#FFFFFF;} + .d2-4144856773 .stroke-B1{stroke:#0D32B2;} + .d2-4144856773 .stroke-B2{stroke:#0D32B2;} + .d2-4144856773 .stroke-B3{stroke:#E3E9FD;} + .d2-4144856773 .stroke-B4{stroke:#E3E9FD;} + .d2-4144856773 .stroke-B5{stroke:#EDF0FD;} + .d2-4144856773 .stroke-B6{stroke:#F7F8FE;} + .d2-4144856773 .stroke-AA2{stroke:#4A6FF3;} + .d2-4144856773 .stroke-AA4{stroke:#EDF0FD;} + .d2-4144856773 .stroke-AA5{stroke:#F7F8FE;} + .d2-4144856773 .stroke-AB4{stroke:#EDF0FD;} + .d2-4144856773 .stroke-AB5{stroke:#F7F8FE;} + .d2-4144856773 .background-color-N1{background-color:#0A0F25;} + .d2-4144856773 .background-color-N2{background-color:#676C7E;} + .d2-4144856773 .background-color-N3{background-color:#9499AB;} + .d2-4144856773 .background-color-N4{background-color:#CFD2DD;} + .d2-4144856773 .background-color-N5{background-color:#DEE1EB;} + .d2-4144856773 .background-color-N6{background-color:#EEF1F8;} + .d2-4144856773 .background-color-N7{background-color:#FFFFFF;} + .d2-4144856773 .background-color-B1{background-color:#0D32B2;} + .d2-4144856773 .background-color-B2{background-color:#0D32B2;} + .d2-4144856773 .background-color-B3{background-color:#E3E9FD;} + .d2-4144856773 .background-color-B4{background-color:#E3E9FD;} + .d2-4144856773 .background-color-B5{background-color:#EDF0FD;} + .d2-4144856773 .background-color-B6{background-color:#F7F8FE;} + .d2-4144856773 .background-color-AA2{background-color:#4A6FF3;} + .d2-4144856773 .background-color-AA4{background-color:#EDF0FD;} + .d2-4144856773 .background-color-AA5{background-color:#F7F8FE;} + .d2-4144856773 .background-color-AB4{background-color:#EDF0FD;} + .d2-4144856773 .background-color-AB5{background-color:#F7F8FE;} + .d2-4144856773 .color-N1{color:#0A0F25;} + .d2-4144856773 .color-N2{color:#676C7E;} + .d2-4144856773 .color-N3{color:#9499AB;} + .d2-4144856773 .color-N4{color:#CFD2DD;} + .d2-4144856773 .color-N5{color:#DEE1EB;} + .d2-4144856773 .color-N6{color:#EEF1F8;} + .d2-4144856773 .color-N7{color:#FFFFFF;} + .d2-4144856773 .color-B1{color:#0D32B2;} + .d2-4144856773 .color-B2{color:#0D32B2;} + .d2-4144856773 .color-B3{color:#E3E9FD;} + .d2-4144856773 .color-B4{color:#E3E9FD;} + .d2-4144856773 .color-B5{color:#EDF0FD;} + .d2-4144856773 .color-B6{color:#F7F8FE;} + .d2-4144856773 .color-AA2{color:#4A6FF3;} + .d2-4144856773 .color-AA4{color:#EDF0FD;} + .d2-4144856773 .color-AA5{color:#F7F8FE;} + .d2-4144856773 .color-AB4{color:#EDF0FD;} + .d2-4144856773 .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}]]>xyz hello + + \ No newline at end of file diff --git a/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/board.exp.json index ccb472b3b..fc722c210 100644 --- a/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/board.exp.json +++ b/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/board.exp.json @@ -1302,7 +1302,7 @@ "opacity": 1, "strokeDash": 6, "strokeWidth": 2, - "stroke": "B2", + "stroke": "red", "borderRadius": 10, "label": "", "fontSize": 16, 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 7c63dcf9e..b25f099d6 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 @@ -1,9 +1,9 @@ -scoreritemResponseitemessayRubricconceptitemOutcome + .d2-2574879239 .fill-N1{fill:#0A0F25;} + .d2-2574879239 .fill-N2{fill:#676C7E;} + .d2-2574879239 .fill-N3{fill:#9499AB;} + .d2-2574879239 .fill-N4{fill:#CFD2DD;} + .d2-2574879239 .fill-N5{fill:#DEE1EB;} + .d2-2574879239 .fill-N6{fill:#EEF1F8;} + .d2-2574879239 .fill-N7{fill:#FFFFFF;} + .d2-2574879239 .fill-B1{fill:#0D32B2;} + .d2-2574879239 .fill-B2{fill:#0D32B2;} + .d2-2574879239 .fill-B3{fill:#E3E9FD;} + .d2-2574879239 .fill-B4{fill:#E3E9FD;} + .d2-2574879239 .fill-B5{fill:#EDF0FD;} + .d2-2574879239 .fill-B6{fill:#F7F8FE;} + .d2-2574879239 .fill-AA2{fill:#4A6FF3;} + .d2-2574879239 .fill-AA4{fill:#EDF0FD;} + .d2-2574879239 .fill-AA5{fill:#F7F8FE;} + .d2-2574879239 .fill-AB4{fill:#EDF0FD;} + .d2-2574879239 .fill-AB5{fill:#F7F8FE;} + .d2-2574879239 .stroke-N1{stroke:#0A0F25;} + .d2-2574879239 .stroke-N2{stroke:#676C7E;} + .d2-2574879239 .stroke-N3{stroke:#9499AB;} + .d2-2574879239 .stroke-N4{stroke:#CFD2DD;} + .d2-2574879239 .stroke-N5{stroke:#DEE1EB;} + .d2-2574879239 .stroke-N6{stroke:#EEF1F8;} + .d2-2574879239 .stroke-N7{stroke:#FFFFFF;} + .d2-2574879239 .stroke-B1{stroke:#0D32B2;} + .d2-2574879239 .stroke-B2{stroke:#0D32B2;} + .d2-2574879239 .stroke-B3{stroke:#E3E9FD;} + .d2-2574879239 .stroke-B4{stroke:#E3E9FD;} + .d2-2574879239 .stroke-B5{stroke:#EDF0FD;} + .d2-2574879239 .stroke-B6{stroke:#F7F8FE;} + .d2-2574879239 .stroke-AA2{stroke:#4A6FF3;} + .d2-2574879239 .stroke-AA4{stroke:#EDF0FD;} + .d2-2574879239 .stroke-AA5{stroke:#F7F8FE;} + .d2-2574879239 .stroke-AB4{stroke:#EDF0FD;} + .d2-2574879239 .stroke-AB5{stroke:#F7F8FE;} + .d2-2574879239 .background-color-N1{background-color:#0A0F25;} + .d2-2574879239 .background-color-N2{background-color:#676C7E;} + .d2-2574879239 .background-color-N3{background-color:#9499AB;} + .d2-2574879239 .background-color-N4{background-color:#CFD2DD;} + .d2-2574879239 .background-color-N5{background-color:#DEE1EB;} + .d2-2574879239 .background-color-N6{background-color:#EEF1F8;} + .d2-2574879239 .background-color-N7{background-color:#FFFFFF;} + .d2-2574879239 .background-color-B1{background-color:#0D32B2;} + .d2-2574879239 .background-color-B2{background-color:#0D32B2;} + .d2-2574879239 .background-color-B3{background-color:#E3E9FD;} + .d2-2574879239 .background-color-B4{background-color:#E3E9FD;} + .d2-2574879239 .background-color-B5{background-color:#EDF0FD;} + .d2-2574879239 .background-color-B6{background-color:#F7F8FE;} + .d2-2574879239 .background-color-AA2{background-color:#4A6FF3;} + .d2-2574879239 .background-color-AA4{background-color:#EDF0FD;} + .d2-2574879239 .background-color-AA5{background-color:#F7F8FE;} + .d2-2574879239 .background-color-AB4{background-color:#EDF0FD;} + .d2-2574879239 .background-color-AB5{background-color:#F7F8FE;} + .d2-2574879239 .color-N1{color:#0A0F25;} + .d2-2574879239 .color-N2{color:#676C7E;} + .d2-2574879239 .color-N3{color:#9499AB;} + .d2-2574879239 .color-N4{color:#CFD2DD;} + .d2-2574879239 .color-N5{color:#DEE1EB;} + .d2-2574879239 .color-N6{color:#EEF1F8;} + .d2-2574879239 .color-N7{color:#FFFFFF;} + .d2-2574879239 .color-B1{color:#0D32B2;} + .d2-2574879239 .color-B2{color:#0D32B2;} + .d2-2574879239 .color-B3{color:#E3E9FD;} + .d2-2574879239 .color-B4{color:#E3E9FD;} + .d2-2574879239 .color-B5{color:#EDF0FD;} + .d2-2574879239 .color-B6{color:#F7F8FE;} + .d2-2574879239 .color-AA2{color:#4A6FF3;} + .d2-2574879239 .color-AA4{color:#EDF0FD;} + .d2-2574879239 .color-AA5{color:#F7F8FE;} + .d2-2574879239 .color-AB4{color:#EDF0FD;} + .d2-2574879239 .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}]]>scoreritemResponseitemessayRubricconceptitemOutcome \ No newline at end of file diff --git a/e2etests/testdata/stable/sequence_diagram_nested_span/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_nested_span/elk/board.exp.json index ccb472b3b..fc722c210 100644 --- a/e2etests/testdata/stable/sequence_diagram_nested_span/elk/board.exp.json +++ b/e2etests/testdata/stable/sequence_diagram_nested_span/elk/board.exp.json @@ -1302,7 +1302,7 @@ "opacity": 1, "strokeDash": 6, "strokeWidth": 2, - "stroke": "B2", + "stroke": "red", "borderRadius": 10, "label": "", "fontSize": 16, diff --git a/e2etests/testdata/stable/sequence_diagram_nested_span/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_nested_span/elk/sketch.exp.svg index 7c63dcf9e..b25f099d6 100644 --- a/e2etests/testdata/stable/sequence_diagram_nested_span/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_nested_span/elk/sketch.exp.svg @@ -1,9 +1,9 @@ -scoreritemResponseitemessayRubricconceptitemOutcome + .d2-2574879239 .fill-N1{fill:#0A0F25;} + .d2-2574879239 .fill-N2{fill:#676C7E;} + .d2-2574879239 .fill-N3{fill:#9499AB;} + .d2-2574879239 .fill-N4{fill:#CFD2DD;} + .d2-2574879239 .fill-N5{fill:#DEE1EB;} + .d2-2574879239 .fill-N6{fill:#EEF1F8;} + .d2-2574879239 .fill-N7{fill:#FFFFFF;} + .d2-2574879239 .fill-B1{fill:#0D32B2;} + .d2-2574879239 .fill-B2{fill:#0D32B2;} + .d2-2574879239 .fill-B3{fill:#E3E9FD;} + .d2-2574879239 .fill-B4{fill:#E3E9FD;} + .d2-2574879239 .fill-B5{fill:#EDF0FD;} + .d2-2574879239 .fill-B6{fill:#F7F8FE;} + .d2-2574879239 .fill-AA2{fill:#4A6FF3;} + .d2-2574879239 .fill-AA4{fill:#EDF0FD;} + .d2-2574879239 .fill-AA5{fill:#F7F8FE;} + .d2-2574879239 .fill-AB4{fill:#EDF0FD;} + .d2-2574879239 .fill-AB5{fill:#F7F8FE;} + .d2-2574879239 .stroke-N1{stroke:#0A0F25;} + .d2-2574879239 .stroke-N2{stroke:#676C7E;} + .d2-2574879239 .stroke-N3{stroke:#9499AB;} + .d2-2574879239 .stroke-N4{stroke:#CFD2DD;} + .d2-2574879239 .stroke-N5{stroke:#DEE1EB;} + .d2-2574879239 .stroke-N6{stroke:#EEF1F8;} + .d2-2574879239 .stroke-N7{stroke:#FFFFFF;} + .d2-2574879239 .stroke-B1{stroke:#0D32B2;} + .d2-2574879239 .stroke-B2{stroke:#0D32B2;} + .d2-2574879239 .stroke-B3{stroke:#E3E9FD;} + .d2-2574879239 .stroke-B4{stroke:#E3E9FD;} + .d2-2574879239 .stroke-B5{stroke:#EDF0FD;} + .d2-2574879239 .stroke-B6{stroke:#F7F8FE;} + .d2-2574879239 .stroke-AA2{stroke:#4A6FF3;} + .d2-2574879239 .stroke-AA4{stroke:#EDF0FD;} + .d2-2574879239 .stroke-AA5{stroke:#F7F8FE;} + .d2-2574879239 .stroke-AB4{stroke:#EDF0FD;} + .d2-2574879239 .stroke-AB5{stroke:#F7F8FE;} + .d2-2574879239 .background-color-N1{background-color:#0A0F25;} + .d2-2574879239 .background-color-N2{background-color:#676C7E;} + .d2-2574879239 .background-color-N3{background-color:#9499AB;} + .d2-2574879239 .background-color-N4{background-color:#CFD2DD;} + .d2-2574879239 .background-color-N5{background-color:#DEE1EB;} + .d2-2574879239 .background-color-N6{background-color:#EEF1F8;} + .d2-2574879239 .background-color-N7{background-color:#FFFFFF;} + .d2-2574879239 .background-color-B1{background-color:#0D32B2;} + .d2-2574879239 .background-color-B2{background-color:#0D32B2;} + .d2-2574879239 .background-color-B3{background-color:#E3E9FD;} + .d2-2574879239 .background-color-B4{background-color:#E3E9FD;} + .d2-2574879239 .background-color-B5{background-color:#EDF0FD;} + .d2-2574879239 .background-color-B6{background-color:#F7F8FE;} + .d2-2574879239 .background-color-AA2{background-color:#4A6FF3;} + .d2-2574879239 .background-color-AA4{background-color:#EDF0FD;} + .d2-2574879239 .background-color-AA5{background-color:#F7F8FE;} + .d2-2574879239 .background-color-AB4{background-color:#EDF0FD;} + .d2-2574879239 .background-color-AB5{background-color:#F7F8FE;} + .d2-2574879239 .color-N1{color:#0A0F25;} + .d2-2574879239 .color-N2{color:#676C7E;} + .d2-2574879239 .color-N3{color:#9499AB;} + .d2-2574879239 .color-N4{color:#CFD2DD;} + .d2-2574879239 .color-N5{color:#DEE1EB;} + .d2-2574879239 .color-N6{color:#EEF1F8;} + .d2-2574879239 .color-N7{color:#FFFFFF;} + .d2-2574879239 .color-B1{color:#0D32B2;} + .d2-2574879239 .color-B2{color:#0D32B2;} + .d2-2574879239 .color-B3{color:#E3E9FD;} + .d2-2574879239 .color-B4{color:#E3E9FD;} + .d2-2574879239 .color-B5{color:#EDF0FD;} + .d2-2574879239 .color-B6{color:#F7F8FE;} + .d2-2574879239 .color-AA2{color:#4A6FF3;} + .d2-2574879239 .color-AA4{color:#EDF0FD;} + .d2-2574879239 .color-AA5{color:#F7F8FE;} + .d2-2574879239 .color-AB4{color:#EDF0FD;} + .d2-2574879239 .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}]]>scoreritemResponseitemessayRubricconceptitemOutcome \ No newline at end of file diff --git a/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json index f0397629b..b1f454427 100644 --- a/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json +++ b/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json @@ -621,7 +621,7 @@ "opacity": 1, "strokeDash": 6, "strokeWidth": 2, - "stroke": "B2", + "stroke": "red", "borderRadius": 10, "label": "", "fontSize": 16, 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 a8ef0c3b9..ff3e33125 100644 --- a/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg @@ -1,16 +1,16 @@ -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 credentials Authentication ResponseAnother authentication Requestdo it later storedAnother authentication Response + .d2-3170632497 .fill-N1{fill:#0A0F25;} + .d2-3170632497 .fill-N2{fill:#676C7E;} + .d2-3170632497 .fill-N3{fill:#9499AB;} + .d2-3170632497 .fill-N4{fill:#CFD2DD;} + .d2-3170632497 .fill-N5{fill:#DEE1EB;} + .d2-3170632497 .fill-N6{fill:#EEF1F8;} + .d2-3170632497 .fill-N7{fill:#FFFFFF;} + .d2-3170632497 .fill-B1{fill:#0D32B2;} + .d2-3170632497 .fill-B2{fill:#0D32B2;} + .d2-3170632497 .fill-B3{fill:#E3E9FD;} + .d2-3170632497 .fill-B4{fill:#E3E9FD;} + .d2-3170632497 .fill-B5{fill:#EDF0FD;} + .d2-3170632497 .fill-B6{fill:#F7F8FE;} + .d2-3170632497 .fill-AA2{fill:#4A6FF3;} + .d2-3170632497 .fill-AA4{fill:#EDF0FD;} + .d2-3170632497 .fill-AA5{fill:#F7F8FE;} + .d2-3170632497 .fill-AB4{fill:#EDF0FD;} + .d2-3170632497 .fill-AB5{fill:#F7F8FE;} + .d2-3170632497 .stroke-N1{stroke:#0A0F25;} + .d2-3170632497 .stroke-N2{stroke:#676C7E;} + .d2-3170632497 .stroke-N3{stroke:#9499AB;} + .d2-3170632497 .stroke-N4{stroke:#CFD2DD;} + .d2-3170632497 .stroke-N5{stroke:#DEE1EB;} + .d2-3170632497 .stroke-N6{stroke:#EEF1F8;} + .d2-3170632497 .stroke-N7{stroke:#FFFFFF;} + .d2-3170632497 .stroke-B1{stroke:#0D32B2;} + .d2-3170632497 .stroke-B2{stroke:#0D32B2;} + .d2-3170632497 .stroke-B3{stroke:#E3E9FD;} + .d2-3170632497 .stroke-B4{stroke:#E3E9FD;} + .d2-3170632497 .stroke-B5{stroke:#EDF0FD;} + .d2-3170632497 .stroke-B6{stroke:#F7F8FE;} + .d2-3170632497 .stroke-AA2{stroke:#4A6FF3;} + .d2-3170632497 .stroke-AA4{stroke:#EDF0FD;} + .d2-3170632497 .stroke-AA5{stroke:#F7F8FE;} + .d2-3170632497 .stroke-AB4{stroke:#EDF0FD;} + .d2-3170632497 .stroke-AB5{stroke:#F7F8FE;} + .d2-3170632497 .background-color-N1{background-color:#0A0F25;} + .d2-3170632497 .background-color-N2{background-color:#676C7E;} + .d2-3170632497 .background-color-N3{background-color:#9499AB;} + .d2-3170632497 .background-color-N4{background-color:#CFD2DD;} + .d2-3170632497 .background-color-N5{background-color:#DEE1EB;} + .d2-3170632497 .background-color-N6{background-color:#EEF1F8;} + .d2-3170632497 .background-color-N7{background-color:#FFFFFF;} + .d2-3170632497 .background-color-B1{background-color:#0D32B2;} + .d2-3170632497 .background-color-B2{background-color:#0D32B2;} + .d2-3170632497 .background-color-B3{background-color:#E3E9FD;} + .d2-3170632497 .background-color-B4{background-color:#E3E9FD;} + .d2-3170632497 .background-color-B5{background-color:#EDF0FD;} + .d2-3170632497 .background-color-B6{background-color:#F7F8FE;} + .d2-3170632497 .background-color-AA2{background-color:#4A6FF3;} + .d2-3170632497 .background-color-AA4{background-color:#EDF0FD;} + .d2-3170632497 .background-color-AA5{background-color:#F7F8FE;} + .d2-3170632497 .background-color-AB4{background-color:#EDF0FD;} + .d2-3170632497 .background-color-AB5{background-color:#F7F8FE;} + .d2-3170632497 .color-N1{color:#0A0F25;} + .d2-3170632497 .color-N2{color:#676C7E;} + .d2-3170632497 .color-N3{color:#9499AB;} + .d2-3170632497 .color-N4{color:#CFD2DD;} + .d2-3170632497 .color-N5{color:#DEE1EB;} + .d2-3170632497 .color-N6{color:#EEF1F8;} + .d2-3170632497 .color-N7{color:#FFFFFF;} + .d2-3170632497 .color-B1{color:#0D32B2;} + .d2-3170632497 .color-B2{color:#0D32B2;} + .d2-3170632497 .color-B3{color:#E3E9FD;} + .d2-3170632497 .color-B4{color:#E3E9FD;} + .d2-3170632497 .color-B5{color:#EDF0FD;} + .d2-3170632497 .color-B6{color:#F7F8FE;} + .d2-3170632497 .color-AA2{color:#4A6FF3;} + .d2-3170632497 .color-AA4{color:#EDF0FD;} + .d2-3170632497 .color-AA5{color:#F7F8FE;} + .d2-3170632497 .color-AB4{color:#EDF0FD;} + .d2-3170632497 .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}]]>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 credentials Authentication ResponseAnother authentication Requestdo it later storedAnother authentication Response diff --git a/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json index f0397629b..b1f454427 100644 --- a/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json +++ b/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json @@ -621,7 +621,7 @@ "opacity": 1, "strokeDash": 6, "strokeWidth": 2, - "stroke": "B2", + "stroke": "red", "borderRadius": 10, "label": "", "fontSize": 16, 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 a8ef0c3b9..ff3e33125 100644 --- a/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg @@ -1,16 +1,16 @@ -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 credentials Authentication ResponseAnother authentication Requestdo it later storedAnother authentication Response + .d2-3170632497 .fill-N1{fill:#0A0F25;} + .d2-3170632497 .fill-N2{fill:#676C7E;} + .d2-3170632497 .fill-N3{fill:#9499AB;} + .d2-3170632497 .fill-N4{fill:#CFD2DD;} + .d2-3170632497 .fill-N5{fill:#DEE1EB;} + .d2-3170632497 .fill-N6{fill:#EEF1F8;} + .d2-3170632497 .fill-N7{fill:#FFFFFF;} + .d2-3170632497 .fill-B1{fill:#0D32B2;} + .d2-3170632497 .fill-B2{fill:#0D32B2;} + .d2-3170632497 .fill-B3{fill:#E3E9FD;} + .d2-3170632497 .fill-B4{fill:#E3E9FD;} + .d2-3170632497 .fill-B5{fill:#EDF0FD;} + .d2-3170632497 .fill-B6{fill:#F7F8FE;} + .d2-3170632497 .fill-AA2{fill:#4A6FF3;} + .d2-3170632497 .fill-AA4{fill:#EDF0FD;} + .d2-3170632497 .fill-AA5{fill:#F7F8FE;} + .d2-3170632497 .fill-AB4{fill:#EDF0FD;} + .d2-3170632497 .fill-AB5{fill:#F7F8FE;} + .d2-3170632497 .stroke-N1{stroke:#0A0F25;} + .d2-3170632497 .stroke-N2{stroke:#676C7E;} + .d2-3170632497 .stroke-N3{stroke:#9499AB;} + .d2-3170632497 .stroke-N4{stroke:#CFD2DD;} + .d2-3170632497 .stroke-N5{stroke:#DEE1EB;} + .d2-3170632497 .stroke-N6{stroke:#EEF1F8;} + .d2-3170632497 .stroke-N7{stroke:#FFFFFF;} + .d2-3170632497 .stroke-B1{stroke:#0D32B2;} + .d2-3170632497 .stroke-B2{stroke:#0D32B2;} + .d2-3170632497 .stroke-B3{stroke:#E3E9FD;} + .d2-3170632497 .stroke-B4{stroke:#E3E9FD;} + .d2-3170632497 .stroke-B5{stroke:#EDF0FD;} + .d2-3170632497 .stroke-B6{stroke:#F7F8FE;} + .d2-3170632497 .stroke-AA2{stroke:#4A6FF3;} + .d2-3170632497 .stroke-AA4{stroke:#EDF0FD;} + .d2-3170632497 .stroke-AA5{stroke:#F7F8FE;} + .d2-3170632497 .stroke-AB4{stroke:#EDF0FD;} + .d2-3170632497 .stroke-AB5{stroke:#F7F8FE;} + .d2-3170632497 .background-color-N1{background-color:#0A0F25;} + .d2-3170632497 .background-color-N2{background-color:#676C7E;} + .d2-3170632497 .background-color-N3{background-color:#9499AB;} + .d2-3170632497 .background-color-N4{background-color:#CFD2DD;} + .d2-3170632497 .background-color-N5{background-color:#DEE1EB;} + .d2-3170632497 .background-color-N6{background-color:#EEF1F8;} + .d2-3170632497 .background-color-N7{background-color:#FFFFFF;} + .d2-3170632497 .background-color-B1{background-color:#0D32B2;} + .d2-3170632497 .background-color-B2{background-color:#0D32B2;} + .d2-3170632497 .background-color-B3{background-color:#E3E9FD;} + .d2-3170632497 .background-color-B4{background-color:#E3E9FD;} + .d2-3170632497 .background-color-B5{background-color:#EDF0FD;} + .d2-3170632497 .background-color-B6{background-color:#F7F8FE;} + .d2-3170632497 .background-color-AA2{background-color:#4A6FF3;} + .d2-3170632497 .background-color-AA4{background-color:#EDF0FD;} + .d2-3170632497 .background-color-AA5{background-color:#F7F8FE;} + .d2-3170632497 .background-color-AB4{background-color:#EDF0FD;} + .d2-3170632497 .background-color-AB5{background-color:#F7F8FE;} + .d2-3170632497 .color-N1{color:#0A0F25;} + .d2-3170632497 .color-N2{color:#676C7E;} + .d2-3170632497 .color-N3{color:#9499AB;} + .d2-3170632497 .color-N4{color:#CFD2DD;} + .d2-3170632497 .color-N5{color:#DEE1EB;} + .d2-3170632497 .color-N6{color:#EEF1F8;} + .d2-3170632497 .color-N7{color:#FFFFFF;} + .d2-3170632497 .color-B1{color:#0D32B2;} + .d2-3170632497 .color-B2{color:#0D32B2;} + .d2-3170632497 .color-B3{color:#E3E9FD;} + .d2-3170632497 .color-B4{color:#E3E9FD;} + .d2-3170632497 .color-B5{color:#EDF0FD;} + .d2-3170632497 .color-B6{color:#F7F8FE;} + .d2-3170632497 .color-AA2{color:#4A6FF3;} + .d2-3170632497 .color-AA4{color:#EDF0FD;} + .d2-3170632497 .color-AA5{color:#F7F8FE;} + .d2-3170632497 .color-AB4{color:#EDF0FD;} + .d2-3170632497 .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}]]>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 credentials Authentication ResponseAnother authentication Requestdo it later storedAnother authentication Response diff --git a/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json index b9e768aac..c51806b42 100644 --- a/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json +++ b/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json @@ -1672,11 +1672,11 @@ "width": 100, "height": 66, "opacity": 1, - "strokeDash": 0, + "strokeDash": 2, "strokeWidth": 2, "borderRadius": 0, "fill": "B5", - "stroke": "B1", + "stroke": "red", "shadow": false, "3d": false, "multiple": false, @@ -1714,7 +1714,7 @@ "height": 66, "opacity": 1, "strokeDash": 0, - "strokeWidth": 2, + "strokeWidth": 6, "borderRadius": 0, "fill": "B5", "stroke": "B1", @@ -4744,9 +4744,9 @@ "dstArrow": "none", "dstLabel": "", "opacity": 1, - "strokeDash": 6, + "strokeDash": 2, "strokeWidth": 2, - "stroke": "B2", + "stroke": "red", "borderRadius": 10, "label": "", "fontSize": 16, diff --git a/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg index 2cdbe42cc..e01a45c4a 100644 --- a/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg @@ -1,23 +1,23 @@ -a_shapea_sequenceanothersequencefinallyscoreritemResponseitemessayRubricconceptitemOutcomesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponse getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) + .d2-3948469414 .fill-N1{fill:#0A0F25;} + .d2-3948469414 .fill-N2{fill:#676C7E;} + .d2-3948469414 .fill-N3{fill:#9499AB;} + .d2-3948469414 .fill-N4{fill:#CFD2DD;} + .d2-3948469414 .fill-N5{fill:#DEE1EB;} + .d2-3948469414 .fill-N6{fill:#EEF1F8;} + .d2-3948469414 .fill-N7{fill:#FFFFFF;} + .d2-3948469414 .fill-B1{fill:#0D32B2;} + .d2-3948469414 .fill-B2{fill:#0D32B2;} + .d2-3948469414 .fill-B3{fill:#E3E9FD;} + .d2-3948469414 .fill-B4{fill:#E3E9FD;} + .d2-3948469414 .fill-B5{fill:#EDF0FD;} + .d2-3948469414 .fill-B6{fill:#F7F8FE;} + .d2-3948469414 .fill-AA2{fill:#4A6FF3;} + .d2-3948469414 .fill-AA4{fill:#EDF0FD;} + .d2-3948469414 .fill-AA5{fill:#F7F8FE;} + .d2-3948469414 .fill-AB4{fill:#EDF0FD;} + .d2-3948469414 .fill-AB5{fill:#F7F8FE;} + .d2-3948469414 .stroke-N1{stroke:#0A0F25;} + .d2-3948469414 .stroke-N2{stroke:#676C7E;} + .d2-3948469414 .stroke-N3{stroke:#9499AB;} + .d2-3948469414 .stroke-N4{stroke:#CFD2DD;} + .d2-3948469414 .stroke-N5{stroke:#DEE1EB;} + .d2-3948469414 .stroke-N6{stroke:#EEF1F8;} + .d2-3948469414 .stroke-N7{stroke:#FFFFFF;} + .d2-3948469414 .stroke-B1{stroke:#0D32B2;} + .d2-3948469414 .stroke-B2{stroke:#0D32B2;} + .d2-3948469414 .stroke-B3{stroke:#E3E9FD;} + .d2-3948469414 .stroke-B4{stroke:#E3E9FD;} + .d2-3948469414 .stroke-B5{stroke:#EDF0FD;} + .d2-3948469414 .stroke-B6{stroke:#F7F8FE;} + .d2-3948469414 .stroke-AA2{stroke:#4A6FF3;} + .d2-3948469414 .stroke-AA4{stroke:#EDF0FD;} + .d2-3948469414 .stroke-AA5{stroke:#F7F8FE;} + .d2-3948469414 .stroke-AB4{stroke:#EDF0FD;} + .d2-3948469414 .stroke-AB5{stroke:#F7F8FE;} + .d2-3948469414 .background-color-N1{background-color:#0A0F25;} + .d2-3948469414 .background-color-N2{background-color:#676C7E;} + .d2-3948469414 .background-color-N3{background-color:#9499AB;} + .d2-3948469414 .background-color-N4{background-color:#CFD2DD;} + .d2-3948469414 .background-color-N5{background-color:#DEE1EB;} + .d2-3948469414 .background-color-N6{background-color:#EEF1F8;} + .d2-3948469414 .background-color-N7{background-color:#FFFFFF;} + .d2-3948469414 .background-color-B1{background-color:#0D32B2;} + .d2-3948469414 .background-color-B2{background-color:#0D32B2;} + .d2-3948469414 .background-color-B3{background-color:#E3E9FD;} + .d2-3948469414 .background-color-B4{background-color:#E3E9FD;} + .d2-3948469414 .background-color-B5{background-color:#EDF0FD;} + .d2-3948469414 .background-color-B6{background-color:#F7F8FE;} + .d2-3948469414 .background-color-AA2{background-color:#4A6FF3;} + .d2-3948469414 .background-color-AA4{background-color:#EDF0FD;} + .d2-3948469414 .background-color-AA5{background-color:#F7F8FE;} + .d2-3948469414 .background-color-AB4{background-color:#EDF0FD;} + .d2-3948469414 .background-color-AB5{background-color:#F7F8FE;} + .d2-3948469414 .color-N1{color:#0A0F25;} + .d2-3948469414 .color-N2{color:#676C7E;} + .d2-3948469414 .color-N3{color:#9499AB;} + .d2-3948469414 .color-N4{color:#CFD2DD;} + .d2-3948469414 .color-N5{color:#DEE1EB;} + .d2-3948469414 .color-N6{color:#EEF1F8;} + .d2-3948469414 .color-N7{color:#FFFFFF;} + .d2-3948469414 .color-B1{color:#0D32B2;} + .d2-3948469414 .color-B2{color:#0D32B2;} + .d2-3948469414 .color-B3{color:#E3E9FD;} + .d2-3948469414 .color-B4{color:#E3E9FD;} + .d2-3948469414 .color-B5{color:#EDF0FD;} + .d2-3948469414 .color-B6{color:#F7F8FE;} + .d2-3948469414 .color-AA2{color:#4A6FF3;} + .d2-3948469414 .color-AA4{color:#EDF0FD;} + .d2-3948469414 .color-AA5{color:#F7F8FE;} + .d2-3948469414 .color-AB4{color:#EDF0FD;} + .d2-3948469414 .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}]]>a_shapea_sequenceanothersequencefinallyscoreritemResponseitemessayRubricconceptitemOutcomesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponse 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/board.exp.json b/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json index 4f32b4090..32d8460cf 100644 --- a/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json +++ b/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json @@ -1672,11 +1672,11 @@ "width": 100, "height": 66, "opacity": 1, - "strokeDash": 0, + "strokeDash": 2, "strokeWidth": 2, "borderRadius": 0, "fill": "B5", - "stroke": "B1", + "stroke": "red", "shadow": false, "3d": false, "multiple": false, @@ -1714,7 +1714,7 @@ "height": 66, "opacity": 1, "strokeDash": 0, - "strokeWidth": 2, + "strokeWidth": 6, "borderRadius": 0, "fill": "B5", "stroke": "B1", @@ -4655,9 +4655,9 @@ "dstArrow": "none", "dstLabel": "", "opacity": 1, - "strokeDash": 6, + "strokeDash": 2, "strokeWidth": 2, - "stroke": "B2", + "stroke": "red", "borderRadius": 10, "label": "", "fontSize": 16, diff --git a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg index d47ffb796..1c7cad7d9 100644 --- a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg @@ -1,23 +1,23 @@ -a_shapea_sequenceanothersequencefinallyscoreritemResponseitemessayRubricconceptitemOutcomesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponse getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) + .d2-1435012343 .fill-N1{fill:#0A0F25;} + .d2-1435012343 .fill-N2{fill:#676C7E;} + .d2-1435012343 .fill-N3{fill:#9499AB;} + .d2-1435012343 .fill-N4{fill:#CFD2DD;} + .d2-1435012343 .fill-N5{fill:#DEE1EB;} + .d2-1435012343 .fill-N6{fill:#EEF1F8;} + .d2-1435012343 .fill-N7{fill:#FFFFFF;} + .d2-1435012343 .fill-B1{fill:#0D32B2;} + .d2-1435012343 .fill-B2{fill:#0D32B2;} + .d2-1435012343 .fill-B3{fill:#E3E9FD;} + .d2-1435012343 .fill-B4{fill:#E3E9FD;} + .d2-1435012343 .fill-B5{fill:#EDF0FD;} + .d2-1435012343 .fill-B6{fill:#F7F8FE;} + .d2-1435012343 .fill-AA2{fill:#4A6FF3;} + .d2-1435012343 .fill-AA4{fill:#EDF0FD;} + .d2-1435012343 .fill-AA5{fill:#F7F8FE;} + .d2-1435012343 .fill-AB4{fill:#EDF0FD;} + .d2-1435012343 .fill-AB5{fill:#F7F8FE;} + .d2-1435012343 .stroke-N1{stroke:#0A0F25;} + .d2-1435012343 .stroke-N2{stroke:#676C7E;} + .d2-1435012343 .stroke-N3{stroke:#9499AB;} + .d2-1435012343 .stroke-N4{stroke:#CFD2DD;} + .d2-1435012343 .stroke-N5{stroke:#DEE1EB;} + .d2-1435012343 .stroke-N6{stroke:#EEF1F8;} + .d2-1435012343 .stroke-N7{stroke:#FFFFFF;} + .d2-1435012343 .stroke-B1{stroke:#0D32B2;} + .d2-1435012343 .stroke-B2{stroke:#0D32B2;} + .d2-1435012343 .stroke-B3{stroke:#E3E9FD;} + .d2-1435012343 .stroke-B4{stroke:#E3E9FD;} + .d2-1435012343 .stroke-B5{stroke:#EDF0FD;} + .d2-1435012343 .stroke-B6{stroke:#F7F8FE;} + .d2-1435012343 .stroke-AA2{stroke:#4A6FF3;} + .d2-1435012343 .stroke-AA4{stroke:#EDF0FD;} + .d2-1435012343 .stroke-AA5{stroke:#F7F8FE;} + .d2-1435012343 .stroke-AB4{stroke:#EDF0FD;} + .d2-1435012343 .stroke-AB5{stroke:#F7F8FE;} + .d2-1435012343 .background-color-N1{background-color:#0A0F25;} + .d2-1435012343 .background-color-N2{background-color:#676C7E;} + .d2-1435012343 .background-color-N3{background-color:#9499AB;} + .d2-1435012343 .background-color-N4{background-color:#CFD2DD;} + .d2-1435012343 .background-color-N5{background-color:#DEE1EB;} + .d2-1435012343 .background-color-N6{background-color:#EEF1F8;} + .d2-1435012343 .background-color-N7{background-color:#FFFFFF;} + .d2-1435012343 .background-color-B1{background-color:#0D32B2;} + .d2-1435012343 .background-color-B2{background-color:#0D32B2;} + .d2-1435012343 .background-color-B3{background-color:#E3E9FD;} + .d2-1435012343 .background-color-B4{background-color:#E3E9FD;} + .d2-1435012343 .background-color-B5{background-color:#EDF0FD;} + .d2-1435012343 .background-color-B6{background-color:#F7F8FE;} + .d2-1435012343 .background-color-AA2{background-color:#4A6FF3;} + .d2-1435012343 .background-color-AA4{background-color:#EDF0FD;} + .d2-1435012343 .background-color-AA5{background-color:#F7F8FE;} + .d2-1435012343 .background-color-AB4{background-color:#EDF0FD;} + .d2-1435012343 .background-color-AB5{background-color:#F7F8FE;} + .d2-1435012343 .color-N1{color:#0A0F25;} + .d2-1435012343 .color-N2{color:#676C7E;} + .d2-1435012343 .color-N3{color:#9499AB;} + .d2-1435012343 .color-N4{color:#CFD2DD;} + .d2-1435012343 .color-N5{color:#DEE1EB;} + .d2-1435012343 .color-N6{color:#EEF1F8;} + .d2-1435012343 .color-N7{color:#FFFFFF;} + .d2-1435012343 .color-B1{color:#0D32B2;} + .d2-1435012343 .color-B2{color:#0D32B2;} + .d2-1435012343 .color-B3{color:#E3E9FD;} + .d2-1435012343 .color-B4{color:#E3E9FD;} + .d2-1435012343 .color-B5{color:#EDF0FD;} + .d2-1435012343 .color-B6{color:#F7F8FE;} + .d2-1435012343 .color-AA2{color:#4A6FF3;} + .d2-1435012343 .color-AA4{color:#EDF0FD;} + .d2-1435012343 .color-AA5{color:#F7F8FE;} + .d2-1435012343 .color-AB4{color:#EDF0FD;} + .d2-1435012343 .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}]]>a_shapea_sequenceanothersequencefinallyscoreritemResponseitemessayRubricconceptitemOutcomesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponse 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/teleport_grid/dagre/board.exp.json b/e2etests/testdata/stable/teleport_grid/dagre/board.exp.json new file mode 100644 index 000000000..6b5f7d1ad --- /dev/null +++ b/e2etests/testdata/stable/teleport_grid/dagre/board.exp.json @@ -0,0 +1,1606 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "users", + "type": "rectangle", + "pos": { + "x": 0, + "y": 204 + }, + "width": 272, + "height": 461, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "via", + "type": "rectangle", + "pos": { + "x": 543, + "y": 130 + }, + "width": 236, + "height": 610, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "teleport", + "type": "rectangle", + "pos": { + "x": 1050, + "y": 283 + }, + "width": 473, + "height": 303, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Teleport", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 101, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "jita", + "type": "rectangle", + "pos": { + "x": 2025, + "y": 0 + }, + "width": 820, + "height": 212, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Just-in-time Access via", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 266, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "infra", + "type": "rectangle", + "pos": { + "x": 2144, + "y": 232 + }, + "width": 582, + "height": 344, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Infrastructure", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 160, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "identity provider", + "type": "rectangle", + "pos": { + "x": 2335, + "y": 596 + }, + "width": 201, + "height": 118, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/azure/Identity Service Color/Identity governance.svg", + "RawPath": "/azure%2FIdentity%20Service%20Color%2FIdentity%20governance.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Indentity Provider", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 130, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "users.Engineers", + "type": "oval", + "pos": { + "x": 60, + "y": 264 + }, + "width": 152, + "height": 152, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/essentials/365-user.svg", + "RawPath": "/essentials%2F365-user.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Engineers", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 69, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "users.Machines", + "type": "oval", + "pos": { + "x": 60, + "y": 456 + }, + "width": 152, + "height": 149, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/aws/Compute/Compute.svg", + "RawPath": "/aws%2FCompute%2FCompute.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Machines", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 66, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "via.https", + "type": "rectangle", + "pos": { + "x": 603, + "y": 190 + }, + "width": 116, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "HTTPS://", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "via.kubectl", + "type": "rectangle", + "pos": { + "x": 603, + "y": 296 + }, + "width": 116, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "> kubectl", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 66, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "via.tsh", + "type": "rectangle", + "pos": { + "x": 603, + "y": 402 + }, + "width": 116, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "> tsh", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 34, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "via.api", + "type": "rectangle", + "pos": { + "x": 603, + "y": 508 + }, + "width": 116, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "> api", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 34, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "via.db clients", + "type": "rectangle", + "pos": { + "x": 603, + "y": 614 + }, + "width": 116, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "DB Clients", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 71, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "teleport.inp", + "type": "text", + "pos": { + "x": 1110, + "y": 343 + }, + "width": 353, + "height": 51, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "# Identity Native Proxy", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 302, + "labelHeight": 51, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "teleport.Audit Log", + "type": "rectangle", + "pos": { + "x": 1110, + "y": 434 + }, + "width": 140, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/tech/laptop.svg", + "RawPath": "/tech%2Flaptop.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Audit Log", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 69, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "teleport.Cert Authority", + "type": "rectangle", + "pos": { + "x": 1290, + "y": 434 + }, + "width": 173, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/azure/Web Service Color/App Service Certificates.svg", + "RawPath": "/azure%2FWeb%20Service%20Color%2FApp%20Service%20Certificates.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Cert Authority", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 102, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "jita.Slack", + "type": "rectangle", + "pos": { + "x": 2085, + "y": 60 + }, + "width": 110, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/slack.svg", + "RawPath": "/dev%2Fslack.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Slack", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 39, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "jita.Mattermost", + "type": "rectangle", + "pos": { + "x": 2235, + "y": 60 + }, + "width": 128, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Mattermost", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 83, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "jita.Jira", + "type": "rectangle", + "pos": { + "x": 2403, + "y": 60 + }, + "width": 72, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Jira", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 27, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "jita.Pagerduty", + "type": "rectangle", + "pos": { + "x": 2515, + "y": 60 + }, + "width": 119, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Pagerduty", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 74, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "jita.Email", + "type": "rectangle", + "pos": { + "x": 2674, + "y": 60 + }, + "width": 111, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/aws/_General/AWS-Email_light-bg.svg", + "RawPath": "/aws%2F_General%2FAWS-Email_light-bg.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Email", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 40, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.ssh", + "type": "rectangle", + "pos": { + "x": 2204, + "y": 292 + }, + "width": 108, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/essentials/112-server.svg", + "RawPath": "/essentials%2F112-server.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "ssh", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 24, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.Kubernetes", + "type": "rectangle", + "pos": { + "x": 2352, + "y": 292 + }, + "width": 152, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/azure/_Companies/Kubernetes.svg", + "RawPath": "/azure%2F_Companies%2FKubernetes.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Kubernetes", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 81, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.My SQL", + "type": "rectangle", + "pos": { + "x": 2544, + "y": 292 + }, + "width": 122, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/mysql.svg", + "RawPath": "/dev%2Fmysql.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "My SQL", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 51, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.MongoDB", + "type": "rectangle", + "pos": { + "x": 2204, + "y": 424 + }, + "width": 138, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/mongodb.svg", + "RawPath": "/dev%2Fmongodb.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "MongoDB", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 67, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.PSQL", + "type": "rectangle", + "pos": { + "x": 2382, + "y": 424 + }, + "width": 108, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/postgresql.svg", + "RawPath": "/dev%2Fpostgresql.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "PSQL", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 37, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.Windows", + "type": "rectangle", + "pos": { + "x": 2530, + "y": 424 + }, + "width": 136, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/windows.svg", + "RawPath": "/dev%2Fwindows.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Windows", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 65, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + } + ], + "connections": [ + { + "id": "(users -- via)[0]", + "src": "users", + "srcArrow": "none", + "srcLabel": "", + "dst": "via", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 272, + "y": 434.5 + }, + { + "x": 380.4, + "y": 434.5 + }, + { + "x": 434.7, + "y": 434.5 + }, + { + "x": 543.5, + "y": 434.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(via -- teleport)[0]", + "src": "via", + "srcArrow": "none", + "srcLabel": "", + "dst": "teleport", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 779, + "y": 434.5 + }, + { + "x": 887.4, + "y": 434.5 + }, + { + "x": 941.7, + "y": 434.5 + }, + { + "x": 1050.5, + "y": 434.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(teleport -> jita)[0]", + "src": "teleport", + "srcArrow": "none", + "srcLabel": "", + "dst": "jita", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "all connections audited and logged", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 231, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1511.3287671232877, + "y": 283 + }, + { + "x": 1721.4657534246576, + "y": 141.4 + }, + { + "x": 1824.2, + "y": 106 + }, + { + "x": 2025, + "y": 106 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(teleport -> infra)[0]", + "src": "teleport", + "srcArrow": "none", + "srcLabel": "", + "dst": "infra", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1523, + "y": 419.70358974358976 + }, + { + "x": 1723.8, + "y": 407.14071794871796 + }, + { + "x": 1848, + "y": 404 + }, + { + "x": 2144, + "y": 404 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(teleport -> identity provider)[0]", + "src": "teleport", + "srcArrow": "none", + "srcLabel": "", + "dst": "identity provider", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1523, + "y": 495.38358974358977 + }, + { + "x": 1723.8, + "y": 547.0767179487179 + }, + { + "x": 1886.1, + "y": 576.1111951588503 + }, + { + "x": 2334.5, + "y": 640.5559757942511 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(teleport <- identity provider)[0]", + "src": "teleport", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "identity provider", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1523, + "y": 556.2671794871795 + }, + { + "x": 1723.8, + "y": 659.6534358974359 + }, + { + "x": 1886.1, + "y": 680.3274583963691 + }, + { + "x": 2334.5, + "y": 659.6372919818457 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg b/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg new file mode 100644 index 000000000..1d2b16607 --- /dev/null +++ b/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg @@ -0,0 +1,852 @@ +TeleportJust-in-time Access viaInfrastructureIndentity ProviderEngineersMachinesHTTPS://> kubectl> tsh> apiDB Clients

    Identity Native Proxy

    +
    Audit LogCert AuthoritySlackMattermostJiraPagerdutyEmailsshKubernetesMy SQLMongoDBPSQLWindows all connections audited and logged + + +
    \ No newline at end of file diff --git a/e2etests/testdata/stable/teleport_grid/elk/board.exp.json b/e2etests/testdata/stable/teleport_grid/elk/board.exp.json new file mode 100644 index 000000000..3c2b5f426 --- /dev/null +++ b/e2etests/testdata/stable/teleport_grid/elk/board.exp.json @@ -0,0 +1,1576 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "users", + "type": "rectangle", + "pos": { + "x": 12, + "y": 196 + }, + "width": 272, + "height": 461, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "via", + "type": "rectangle", + "pos": { + "x": 354, + "y": 122 + }, + "width": 236, + "height": 610, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "teleport", + "type": "rectangle", + "pos": { + "x": 660, + "y": 275 + }, + "width": 473, + "height": 303, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Teleport", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 101, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "jita", + "type": "rectangle", + "pos": { + "x": 1915, + "y": 12 + }, + "width": 820, + "height": 212, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Just-in-time Access via", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 266, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "infra", + "type": "rectangle", + "pos": { + "x": 1263, + "y": 150 + }, + "width": 582, + "height": 344, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Infrastructure", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 160, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "identity provider", + "type": "rectangle", + "pos": { + "x": 1263, + "y": 514 + }, + "width": 201, + "height": 118, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/azure/Identity Service Color/Identity governance.svg", + "RawPath": "/azure%2FIdentity%20Service%20Color%2FIdentity%20governance.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Indentity Provider", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 130, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "users.Engineers", + "type": "oval", + "pos": { + "x": 72, + "y": 256 + }, + "width": 152, + "height": 152, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/essentials/365-user.svg", + "RawPath": "/essentials%2F365-user.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Engineers", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 69, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "users.Machines", + "type": "oval", + "pos": { + "x": 72, + "y": 448 + }, + "width": 152, + "height": 149, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/aws/Compute/Compute.svg", + "RawPath": "/aws%2FCompute%2FCompute.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Machines", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 66, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "via.https", + "type": "rectangle", + "pos": { + "x": 414, + "y": 182 + }, + "width": 116, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "HTTPS://", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 62, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "via.kubectl", + "type": "rectangle", + "pos": { + "x": 414, + "y": 288 + }, + "width": 116, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "> kubectl", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 66, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "via.tsh", + "type": "rectangle", + "pos": { + "x": 414, + "y": 394 + }, + "width": 116, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "> tsh", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 34, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "via.api", + "type": "rectangle", + "pos": { + "x": 414, + "y": 500 + }, + "width": 116, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "> api", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 34, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "via.db clients", + "type": "rectangle", + "pos": { + "x": 414, + "y": 606 + }, + "width": 116, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "DB Clients", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 71, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "teleport.inp", + "type": "text", + "pos": { + "x": 720, + "y": 335 + }, + "width": 353, + "height": 51, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "# Identity Native Proxy", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 302, + "labelHeight": 51, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "teleport.Audit Log", + "type": "rectangle", + "pos": { + "x": 720, + "y": 426 + }, + "width": 140, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/tech/laptop.svg", + "RawPath": "/tech%2Flaptop.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Audit Log", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 69, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "teleport.Cert Authority", + "type": "rectangle", + "pos": { + "x": 900, + "y": 426 + }, + "width": 173, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/azure/Web Service Color/App Service Certificates.svg", + "RawPath": "/azure%2FWeb%20Service%20Color%2FApp%20Service%20Certificates.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Cert Authority", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 102, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "jita.Slack", + "type": "rectangle", + "pos": { + "x": 1975, + "y": 72 + }, + "width": 110, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/slack.svg", + "RawPath": "/dev%2Fslack.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Slack", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 39, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "jita.Mattermost", + "type": "rectangle", + "pos": { + "x": 2125, + "y": 72 + }, + "width": 128, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Mattermost", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 83, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "jita.Jira", + "type": "rectangle", + "pos": { + "x": 2293, + "y": 72 + }, + "width": 72, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Jira", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 27, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "jita.Pagerduty", + "type": "rectangle", + "pos": { + "x": 2405, + "y": 72 + }, + "width": 119, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Pagerduty", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 74, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "jita.Email", + "type": "rectangle", + "pos": { + "x": 2564, + "y": 72 + }, + "width": 111, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/aws/_General/AWS-Email_light-bg.svg", + "RawPath": "/aws%2F_General%2FAWS-Email_light-bg.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Email", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 40, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.ssh", + "type": "rectangle", + "pos": { + "x": 1323, + "y": 210 + }, + "width": 108, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/essentials/112-server.svg", + "RawPath": "/essentials%2F112-server.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "ssh", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 24, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.Kubernetes", + "type": "rectangle", + "pos": { + "x": 1471, + "y": 210 + }, + "width": 152, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/azure/_Companies/Kubernetes.svg", + "RawPath": "/azure%2F_Companies%2FKubernetes.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Kubernetes", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 81, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.My SQL", + "type": "rectangle", + "pos": { + "x": 1663, + "y": 210 + }, + "width": 122, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/mysql.svg", + "RawPath": "/dev%2Fmysql.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "My SQL", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 51, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.MongoDB", + "type": "rectangle", + "pos": { + "x": 1323, + "y": 342 + }, + "width": 138, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/mongodb.svg", + "RawPath": "/dev%2Fmongodb.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "MongoDB", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 67, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.PSQL", + "type": "rectangle", + "pos": { + "x": 1501, + "y": 342 + }, + "width": 108, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/postgresql.svg", + "RawPath": "/dev%2Fpostgresql.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "PSQL", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 37, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "infra.Windows", + "type": "rectangle", + "pos": { + "x": 1649, + "y": 342 + }, + "width": 136, + "height": 92, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "icons.terrastruct.com", + "Path": "/dev/windows.svg", + "RawPath": "/dev%2Fwindows.svg", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "INSIDE_MIDDLE_CENTER", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "Windows", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 65, + "labelHeight": 21, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + } + ], + "connections": [ + { + "id": "(users -- via)[0]", + "src": "users", + "srcArrow": "none", + "srcLabel": "", + "dst": "via", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 284, + "y": 427.0333333333333 + }, + { + "x": 354, + "y": 427.0333333333333 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(via -- teleport)[0]", + "src": "via", + "srcArrow": "none", + "srcLabel": "", + "dst": "teleport", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 590, + "y": 427.0333333333333 + }, + { + "x": 660, + "y": 427.0333333333333 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(teleport -> jita)[0]", + "src": "teleport", + "srcArrow": "none", + "srcLabel": "", + "dst": "jita", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "all connections audited and logged", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 231, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1133, + "y": 336.1333333333333 + }, + { + "x": 1173, + "y": 336.1333333333333 + }, + { + "x": 1173, + "y": 118 + }, + { + "x": 1915, + "y": 118 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(teleport -> infra)[0]", + "src": "teleport", + "srcArrow": "none", + "srcLabel": "", + "dst": "infra", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1133, + "y": 396.7333333333333 + }, + { + "x": 1263, + "y": 396.7333333333333 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(teleport -> identity provider)[0]", + "src": "teleport", + "srcArrow": "none", + "srcLabel": "", + "dst": "identity provider", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1133, + "y": 457.3333333333333 + }, + { + "x": 1223, + "y": 457.3333333333333 + }, + { + "x": 1223, + "y": 553.3333333333333 + }, + { + "x": 1263, + "y": 553.3333333333333 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(teleport <- identity provider)[0]", + "src": "teleport", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "identity provider", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1133, + "y": 517.9333333333333 + }, + { + "x": 1173, + "y": 517.9333333333333 + }, + { + "x": 1173, + "y": 592.6666666666666 + }, + { + "x": 1263, + "y": 592.6666666666666 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg b/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg new file mode 100644 index 000000000..f5b39beb8 --- /dev/null +++ b/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg @@ -0,0 +1,852 @@ +TeleportJust-in-time Access viaInfrastructureIndentity ProviderEngineersMachinesHTTPS://> kubectl> tsh> apiDB Clients

    Identity Native Proxy

    +
    Audit LogCert AuthoritySlackMattermostJiraPagerdutyEmailsshKubernetesMy SQLMongoDBPSQLWindows all connections audited and logged + + +
    \ No newline at end of file diff --git a/e2etests/testdata/stable/unnamed_only_height/dagre/board.exp.json b/e2etests/testdata/stable/unnamed_only_height/dagre/board.exp.json index 1be4fed8a..9deabdd80 100644 --- a/e2etests/testdata/stable/unnamed_only_height/dagre/board.exp.json +++ b/e2etests/testdata/stable/unnamed_only_height/dagre/board.exp.json @@ -4,7 +4,7 @@ "fontFamily": "SourceSansPro", "shapes": [ { - "id": "class", + "id": "class2", "type": "class", "pos": { "x": 0, @@ -385,8 +385,8 @@ ], "connections": [ { - "id": "(class -> users)[0]", - "src": "class", + "id": "(class2 -> users)[0]", + "src": "class2", "srcArrow": "none", "srcLabel": "", "dst": "users", diff --git a/e2etests/testdata/stable/unnamed_only_height/dagre/sketch.exp.svg b/e2etests/testdata/stable/unnamed_only_height/dagre/sketch.exp.svg index d0a958540..5a91a2d4d 100644 --- a/e2etests/testdata/stable/unnamed_only_height/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/unnamed_only_height/dagre/sketch.exp.svg @@ -1,23 +1,23 @@ --numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 + .d2-1865452115 .fill-N1{fill:#0A0F25;} + .d2-1865452115 .fill-N2{fill:#676C7E;} + .d2-1865452115 .fill-N3{fill:#9499AB;} + .d2-1865452115 .fill-N4{fill:#CFD2DD;} + .d2-1865452115 .fill-N5{fill:#DEE1EB;} + .d2-1865452115 .fill-N6{fill:#EEF1F8;} + .d2-1865452115 .fill-N7{fill:#FFFFFF;} + .d2-1865452115 .fill-B1{fill:#0D32B2;} + .d2-1865452115 .fill-B2{fill:#0D32B2;} + .d2-1865452115 .fill-B3{fill:#E3E9FD;} + .d2-1865452115 .fill-B4{fill:#E3E9FD;} + .d2-1865452115 .fill-B5{fill:#EDF0FD;} + .d2-1865452115 .fill-B6{fill:#F7F8FE;} + .d2-1865452115 .fill-AA2{fill:#4A6FF3;} + .d2-1865452115 .fill-AA4{fill:#EDF0FD;} + .d2-1865452115 .fill-AA5{fill:#F7F8FE;} + .d2-1865452115 .fill-AB4{fill:#EDF0FD;} + .d2-1865452115 .fill-AB5{fill:#F7F8FE;} + .d2-1865452115 .stroke-N1{stroke:#0A0F25;} + .d2-1865452115 .stroke-N2{stroke:#676C7E;} + .d2-1865452115 .stroke-N3{stroke:#9499AB;} + .d2-1865452115 .stroke-N4{stroke:#CFD2DD;} + .d2-1865452115 .stroke-N5{stroke:#DEE1EB;} + .d2-1865452115 .stroke-N6{stroke:#EEF1F8;} + .d2-1865452115 .stroke-N7{stroke:#FFFFFF;} + .d2-1865452115 .stroke-B1{stroke:#0D32B2;} + .d2-1865452115 .stroke-B2{stroke:#0D32B2;} + .d2-1865452115 .stroke-B3{stroke:#E3E9FD;} + .d2-1865452115 .stroke-B4{stroke:#E3E9FD;} + .d2-1865452115 .stroke-B5{stroke:#EDF0FD;} + .d2-1865452115 .stroke-B6{stroke:#F7F8FE;} + .d2-1865452115 .stroke-AA2{stroke:#4A6FF3;} + .d2-1865452115 .stroke-AA4{stroke:#EDF0FD;} + .d2-1865452115 .stroke-AA5{stroke:#F7F8FE;} + .d2-1865452115 .stroke-AB4{stroke:#EDF0FD;} + .d2-1865452115 .stroke-AB5{stroke:#F7F8FE;} + .d2-1865452115 .background-color-N1{background-color:#0A0F25;} + .d2-1865452115 .background-color-N2{background-color:#676C7E;} + .d2-1865452115 .background-color-N3{background-color:#9499AB;} + .d2-1865452115 .background-color-N4{background-color:#CFD2DD;} + .d2-1865452115 .background-color-N5{background-color:#DEE1EB;} + .d2-1865452115 .background-color-N6{background-color:#EEF1F8;} + .d2-1865452115 .background-color-N7{background-color:#FFFFFF;} + .d2-1865452115 .background-color-B1{background-color:#0D32B2;} + .d2-1865452115 .background-color-B2{background-color:#0D32B2;} + .d2-1865452115 .background-color-B3{background-color:#E3E9FD;} + .d2-1865452115 .background-color-B4{background-color:#E3E9FD;} + .d2-1865452115 .background-color-B5{background-color:#EDF0FD;} + .d2-1865452115 .background-color-B6{background-color:#F7F8FE;} + .d2-1865452115 .background-color-AA2{background-color:#4A6FF3;} + .d2-1865452115 .background-color-AA4{background-color:#EDF0FD;} + .d2-1865452115 .background-color-AA5{background-color:#F7F8FE;} + .d2-1865452115 .background-color-AB4{background-color:#EDF0FD;} + .d2-1865452115 .background-color-AB5{background-color:#F7F8FE;} + .d2-1865452115 .color-N1{color:#0A0F25;} + .d2-1865452115 .color-N2{color:#676C7E;} + .d2-1865452115 .color-N3{color:#9499AB;} + .d2-1865452115 .color-N4{color:#CFD2DD;} + .d2-1865452115 .color-N5{color:#DEE1EB;} + .d2-1865452115 .color-N6{color:#EEF1F8;} + .d2-1865452115 .color-N7{color:#FFFFFF;} + .d2-1865452115 .color-B1{color:#0D32B2;} + .d2-1865452115 .color-B2{color:#0D32B2;} + .d2-1865452115 .color-B3{color:#E3E9FD;} + .d2-1865452115 .color-B4{color:#E3E9FD;} + .d2-1865452115 .color-B5{color:#EDF0FD;} + .d2-1865452115 .color-B6{color:#F7F8FE;} + .d2-1865452115 .color-AA2{color:#4A6FF3;} + .d2-1865452115 .color-AA4{color:#EDF0FD;} + .d2-1865452115 .color-AA5{color:#F7F8FE;} + .d2-1865452115 .color-AB4{color:#EDF0FD;} + .d2-1865452115 .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}]]>-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 := a + 7 fmt.Printf("%d", b)a := 5 b := a + 7 -fmt.Printf("%d", b) +fmt.Printf("%d", b) \ No newline at end of file diff --git a/e2etests/testdata/stable/unnamed_only_height/elk/board.exp.json b/e2etests/testdata/stable/unnamed_only_height/elk/board.exp.json index f562eb5fb..5947ad5c2 100644 --- a/e2etests/testdata/stable/unnamed_only_height/elk/board.exp.json +++ b/e2etests/testdata/stable/unnamed_only_height/elk/board.exp.json @@ -4,7 +4,7 @@ "fontFamily": "SourceSansPro", "shapes": [ { - "id": "class", + "id": "class2", "type": "class", "pos": { "x": 12, @@ -385,8 +385,8 @@ ], "connections": [ { - "id": "(class -> users)[0]", - "src": "class", + "id": "(class2 -> users)[0]", + "src": "class2", "srcArrow": "none", "srcLabel": "", "dst": "users", diff --git a/e2etests/testdata/stable/unnamed_only_height/elk/sketch.exp.svg b/e2etests/testdata/stable/unnamed_only_height/elk/sketch.exp.svg index 1f5acbfd1..fb1242618 100644 --- a/e2etests/testdata/stable/unnamed_only_height/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/unnamed_only_height/elk/sketch.exp.svg @@ -1,23 +1,23 @@ --numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 + .d2-754102534 .fill-N1{fill:#0A0F25;} + .d2-754102534 .fill-N2{fill:#676C7E;} + .d2-754102534 .fill-N3{fill:#9499AB;} + .d2-754102534 .fill-N4{fill:#CFD2DD;} + .d2-754102534 .fill-N5{fill:#DEE1EB;} + .d2-754102534 .fill-N6{fill:#EEF1F8;} + .d2-754102534 .fill-N7{fill:#FFFFFF;} + .d2-754102534 .fill-B1{fill:#0D32B2;} + .d2-754102534 .fill-B2{fill:#0D32B2;} + .d2-754102534 .fill-B3{fill:#E3E9FD;} + .d2-754102534 .fill-B4{fill:#E3E9FD;} + .d2-754102534 .fill-B5{fill:#EDF0FD;} + .d2-754102534 .fill-B6{fill:#F7F8FE;} + .d2-754102534 .fill-AA2{fill:#4A6FF3;} + .d2-754102534 .fill-AA4{fill:#EDF0FD;} + .d2-754102534 .fill-AA5{fill:#F7F8FE;} + .d2-754102534 .fill-AB4{fill:#EDF0FD;} + .d2-754102534 .fill-AB5{fill:#F7F8FE;} + .d2-754102534 .stroke-N1{stroke:#0A0F25;} + .d2-754102534 .stroke-N2{stroke:#676C7E;} + .d2-754102534 .stroke-N3{stroke:#9499AB;} + .d2-754102534 .stroke-N4{stroke:#CFD2DD;} + .d2-754102534 .stroke-N5{stroke:#DEE1EB;} + .d2-754102534 .stroke-N6{stroke:#EEF1F8;} + .d2-754102534 .stroke-N7{stroke:#FFFFFF;} + .d2-754102534 .stroke-B1{stroke:#0D32B2;} + .d2-754102534 .stroke-B2{stroke:#0D32B2;} + .d2-754102534 .stroke-B3{stroke:#E3E9FD;} + .d2-754102534 .stroke-B4{stroke:#E3E9FD;} + .d2-754102534 .stroke-B5{stroke:#EDF0FD;} + .d2-754102534 .stroke-B6{stroke:#F7F8FE;} + .d2-754102534 .stroke-AA2{stroke:#4A6FF3;} + .d2-754102534 .stroke-AA4{stroke:#EDF0FD;} + .d2-754102534 .stroke-AA5{stroke:#F7F8FE;} + .d2-754102534 .stroke-AB4{stroke:#EDF0FD;} + .d2-754102534 .stroke-AB5{stroke:#F7F8FE;} + .d2-754102534 .background-color-N1{background-color:#0A0F25;} + .d2-754102534 .background-color-N2{background-color:#676C7E;} + .d2-754102534 .background-color-N3{background-color:#9499AB;} + .d2-754102534 .background-color-N4{background-color:#CFD2DD;} + .d2-754102534 .background-color-N5{background-color:#DEE1EB;} + .d2-754102534 .background-color-N6{background-color:#EEF1F8;} + .d2-754102534 .background-color-N7{background-color:#FFFFFF;} + .d2-754102534 .background-color-B1{background-color:#0D32B2;} + .d2-754102534 .background-color-B2{background-color:#0D32B2;} + .d2-754102534 .background-color-B3{background-color:#E3E9FD;} + .d2-754102534 .background-color-B4{background-color:#E3E9FD;} + .d2-754102534 .background-color-B5{background-color:#EDF0FD;} + .d2-754102534 .background-color-B6{background-color:#F7F8FE;} + .d2-754102534 .background-color-AA2{background-color:#4A6FF3;} + .d2-754102534 .background-color-AA4{background-color:#EDF0FD;} + .d2-754102534 .background-color-AA5{background-color:#F7F8FE;} + .d2-754102534 .background-color-AB4{background-color:#EDF0FD;} + .d2-754102534 .background-color-AB5{background-color:#F7F8FE;} + .d2-754102534 .color-N1{color:#0A0F25;} + .d2-754102534 .color-N2{color:#676C7E;} + .d2-754102534 .color-N3{color:#9499AB;} + .d2-754102534 .color-N4{color:#CFD2DD;} + .d2-754102534 .color-N5{color:#DEE1EB;} + .d2-754102534 .color-N6{color:#EEF1F8;} + .d2-754102534 .color-N7{color:#FFFFFF;} + .d2-754102534 .color-B1{color:#0D32B2;} + .d2-754102534 .color-B2{color:#0D32B2;} + .d2-754102534 .color-B3{color:#E3E9FD;} + .d2-754102534 .color-B4{color:#E3E9FD;} + .d2-754102534 .color-B5{color:#EDF0FD;} + .d2-754102534 .color-B6{color:#F7F8FE;} + .d2-754102534 .color-AA2{color:#4A6FF3;} + .d2-754102534 .color-AA4{color:#EDF0FD;} + .d2-754102534 .color-AA5{color:#F7F8FE;} + .d2-754102534 .color-AB4{color:#EDF0FD;} + .d2-754102534 .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}]]>-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 := a + 7 fmt.Printf("%d", b)a := 5 b := a + 7 -fmt.Printf("%d", b) +fmt.Printf("%d", b) \ No newline at end of file diff --git a/e2etests/testdata/stable/unnamed_only_width/dagre/board.exp.json b/e2etests/testdata/stable/unnamed_only_width/dagre/board.exp.json index 34ed25cb4..981058d39 100644 --- a/e2etests/testdata/stable/unnamed_only_width/dagre/board.exp.json +++ b/e2etests/testdata/stable/unnamed_only_width/dagre/board.exp.json @@ -4,7 +4,7 @@ "fontFamily": "SourceSansPro", "shapes": [ { - "id": "class", + "id": "class2", "type": "class", "pos": { "x": 0, @@ -385,8 +385,8 @@ ], "connections": [ { - "id": "(class -> users)[0]", - "src": "class", + "id": "(class2 -> users)[0]", + "src": "class2", "srcArrow": "none", "srcLabel": "", "dst": "users", diff --git a/e2etests/testdata/stable/unnamed_only_width/dagre/sketch.exp.svg b/e2etests/testdata/stable/unnamed_only_width/dagre/sketch.exp.svg index b759ddfa2..5532131d2 100644 --- a/e2etests/testdata/stable/unnamed_only_width/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/unnamed_only_width/dagre/sketch.exp.svg @@ -1,23 +1,23 @@ --numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 + .d2-995104800 .fill-N1{fill:#0A0F25;} + .d2-995104800 .fill-N2{fill:#676C7E;} + .d2-995104800 .fill-N3{fill:#9499AB;} + .d2-995104800 .fill-N4{fill:#CFD2DD;} + .d2-995104800 .fill-N5{fill:#DEE1EB;} + .d2-995104800 .fill-N6{fill:#EEF1F8;} + .d2-995104800 .fill-N7{fill:#FFFFFF;} + .d2-995104800 .fill-B1{fill:#0D32B2;} + .d2-995104800 .fill-B2{fill:#0D32B2;} + .d2-995104800 .fill-B3{fill:#E3E9FD;} + .d2-995104800 .fill-B4{fill:#E3E9FD;} + .d2-995104800 .fill-B5{fill:#EDF0FD;} + .d2-995104800 .fill-B6{fill:#F7F8FE;} + .d2-995104800 .fill-AA2{fill:#4A6FF3;} + .d2-995104800 .fill-AA4{fill:#EDF0FD;} + .d2-995104800 .fill-AA5{fill:#F7F8FE;} + .d2-995104800 .fill-AB4{fill:#EDF0FD;} + .d2-995104800 .fill-AB5{fill:#F7F8FE;} + .d2-995104800 .stroke-N1{stroke:#0A0F25;} + .d2-995104800 .stroke-N2{stroke:#676C7E;} + .d2-995104800 .stroke-N3{stroke:#9499AB;} + .d2-995104800 .stroke-N4{stroke:#CFD2DD;} + .d2-995104800 .stroke-N5{stroke:#DEE1EB;} + .d2-995104800 .stroke-N6{stroke:#EEF1F8;} + .d2-995104800 .stroke-N7{stroke:#FFFFFF;} + .d2-995104800 .stroke-B1{stroke:#0D32B2;} + .d2-995104800 .stroke-B2{stroke:#0D32B2;} + .d2-995104800 .stroke-B3{stroke:#E3E9FD;} + .d2-995104800 .stroke-B4{stroke:#E3E9FD;} + .d2-995104800 .stroke-B5{stroke:#EDF0FD;} + .d2-995104800 .stroke-B6{stroke:#F7F8FE;} + .d2-995104800 .stroke-AA2{stroke:#4A6FF3;} + .d2-995104800 .stroke-AA4{stroke:#EDF0FD;} + .d2-995104800 .stroke-AA5{stroke:#F7F8FE;} + .d2-995104800 .stroke-AB4{stroke:#EDF0FD;} + .d2-995104800 .stroke-AB5{stroke:#F7F8FE;} + .d2-995104800 .background-color-N1{background-color:#0A0F25;} + .d2-995104800 .background-color-N2{background-color:#676C7E;} + .d2-995104800 .background-color-N3{background-color:#9499AB;} + .d2-995104800 .background-color-N4{background-color:#CFD2DD;} + .d2-995104800 .background-color-N5{background-color:#DEE1EB;} + .d2-995104800 .background-color-N6{background-color:#EEF1F8;} + .d2-995104800 .background-color-N7{background-color:#FFFFFF;} + .d2-995104800 .background-color-B1{background-color:#0D32B2;} + .d2-995104800 .background-color-B2{background-color:#0D32B2;} + .d2-995104800 .background-color-B3{background-color:#E3E9FD;} + .d2-995104800 .background-color-B4{background-color:#E3E9FD;} + .d2-995104800 .background-color-B5{background-color:#EDF0FD;} + .d2-995104800 .background-color-B6{background-color:#F7F8FE;} + .d2-995104800 .background-color-AA2{background-color:#4A6FF3;} + .d2-995104800 .background-color-AA4{background-color:#EDF0FD;} + .d2-995104800 .background-color-AA5{background-color:#F7F8FE;} + .d2-995104800 .background-color-AB4{background-color:#EDF0FD;} + .d2-995104800 .background-color-AB5{background-color:#F7F8FE;} + .d2-995104800 .color-N1{color:#0A0F25;} + .d2-995104800 .color-N2{color:#676C7E;} + .d2-995104800 .color-N3{color:#9499AB;} + .d2-995104800 .color-N4{color:#CFD2DD;} + .d2-995104800 .color-N5{color:#DEE1EB;} + .d2-995104800 .color-N6{color:#EEF1F8;} + .d2-995104800 .color-N7{color:#FFFFFF;} + .d2-995104800 .color-B1{color:#0D32B2;} + .d2-995104800 .color-B2{color:#0D32B2;} + .d2-995104800 .color-B3{color:#E3E9FD;} + .d2-995104800 .color-B4{color:#E3E9FD;} + .d2-995104800 .color-B5{color:#EDF0FD;} + .d2-995104800 .color-B6{color:#F7F8FE;} + .d2-995104800 .color-AA2{color:#4A6FF3;} + .d2-995104800 .color-AA4{color:#EDF0FD;} + .d2-995104800 .color-AA5{color:#F7F8FE;} + .d2-995104800 .color-AB4{color:#EDF0FD;} + .d2-995104800 .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}]]>-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 := a + 7 fmt.Printf("%d", b)a := 5 b := a + 7 -fmt.Printf("%d", b) +fmt.Printf("%d", b) \ No newline at end of file diff --git a/e2etests/testdata/stable/unnamed_only_width/elk/board.exp.json b/e2etests/testdata/stable/unnamed_only_width/elk/board.exp.json index c18b28486..fa82ab65a 100644 --- a/e2etests/testdata/stable/unnamed_only_width/elk/board.exp.json +++ b/e2etests/testdata/stable/unnamed_only_width/elk/board.exp.json @@ -4,7 +4,7 @@ "fontFamily": "SourceSansPro", "shapes": [ { - "id": "class", + "id": "class2", "type": "class", "pos": { "x": 12, @@ -385,8 +385,8 @@ ], "connections": [ { - "id": "(class -> users)[0]", - "src": "class", + "id": "(class2 -> users)[0]", + "src": "class2", "srcArrow": "none", "srcLabel": "", "dst": "users", diff --git a/e2etests/testdata/stable/unnamed_only_width/elk/sketch.exp.svg b/e2etests/testdata/stable/unnamed_only_width/elk/sketch.exp.svg index e093f564e..b8061c2ca 100644 --- a/e2etests/testdata/stable/unnamed_only_width/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/unnamed_only_width/elk/sketch.exp.svg @@ -1,23 +1,23 @@ --numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 + .d2-3755768396 .fill-N1{fill:#0A0F25;} + .d2-3755768396 .fill-N2{fill:#676C7E;} + .d2-3755768396 .fill-N3{fill:#9499AB;} + .d2-3755768396 .fill-N4{fill:#CFD2DD;} + .d2-3755768396 .fill-N5{fill:#DEE1EB;} + .d2-3755768396 .fill-N6{fill:#EEF1F8;} + .d2-3755768396 .fill-N7{fill:#FFFFFF;} + .d2-3755768396 .fill-B1{fill:#0D32B2;} + .d2-3755768396 .fill-B2{fill:#0D32B2;} + .d2-3755768396 .fill-B3{fill:#E3E9FD;} + .d2-3755768396 .fill-B4{fill:#E3E9FD;} + .d2-3755768396 .fill-B5{fill:#EDF0FD;} + .d2-3755768396 .fill-B6{fill:#F7F8FE;} + .d2-3755768396 .fill-AA2{fill:#4A6FF3;} + .d2-3755768396 .fill-AA4{fill:#EDF0FD;} + .d2-3755768396 .fill-AA5{fill:#F7F8FE;} + .d2-3755768396 .fill-AB4{fill:#EDF0FD;} + .d2-3755768396 .fill-AB5{fill:#F7F8FE;} + .d2-3755768396 .stroke-N1{stroke:#0A0F25;} + .d2-3755768396 .stroke-N2{stroke:#676C7E;} + .d2-3755768396 .stroke-N3{stroke:#9499AB;} + .d2-3755768396 .stroke-N4{stroke:#CFD2DD;} + .d2-3755768396 .stroke-N5{stroke:#DEE1EB;} + .d2-3755768396 .stroke-N6{stroke:#EEF1F8;} + .d2-3755768396 .stroke-N7{stroke:#FFFFFF;} + .d2-3755768396 .stroke-B1{stroke:#0D32B2;} + .d2-3755768396 .stroke-B2{stroke:#0D32B2;} + .d2-3755768396 .stroke-B3{stroke:#E3E9FD;} + .d2-3755768396 .stroke-B4{stroke:#E3E9FD;} + .d2-3755768396 .stroke-B5{stroke:#EDF0FD;} + .d2-3755768396 .stroke-B6{stroke:#F7F8FE;} + .d2-3755768396 .stroke-AA2{stroke:#4A6FF3;} + .d2-3755768396 .stroke-AA4{stroke:#EDF0FD;} + .d2-3755768396 .stroke-AA5{stroke:#F7F8FE;} + .d2-3755768396 .stroke-AB4{stroke:#EDF0FD;} + .d2-3755768396 .stroke-AB5{stroke:#F7F8FE;} + .d2-3755768396 .background-color-N1{background-color:#0A0F25;} + .d2-3755768396 .background-color-N2{background-color:#676C7E;} + .d2-3755768396 .background-color-N3{background-color:#9499AB;} + .d2-3755768396 .background-color-N4{background-color:#CFD2DD;} + .d2-3755768396 .background-color-N5{background-color:#DEE1EB;} + .d2-3755768396 .background-color-N6{background-color:#EEF1F8;} + .d2-3755768396 .background-color-N7{background-color:#FFFFFF;} + .d2-3755768396 .background-color-B1{background-color:#0D32B2;} + .d2-3755768396 .background-color-B2{background-color:#0D32B2;} + .d2-3755768396 .background-color-B3{background-color:#E3E9FD;} + .d2-3755768396 .background-color-B4{background-color:#E3E9FD;} + .d2-3755768396 .background-color-B5{background-color:#EDF0FD;} + .d2-3755768396 .background-color-B6{background-color:#F7F8FE;} + .d2-3755768396 .background-color-AA2{background-color:#4A6FF3;} + .d2-3755768396 .background-color-AA4{background-color:#EDF0FD;} + .d2-3755768396 .background-color-AA5{background-color:#F7F8FE;} + .d2-3755768396 .background-color-AB4{background-color:#EDF0FD;} + .d2-3755768396 .background-color-AB5{background-color:#F7F8FE;} + .d2-3755768396 .color-N1{color:#0A0F25;} + .d2-3755768396 .color-N2{color:#676C7E;} + .d2-3755768396 .color-N3{color:#9499AB;} + .d2-3755768396 .color-N4{color:#CFD2DD;} + .d2-3755768396 .color-N5{color:#DEE1EB;} + .d2-3755768396 .color-N6{color:#EEF1F8;} + .d2-3755768396 .color-N7{color:#FFFFFF;} + .d2-3755768396 .color-B1{color:#0D32B2;} + .d2-3755768396 .color-B2{color:#0D32B2;} + .d2-3755768396 .color-B3{color:#E3E9FD;} + .d2-3755768396 .color-B4{color:#E3E9FD;} + .d2-3755768396 .color-B5{color:#EDF0FD;} + .d2-3755768396 .color-B6{color:#F7F8FE;} + .d2-3755768396 .color-AA2{color:#4A6FF3;} + .d2-3755768396 .color-AA4{color:#EDF0FD;} + .d2-3755768396 .color-AA5{color:#F7F8FE;} + .d2-3755768396 .color-AB4{color:#EDF0FD;} + .d2-3755768396 .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}]]>-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voididintnamestringemailstringpasswordstringlast_logindatetime:= 5 := a + 7 fmt.Printf("%d", b)a := 5 b := a + 7 -fmt.Printf("%d", b) +fmt.Printf("%d", b) \ No newline at end of file diff --git a/e2etests/testdata/themes/origami/dagre/board.exp.json b/e2etests/testdata/themes/origami/dagre/board.exp.json index d317916d9..a0f45ac09 100644 --- a/e2etests/testdata/themes/origami/dagre/board.exp.json +++ b/e2etests/testdata/themes/origami/dagre/board.exp.json @@ -10,7 +10,7 @@ "x": 0, "y": 275 }, - "width": 351, + "width": 399, "height": 1225, "opacity": 1, "strokeDash": 0, @@ -52,7 +52,7 @@ "x": 95, "y": 340 }, - "width": 237, + "width": 284, "height": 317, "opacity": 1, "strokeDash": 0, @@ -91,7 +91,7 @@ "id": "network.cell tower.satellites", "type": "stored_data", "pos": { - "x": 161, + "x": 185, "y": 372 }, "width": 104, @@ -133,7 +133,7 @@ "id": "network.cell tower.transmitter", "type": "rectangle", "pos": { - "x": 161, + "x": 185, "y": 559 }, "width": 104, @@ -259,7 +259,7 @@ "id": "network.data processor", "type": "rectangle", "pos": { - "x": 121, + "x": 145, "y": 814 }, "width": 184, @@ -301,7 +301,7 @@ "id": "network.data processor.storage", "type": "cylinder", "pos": { - "x": 161, + "x": 185, "y": 846 }, "width": 104, @@ -343,7 +343,7 @@ "id": "user", "type": "person", "pos": { - "x": 66, + "x": 80, "y": 0 }, "width": 130, @@ -385,7 +385,7 @@ "id": "api server", "type": "rectangle", "pos": { - "x": 392, + "x": 439, "y": 1076 }, "width": 153, @@ -427,7 +427,7 @@ "id": "logs", "type": "page", "pos": { - "x": 426, + "x": 474, "y": 1313 }, "width": 84, @@ -493,19 +493,19 @@ "labelPercentage": 0, "route": [ { - "x": 194, + "x": 211, "y": 439 }, { - "x": 166, + "x": 173.4, "y": 487 }, { - "x": 166, + "x": 173.4, "y": 511.2 }, { - "x": 194, + "x": 211, "y": 560 } ], @@ -541,19 +541,19 @@ "labelPercentage": 0, "route": [ { - "x": 213, + "x": 237, "y": 439 }, { - "x": 213.2, + "x": 237, "y": 487 }, { - "x": 213.25, + "x": 237, "y": 511.2 }, { - "x": 213.25, + "x": 237, "y": 560 } ], @@ -589,19 +589,19 @@ "labelPercentage": 0, "route": [ { - "x": 233, + "x": 263, "y": 439 }, { - "x": 260.6, + "x": 300.6, "y": 487 }, { - "x": 260.5, + "x": 300.6, "y": 511.2 }, { - "x": 232.5, + "x": 263, "y": 560 } ], @@ -637,31 +637,31 @@ "labelPercentage": 0, "route": [ { - "x": 213.25, + "x": 237, "y": 625.5 }, { - "x": 213.25, + "x": 237, "y": 651.1 }, { - "x": 213.25, + "x": 237, "y": 669.6 }, { - "x": 213.25, + "x": 237, "y": 687.75 }, { - "x": 213.25, + "x": 237, "y": 705.9 }, { - "x": 213.2, + "x": 237, "y": 792.2 }, { - "x": 213, + "x": 237, "y": 847 } ], @@ -697,19 +697,19 @@ "labelPercentage": 0, "route": [ { - "x": 152, + "x": 169, "y": 87 }, { - "x": 201, + "x": 223.4, "y": 156.2 }, { - "x": 213.25, + "x": 237, "y": 248.2 }, { - "x": 213.25, + "x": 237, "y": 305 } ], @@ -745,11 +745,11 @@ "labelPercentage": 0, "route": [ { - "x": 116, + "x": 126, "y": 87 }, { - "x": 83, + "x": 85, "y": 156.2 }, { @@ -949,12 +949,12 @@ "labelPercentage": 0, "route": [ { - "x": 391.75, - "y": 1129.4949856733524 + "x": 439.25, + "y": 1127.0397225725094 }, { - "x": 173.75, - "y": 1187.8989971346705 + "x": 183.25, + "y": 1187.4079445145019 }, { "x": 116, @@ -997,19 +997,19 @@ "labelPercentage": 0, "route": [ { - "x": 468.25, + "x": 515.75, "y": 1142 }, { - "x": 468.25, + "x": 515.75, "y": 1190.4 }, { - "x": 468.2, + "x": 515.8, "y": 1273 }, { - "x": 468, + "x": 516, "y": 1313 } ], @@ -1045,20 +1045,20 @@ "labelPercentage": 0, "route": [ { - "x": 213.25, + "x": 237, "y": 996.5 }, { - "x": 213.25, + "x": 237, "y": 1020.1 }, { - "x": 248.95, - "y": 1037.62 + "x": 277.4, + "y": 1038 }, { - "x": 391.75, - "y": 1084.1 + "x": 439, + "y": 1086 } ], "isCurve": true, diff --git a/e2etests/testdata/themes/origami/dagre/sketch.exp.svg b/e2etests/testdata/themes/origami/dagre/sketch.exp.svg index 56d38cf2e..a580bee19 100644 --- a/e2etests/testdata/themes/origami/dagre/sketch.exp.svg +++ b/e2etests/testdata/themes/origami/dagre/sketch.exp.svg @@ -1,23 +1,23 @@ - \ No newline at end of file diff --git a/e2etests/testdata/themes/terminal_grayscale/dagre/board.exp.json b/e2etests/testdata/themes/terminal_grayscale/dagre/board.exp.json index aaff0b214..6777766c6 100644 --- a/e2etests/testdata/themes/terminal_grayscale/dagre/board.exp.json +++ b/e2etests/testdata/themes/terminal_grayscale/dagre/board.exp.json @@ -10,7 +10,7 @@ "x": 0, "y": 275 }, - "width": 410, + "width": 436, "height": 1225, "opacity": 1, "strokeDash": 0, @@ -52,7 +52,7 @@ "x": 96, "y": 340 }, - "width": 294, + "width": 320, "height": 317, "opacity": 1, "strokeDash": 0, @@ -91,7 +91,7 @@ "id": "network.cell tower.satellites", "type": "stored_data", "pos": { - "x": 163, + "x": 176, "y": 372 }, "width": 161, @@ -132,7 +132,7 @@ "id": "network.cell tower.transmitter", "type": "rectangle", "pos": { - "x": 168, + "x": 181, "y": 559 }, "width": 151, @@ -176,7 +176,7 @@ "x": 20, "y": 1319 }, - "width": 157, + "width": 154, "height": 151, "opacity": 1, "strokeDash": 0, @@ -215,7 +215,7 @@ "id": "network.online portal.ui", "type": "hexagon", "pos": { - "x": 71, + "x": 69, "y": 1360 }, "width": 65, @@ -256,7 +256,7 @@ "id": "network.data processor", "type": "rectangle", "pos": { - "x": 147, + "x": 161, "y": 814 }, "width": 192, @@ -298,7 +298,7 @@ "id": "network.data processor.storage", "type": "cylinder", "pos": { - "x": 187, + "x": 201, "y": 846 }, "width": 112, @@ -339,7 +339,7 @@ "id": "user", "type": "person", "pos": { - "x": 82, + "x": 85, "y": 0 }, "width": 130, @@ -380,7 +380,7 @@ "id": "api server", "type": "rectangle", "pos": { - "x": 450, + "x": 477, "y": 1076 }, "width": 142, @@ -421,7 +421,7 @@ "id": "logs", "type": "page", "pos": { - "x": 480, + "x": 507, "y": 1313 }, "width": 82, @@ -486,19 +486,19 @@ "labelPercentage": 0, "route": [ { - "x": 218, + "x": 229, "y": 439 }, { - "x": 182.4, + "x": 188.6, "y": 487 }, { - "x": 182.5, + "x": 188.5, "y": 511.2 }, { - "x": 218.5, + "x": 228.5, "y": 560 } ], @@ -534,19 +534,19 @@ "labelPercentage": 0, "route": [ { - "x": 243, + "x": 256, "y": 439 }, { - "x": 243.2, + "x": 256.4, "y": 487 }, { - "x": 243.25, + "x": 256.5, "y": 511.2 }, { - "x": 243.25, + "x": 256.5, "y": 560 } ], @@ -582,19 +582,19 @@ "labelPercentage": 0, "route": [ { - "x": 268, + "x": 284, "y": 439 }, { - "x": 304, + "x": 324.4, "y": 487 }, { - "x": 304, + "x": 324.5, "y": 511.2 }, { - "x": 268, + "x": 284.5, "y": 560 } ], @@ -630,31 +630,31 @@ "labelPercentage": 0, "route": [ { - "x": 243.25, + "x": 256.5, "y": 625.5 }, { - "x": 243.25, + "x": 256.5, "y": 651.1 }, { - "x": 243.25, + "x": 256.5, "y": 669.6 }, { - "x": 243.25, + "x": 256.5, "y": 687.75 }, { - "x": 243.25, + "x": 256.5, "y": 705.9 }, { - "x": 243.2, + "x": 256.6, "y": 792.2 }, { - "x": 243, + "x": 257, "y": 847 } ], @@ -690,19 +690,19 @@ "labelPercentage": 0, "route": [ { - "x": 172, + "x": 178, "y": 87 }, { - "x": 229, + "x": 240.8, "y": 156.2 }, { - "x": 243.25, + "x": 256.5, "y": 248.2 }, { - "x": 243.25, + "x": 256.5, "y": 305 } ], @@ -738,11 +738,11 @@ "labelPercentage": 0, "route": [ { - "x": 128, + "x": 131, "y": 87 }, { - "x": 86.6, + "x": 87.19999999999999, "y": 156.2 }, { @@ -902,11 +902,11 @@ "y": 1183.8 }, { - "x": 79.6, + "x": 79.4, "y": 1282.6 }, { - "x": 93, + "x": 92, "y": 1361 } ], @@ -942,19 +942,19 @@ "labelPercentage": 0, "route": [ { - "x": 450.25, - "y": 1126 + "x": 476.75, + "y": 1124.9196642685852 }, { - "x": 194.64999999999998, - "y": 1187.2 + "x": 199.95, + "y": 1186.983932853717 }, { - "x": 127.4, + "x": 127, "y": 1282.6 }, { - "x": 114, + "x": 112, "y": 1361 } ], @@ -990,19 +990,19 @@ "labelPercentage": 0, "route": [ { - "x": 521.25, + "x": 547.75, "y": 1142 }, { - "x": 521.25, + "x": 547.75, "y": 1190.4 }, { - "x": 521.2, + "x": 547.8, "y": 1273 }, { - "x": 521, + "x": 548, "y": 1313 } ], @@ -1038,20 +1038,20 @@ "labelPercentage": 0, "route": [ { - "x": 243.25, + "x": 256.5, "y": 996.5 }, { - "x": 243.25, + "x": 256.5, "y": 1020.1 }, { - "x": 284.65, - "y": 1038.4 + "x": 300.55, + "y": 1038.5533047210301 }, { - "x": 450.25, - "y": 1088 + "x": 476.75, + "y": 1088.7665236051503 } ], "isCurve": true, diff --git a/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg b/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg index 234bf36dc..e76c544c7 100644 --- a/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg +++ b/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg @@ -1,16 +1,16 @@ -containerscloudtall cylinderclass-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voidusersidintnamestringemailstringpasswordstringlast_logindatetimecontainer

    markdown text expanded to 800x400

    +containerscloudtall cylinderclass2-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voidusersidintnamestringemailstringpasswordstringlast_logindatetimecontainer

    markdown text expanded to 800x400

    := 5 := a + 7 fmt.Printf("%d", b)a := 5 @@ -861,7 +861,7 @@ := a + 7 fmt.Printf("%d", b)a := 5 b := a + 7 -fmt.Printf("%d", b)circle containerdiamond containeroval containerhexagon containerdiamondcirclehexagonoval +fmt.Printf("%d", b)circle containerdiamond containeroval containerhexagon containerdiamondcirclehexagonoval \ No newline at end of file diff --git a/e2etests/testdata/todo/shape_set_width_height/elk/board.exp.json b/e2etests/testdata/todo/shape_set_width_height/elk/board.exp.json index 3099bad23..0d3b5740e 100644 --- a/e2etests/testdata/todo/shape_set_width_height/elk/board.exp.json +++ b/e2etests/testdata/todo/shape_set_width_height/elk/board.exp.json @@ -455,7 +455,7 @@ "level": 1 }, { - "id": "class", + "id": "class2", "type": "class", "pos": { "x": 1276, @@ -513,7 +513,7 @@ } ], "columns": null, - "label": "class", + "label": "class2", "fontSize": 20, "fontFamily": "DEFAULT", "language": "", @@ -521,7 +521,7 @@ "italic": false, "bold": false, "underline": false, - "labelWidth": 70, + "labelWidth": 85, "labelHeight": 31, "zIndex": 0, "level": 1, @@ -877,11 +877,11 @@ ], "connections": [ { - "id": "(cloud -> class)[0]", + "id": "(cloud -> class2)[0]", "src": "cloud", "srcArrow": "none", "srcLabel": "", - "dst": "class", + "dst": "class2", "dstArrow": "triangle", "dstLabel": "", "opacity": 1, @@ -917,8 +917,8 @@ "zIndex": 0 }, { - "id": "(class -> tall cylinder)[0]", - "src": "class", + "id": "(class2 -> tall cylinder)[0]", + "src": "class2", "srcArrow": "none", "srcLabel": "", "dst": "tall cylinder", diff --git a/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg b/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg index c7772c634..68783334e 100644 --- a/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg +++ b/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg @@ -1,31 +1,31 @@ -containerscloudtall cylinderclass-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voidusersidintnamestringemailstringpasswordstringlast_logindatetimecontainer

    markdown text expanded to 800x400

    +containerscloudtall cylinderclass2-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voidusersidintnamestringemailstringpasswordstringlast_logindatetimecontainer

    markdown text expanded to 800x400

    := 5 := a + 7 fmt.Printf("%d", b)a := 5 @@ -861,7 +861,7 @@ := a + 7 fmt.Printf("%d", b)a := 5 b := a + 7 -fmt.Printf("%d", b)circle containerdiamond containeroval containerhexagon containerdiamondcirclehexagonoval +fmt.Printf("%d", b)circle containerdiamond containeroval containerhexagon containerdiamondcirclehexagonoval \ No newline at end of file diff --git a/e2etests/todo_test.go b/e2etests/todo_test.go index 232db0b66..5568363af 100644 --- a/e2etests/todo_test.go +++ b/e2etests/todo_test.go @@ -107,7 +107,7 @@ tall cylinder: { width: 256 height: 512 } -cloud -> class -> tall cylinder -> users +cloud -> class2 -> tall cylinder -> users users: { shape: sql_table @@ -121,7 +121,7 @@ users: { height: 400 } -class: { +class2: { shape: class -num: int -timeout: int diff --git a/lib/font/font.go b/lib/font/font.go index 698319b20..1b84a5e19 100644 --- a/lib/font/font.go +++ b/lib/font/font.go @@ -49,8 +49,8 @@ var ( WOFF_ENTRY_OFFSET_CHECKSUM = 16 // magic - MAGIC_WOFF = 0x774f4646 - MAGIC_CHECKSUM_ADJUSTMENT = 0xb1b0afba + MAGIC_WOFF uint32 = 0x774f4646 + MAGIC_CHECKSUM_ADJUSTMENT uint32 = 0xb1b0afba // sizes SIZE_OF_WOFF_HEADER = 44 @@ -85,7 +85,7 @@ func Sfnt2Woff(fontBuf []byte) ([]byte, error) { numTables := binary.BigEndian.Uint16(fontBuf[4:]) woffHeader := make([]byte, SIZE_OF_WOFF_HEADER) - binary.BigEndian.PutUint32(woffHeader[WOFF_OFFSET_MAGIC:], uint32(MAGIC_WOFF)) + binary.BigEndian.PutUint32(woffHeader[WOFF_OFFSET_MAGIC:], MAGIC_WOFF) binary.BigEndian.PutUint16(woffHeader[WOFF_OFFSET_NUM_TABLES:], numTables) binary.BigEndian.PutUint16(woffHeader[WOFF_OFFSET_SFNT_SIZE:], 0) binary.BigEndian.PutUint32(woffHeader[WOFF_OFFSET_META_OFFSET:], 0) @@ -148,7 +148,7 @@ func Sfnt2Woff(fontBuf []byte) ([]byte, error) { csum += tableEntry.CheckSum } - var checksumAdjustment = uint32(MAGIC_CHECKSUM_ADJUSTMENT) - csum + var checksumAdjustment = MAGIC_CHECKSUM_ADJUSTMENT - csum majorVersion := uint16(0) minVersion := uint16(1) diff --git a/lib/geo/vector.go b/lib/geo/vector.go index db1bb107b..16a3fccb3 100644 --- a/lib/geo/vector.go +++ b/lib/geo/vector.go @@ -78,7 +78,7 @@ func GetUnitNormalVector(x1, y1, x2, y2 float64) (float64, float64) { } func (a Vector) Radians() float64 { - return math.Atan2(a[1], a[0]) + return float64(float32(math.Atan2(a[1], a[0]))) } func (a Vector) Degrees() float64 { diff --git a/lib/shape/shape_oval.go b/lib/shape/shape_oval.go index 8e035f845..da1b96239 100644 --- a/lib/shape/shape_oval.go +++ b/lib/shape/shape_oval.go @@ -35,7 +35,7 @@ func (s shapeOval) GetInnerBox() *geo.Box { } func (s shapeOval) GetDimensionsToFit(width, height, paddingX, paddingY float64) (float64, float64) { - theta := math.Atan2(height, width) + theta := float64(float32(math.Atan2(height, width))) // add padding in direction of diagonal so there is padding distance between top left and border paddedWidth := width + paddingX*math.Cos(theta) paddedHeight := height + paddingY*math.Sin(theta) @@ -59,7 +59,7 @@ func (s shapeOval) GetInsidePlacement(width, height, paddingX, paddingY float64) // ├───cos*r───┤ rx := s.Box.Width / 2 ry := s.Box.Height / 2 - theta := math.Atan2(ry, rx) + theta := float64(float32(math.Atan2(ry, rx))) sin := math.Sin(theta) cos := math.Cos(theta) // r is the ellipse radius on the line between node.TopLeft and the ellipse center diff --git a/testdata/d2compiler/TestCompile/classes-internal-edge.exp.json b/testdata/d2compiler/TestCompile/classes-internal-edge.exp.json new file mode 100644 index 000000000..c3a2adf37 --- /dev/null +++ b/testdata/d2compiler/TestCompile/classes-internal-edge.exp.json @@ -0,0 +1,12 @@ +{ + "graph": null, + "err": { + "ioerr": null, + "errs": [ + { + "range": "d2/testdata/d2compiler/TestCompile/classes-internal-edge.d2,7:2:72-7:16:86", + "errmsg": "d2/testdata/d2compiler/TestCompile/classes-internal-edge.d2:8:3: classes cannot contain an edge" + } + ] + } +} diff --git a/testdata/d2compiler/TestCompile/classes-unreserved.exp.json b/testdata/d2compiler/TestCompile/classes-unreserved.exp.json new file mode 100644 index 000000000..b33e928eb --- /dev/null +++ b/testdata/d2compiler/TestCompile/classes-unreserved.exp.json @@ -0,0 +1,12 @@ +{ + "graph": null, + "err": { + "ioerr": null, + "errs": [ + { + "range": "d2/testdata/d2compiler/TestCompile/classes-unreserved.d2,2:4:26-2:8:30", + "errmsg": "d2/testdata/d2compiler/TestCompile/classes-unreserved.d2:3:5: seed is an invalid class field, must be reserved keyword" + } + ] + } +} diff --git a/testdata/d2compiler/TestCompile/classes.exp.json b/testdata/d2compiler/TestCompile/classes.exp.json new file mode 100644 index 000000000..df9ed3f5a --- /dev/null +++ b/testdata/d2compiler/TestCompile/classes.exp.json @@ -0,0 +1,907 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,0:0:0-16:0:306", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,0:0:0-10:1:146", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,0:9:9-10:0:145", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,1:2:13-5:3:86", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,1:2:13-1:13:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,1:2:13-1:13:24", + "value": [ + { + "string": "dragon_ball", + "raw_string": "dragon_ball" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,1:15:26-5:2:85", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,2:4:32-2:13:41", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,2:4:32-2:9:37", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,2:4:32-2:9:37", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,2:11:39-2:13:41", + "value": null + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,3:4:46-3:17:59", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,3:4:46-3:9:51", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,3:4:46-3:9:51", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,3:11:53-3:17:59", + "value": [ + { + "string": "circle", + "raw_string": "circle" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,4:4:64-4:22:82", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,4:4:64-4:14:74", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,4:4:64-4:9:69", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,4:10:70-4:14:74", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,4:16:76-4:22:82", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,6:2:89-9:3:144", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,6:2:89-6:6:93", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,6:2:89-6:6:93", + "value": [ + { + "string": "path", + "raw_string": "path" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,6:8:95-9:2:143", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,7:4:101-7:17:114", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,7:4:101-7:9:106", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,7:4:101-7:9:106", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,7:11:108-7:17:114", + "value": [ + { + "string": "then", + "raw_string": "then" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,8:4:119-8:25:140", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,8:4:119-8:22:137", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,8:4:119-8:9:124", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,8:10:125-8:22:137", + "value": [ + { + "string": "stroke-width", + "raw_string": "stroke-width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,8:24:139-8:25:140", + "raw": "4", + "value": "4" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,11:0:147-11:30:177", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,11:0:147-11:6:153", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,11:0:147-11:6:153", + "value": [ + { + "string": "nostar", + "raw_string": "nostar" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,11:8:155-11:29:176", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,11:10:157-11:29:176", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,11:10:157-11:15:162", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,11:10:157-11:15:162", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,11:17:164-11:28:175", + "value": [ + { + "string": "dragon_ball", + "raw_string": "dragon_ball" + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:0:178-12:50:228", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:0:178-12:5:183", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:0:178-12:5:183", + "value": [ + { + "string": "1star", + "raw_string": "1star" + } + ] + } + } + ] + }, + "primary": { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:7:185-12:10:188", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ] + } + }, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:11:189-12:49:227", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:13:191-12:31:209", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:13:191-12:18:196", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:13:191-12:18:196", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:20:198-12:31:209", + "value": [ + { + "string": "dragon_ball", + "raw_string": "dragon_ball" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:33:211-12:49:227", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:33:211-12:43:221", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:33:211-12:38:216", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:39:217-12:43:221", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:45:223-12:48:226", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:0:229-13:42:271", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:0:229-13:5:234", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:0:229-13:5:234", + "value": [ + { + "string": "2star", + "raw_string": "2star" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:7:236-13:41:270", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:9:238-13:20:249", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:9:238-13:14:243", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:9:238-13:14:243", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:16:245-13:20:249", + "value": [ + { + "string": "**", + "raw_string": "**" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:22:251-13:41:270", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:22:251-13:27:256", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:22:251-13:27:256", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:29:258-13:40:269", + "value": [ + { + "string": "dragon_ball", + "raw_string": "dragon_ball" + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:0:273-15:32:305", + "edges": [ + { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:0:273-15:15:288", + "src": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:0:273-15:7:280", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:0:273-15:6:279", + "value": [ + { + "string": "nostar", + "raw_string": "nostar" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:9:282-15:15:288", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:10:283-15:15:288", + "value": [ + { + "string": "1star", + "raw_string": "1star" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:17:290-15:31:304", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:19:292-15:31:304", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:19:292-15:24:297", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:19:292-15:24:297", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:26:299-15:30:303", + "value": [ + { + "string": "path", + "raw_string": "path" + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "then" + }, + "style": { + "strokeWidth": { + "value": "4" + } + }, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + }, + "classes": [ + "path" + ] + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "nostar", + "id_val": "nostar", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,11:0:147-11:6:153", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,11:0:147-11:6:153", + "value": [ + { + "string": "nostar", + "raw_string": "nostar" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:0:273-15:7:280", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:0:273-15:6:279", + "value": [ + { + "string": "nostar", + "raw_string": "nostar" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": { + "fill": { + "value": "orange" + } + }, + "near_key": null, + "shape": { + "value": "circle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + }, + "classes": [ + "dragon_ball" + ] + }, + "zIndex": 0 + }, + { + "id": "1star", + "id_val": "1star", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:0:178-12:5:183", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,12:0:178-12:5:183", + "value": [ + { + "string": "1star", + "raw_string": "1star" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:9:282-15:15:288", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,15:10:283-15:15:288", + "value": [ + { + "string": "1star", + "raw_string": "1star" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": { + "fill": { + "value": "red" + } + }, + "near_key": null, + "shape": { + "value": "circle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + }, + "classes": [ + "dragon_ball" + ] + }, + "zIndex": 0 + }, + { + "id": "2star", + "id_val": "2star", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:0:229-13:5:234", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/classes.d2,13:0:229-13:5:234", + "value": [ + { + "string": "2star", + "raw_string": "2star" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "**" + }, + "style": { + "fill": { + "value": "orange" + } + }, + "near_key": null, + "shape": { + "value": "circle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + }, + "classes": [ + "dragon_ball" + ] + }, + "zIndex": 0 + } + ] + }, + "err": null +} diff --git a/testdata/d2compiler/TestCompile/grid.exp.json b/testdata/d2compiler/TestCompile/grid.exp.json new file mode 100644 index 000000000..8b4e621bc --- /dev/null +++ b/testdata/d2compiler/TestCompile/grid.exp.json @@ -0,0 +1,180 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,0:0:0-4:0:44", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,0:0:0-3:1:43", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,0:0:0-0:3:3", + "value": [ + { + "string": "hey", + "raw_string": "hey" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,0:5:5-3:0:42", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,1:1:8-1:15:22", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,1:1:8-1:10:17", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,1:1:8-1:10:17", + "value": [ + { + "string": "grid-rows", + "raw_string": "grid-rows" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,1:12:19-1:15:22", + "raw": "200", + "value": "200" + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,2:1:24-2:18:41", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,2:1:24-2:13:36", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,2:1:24-2:13:36", + "value": [ + { + "string": "grid-columns", + "raw_string": "grid-columns" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,2:15:38-2:18:41", + "raw": "230", + "value": "230" + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "hey", + "id_val": "hey", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/grid.d2,0:0:0-0:3:3", + "value": [ + { + "string": "hey", + "raw_string": "hey" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "hey" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + }, + "gridRows": { + "value": "200" + }, + "gridColumns": { + "value": "230" + } + }, + "zIndex": 0 + } + ] + }, + "err": null +} diff --git a/testdata/d2compiler/TestCompile/grid_edge.exp.json b/testdata/d2compiler/TestCompile/grid_edge.exp.json new file mode 100644 index 000000000..52a77accb --- /dev/null +++ b/testdata/d2compiler/TestCompile/grid_edge.exp.json @@ -0,0 +1,20 @@ +{ + "graph": null, + "err": { + "ioerr": null, + "errs": [ + { + "range": "d2/testdata/d2compiler/TestCompile/grid_edge.d2,2:1:22-2:7:28", + "errmsg": "d2/testdata/d2compiler/TestCompile/grid_edge.d2:3:2: edges in grid diagrams are not supported yet" + }, + { + "range": "d2/testdata/d2compiler/TestCompile/grid_edge.d2,4:1:32-4:11:42", + "errmsg": "d2/testdata/d2compiler/TestCompile/grid_edge.d2:5:2: edges in grid diagrams are not supported yet" + }, + { + "range": "d2/testdata/d2compiler/TestCompile/grid_edge.d2,5:1:44-5:11:54", + "errmsg": "d2/testdata/d2compiler/TestCompile/grid_edge.d2:6:2: edges in grid diagrams are not supported yet" + } + ] + } +} diff --git a/testdata/d2compiler/TestCompile/grid_negative.exp.json b/testdata/d2compiler/TestCompile/grid_negative.exp.json new file mode 100644 index 000000000..7999bc2b6 --- /dev/null +++ b/testdata/d2compiler/TestCompile/grid_negative.exp.json @@ -0,0 +1,12 @@ +{ + "graph": null, + "err": { + "ioerr": null, + "errs": [ + { + "range": "d2/testdata/d2compiler/TestCompile/grid_negative.d2,2:15:38-2:19:42", + "errmsg": "d2/testdata/d2compiler/TestCompile/grid_negative.d2:3:16: grid-columns must be a positive integer: \"-200\"" + } + ] + } +} diff --git a/testdata/d2compiler/TestCompile/grid_nested.exp.json b/testdata/d2compiler/TestCompile/grid_nested.exp.json new file mode 100644 index 000000000..c8db27f4f --- /dev/null +++ b/testdata/d2compiler/TestCompile/grid_nested.exp.json @@ -0,0 +1,16 @@ +{ + "graph": null, + "err": { + "ioerr": null, + "errs": [ + { + "range": "d2/testdata/d2compiler/TestCompile/grid_nested.d2,1:1:8-1:15:22", + "errmsg": "d2/testdata/d2compiler/TestCompile/grid_nested.d2:2:2: \"grid-rows\" can only be used on containers with one level of nesting right now. (\"hey.d\" has nested \"invalid descendant\")" + }, + { + "range": "d2/testdata/d2compiler/TestCompile/grid_nested.d2,2:1:24-2:18:41", + "errmsg": "d2/testdata/d2compiler/TestCompile/grid_nested.d2:3:2: \"grid-columns\" can only be used on containers with one level of nesting right now. (\"hey.d\" has nested \"invalid descendant\")" + } + ] + } +} diff --git a/testdata/d2compiler/TestCompile/missing-class.exp.json b/testdata/d2compiler/TestCompile/missing-class.exp.json new file mode 100644 index 000000000..6bd3ccd75 --- /dev/null +++ b/testdata/d2compiler/TestCompile/missing-class.exp.json @@ -0,0 +1,145 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile/missing-class.d2,0:0:0-1:0:12", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/missing-class.d2,0:0:0-0:11:11", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/missing-class.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/missing-class.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/missing-class.d2,0:2:2-0:7:7", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/missing-class.d2,0:9:9-0:11:11", + "value": [ + { + "string": "yo", + "raw_string": "yo" + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "x", + "id_val": "x", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/missing-class.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/missing-class.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/missing-class.d2,0:2:2-0:7:7", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "x" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + }, + "classes": [ + "yo" + ] + }, + "zIndex": 0 + } + ] + }, + "err": null +} diff --git a/testdata/d2compiler/TestCompile/near_bad_connected.exp.json b/testdata/d2compiler/TestCompile/near_bad_connected.exp.json index 76c9d6301..b5ac2eb4a 100644 --- a/testdata/d2compiler/TestCompile/near_bad_connected.exp.json +++ b/testdata/d2compiler/TestCompile/near_bad_connected.exp.json @@ -4,8 +4,8 @@ "ioerr": null, "errs": [ { - "range": "d2/testdata/d2compiler/TestCompile/near_bad_connected.d2,1:8:13-1:18:23", - "errmsg": "d2/testdata/d2compiler/TestCompile/near_bad_connected.d2:2:9: constant near keys cannot be set on connected shapes" + "range": "d2/testdata/d2compiler/TestCompile/near_bad_connected.d2,4:4:42-4:10:48", + "errmsg": "d2/testdata/d2compiler/TestCompile/near_bad_connected.d2:5:5: cannot connect objects from within a container, that has near constant set, to objects outside that container" } ] } diff --git a/testdata/d2compiler/TestCompile/near_bad_container.exp.json b/testdata/d2compiler/TestCompile/near_bad_container.exp.json deleted file mode 100644 index 07269f631..000000000 --- a/testdata/d2compiler/TestCompile/near_bad_container.exp.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "graph": null, - "err": { - "ioerr": null, - "errs": [ - { - "range": "d2/testdata/d2compiler/TestCompile/near_bad_container.d2,1:8:13-1:18:23", - "errmsg": "d2/testdata/d2compiler/TestCompile/near_bad_container.d2:2:9: constant near keys cannot be set on shapes with children" - } - ] - } -} diff --git a/testdata/d2compiler/TestCompile/near_descendant_connect_to_outside.exp.json b/testdata/d2compiler/TestCompile/near_descendant_connect_to_outside.exp.json new file mode 100644 index 000000000..ca04fbf51 --- /dev/null +++ b/testdata/d2compiler/TestCompile/near_descendant_connect_to_outside.exp.json @@ -0,0 +1,12 @@ +{ + "graph": null, + "err": { + "ioerr": null, + "errs": [ + { + "range": "d2/testdata/d2compiler/TestCompile/near_descendant_connect_to_outside.d2,5:4:47-5:12:55", + "errmsg": "d2/testdata/d2compiler/TestCompile/near_descendant_connect_to_outside.d2:6:5: cannot connect objects from within a container, that has near constant set, to objects outside that container" + } + ] + } +} diff --git a/testdata/d2compiler/TestCompile/no-class-inside-classes.exp.json b/testdata/d2compiler/TestCompile/no-class-inside-classes.exp.json new file mode 100644 index 000000000..99c67b8e6 --- /dev/null +++ b/testdata/d2compiler/TestCompile/no-class-inside-classes.exp.json @@ -0,0 +1,12 @@ +{ + "graph": null, + "err": { + "ioerr": null, + "errs": [ + { + "range": "d2/testdata/d2compiler/TestCompile/no-class-inside-classes.d2,2:4:22-2:9:27", + "errmsg": "d2/testdata/d2compiler/TestCompile/no-class-inside-classes.d2:3:5: \"class\" cannot appear within \"classes\"" + } + ] + } +} diff --git a/testdata/d2compiler/TestCompile/no-class-primary.exp.json b/testdata/d2compiler/TestCompile/no-class-primary.exp.json new file mode 100644 index 000000000..dafb78a69 --- /dev/null +++ b/testdata/d2compiler/TestCompile/no-class-primary.exp.json @@ -0,0 +1,12 @@ +{ + "graph": null, + "err": { + "ioerr": null, + "errs": [ + { + "range": "d2/testdata/d2compiler/TestCompile/no-class-primary.d2,0:2:2-0:7:7", + "errmsg": "d2/testdata/d2compiler/TestCompile/no-class-primary.d2:1:3: class missing value" + } + ] + } +} diff --git a/testdata/d2compiler/TestCompile/reordered-classes.exp.json b/testdata/d2compiler/TestCompile/reordered-classes.exp.json new file mode 100644 index 000000000..8e52b2525 --- /dev/null +++ b/testdata/d2compiler/TestCompile/reordered-classes.exp.json @@ -0,0 +1,291 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,0:0:0-7:0:78", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,0:0:0-4:1:41", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,0:9:9-4:0:40", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,1:2:13-3:3:39", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,1:2:13-1:3:14", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,1:2:13-1:3:14", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,1:5:16-3:2:38", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,2:4:22-2:17:35", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,2:4:22-2:9:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,2:4:22-2:9:27", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,2:11:29-2:17:35", + "value": [ + { + "string": "circle", + "raw_string": "circle" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,5:0:42-5:10:52", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,5:0:42-5:7:49", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,5:0:42-5:1:43", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,5:2:44-5:7:49", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,5:9:51-5:10:52", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,6:0:53-6:24:77", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,6:0:53-6:15:68", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,6:0:53-6:7:60", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,6:8:61-6:9:62", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,6:10:63-6:15:68", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,6:17:70-6:24:77", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,5:0:42-5:7:49", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,5:0:42-5:1:43", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reordered-classes.d2,5:2:44-5:7:49", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "diamond" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + }, + "classes": [ + "x" + ] + }, + "zIndex": 0 + } + ] + }, + "err": null +} diff --git a/testdata/d2compiler/TestCompile2/boards/isFolderOnly.exp.json b/testdata/d2compiler/TestCompile2/boards/isFolderOnly.exp.json index 0f6affc31..11a7eb99a 100644 --- a/testdata/d2compiler/TestCompile2/boards/isFolderOnly.exp.json +++ b/testdata/d2compiler/TestCompile2/boards/isFolderOnly.exp.json @@ -1361,7 +1361,55 @@ "zIndex": 0 }, "edges": null, - "objects": null + "objects": [ + { + "id": "clause", + "id_val": "clause", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,6:4:47-6:10:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,6:4:47-6:10:53", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "clause" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] }, { "name": "missoula", @@ -1678,7 +1726,55 @@ "zIndex": 0 }, "edges": null, - "objects": null + "objects": [ + { + "id": "clause", + "id_val": "clause", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,6:4:47-6:10:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,6:4:47-6:10:53", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "clause" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] } ] } diff --git a/testdata/d2compiler/TestCompile2/boards/recursive.exp.json b/testdata/d2compiler/TestCompile2/boards/recursive.exp.json index 6d2c25d9e..9db6e6755 100644 --- a/testdata/d2compiler/TestCompile2/boards/recursive.exp.json +++ b/testdata/d2compiler/TestCompile2/boards/recursive.exp.json @@ -1442,6 +1442,53 @@ }, "edges": null, "objects": [ + { + "id": "clause", + "id_val": "clause", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "clause" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, { "id": "reindeer", "id_val": "reindeer", @@ -1815,6 +1862,100 @@ }, "edges": null, "objects": [ + { + "id": "clause", + "id_val": "clause", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "clause" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "reindeer", + "id_val": "reindeer", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "value": [ + { + "string": "reindeer", + "raw_string": "reindeer" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "reindeer" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, { "id": "montana", "id_val": "montana", diff --git a/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.exp.json b/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.exp.json new file mode 100644 index 000000000..d98c89221 --- /dev/null +++ b/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.exp.json @@ -0,0 +1,760 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-7:0:69", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:6:6", + "src": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,2:0:8-6:1:68", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,2:0:8-2:9:17", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,2:0:8-2:9:17", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,2:11:19-6:0:67", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,3:2:23-5:3:66", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,3:2:23-3:3:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,3:2:23-3:3:24", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,3:5:26-5:2:65", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:4:32-4:34:62", + "edges": [ + { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:5:33-4:11:39", + "src": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:5:33-4:7:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:5:33-4:6:34", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:9:37-4:11:39", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:10:38-4:11:39", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:12:40-4:15:43", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:16:44-4:29:57", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:16:44-4:21:49", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:22:50-4:29:57", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:31:59-4:34:62", + "raw": "0.1", + "value": "1/10" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "x", + "id_val": "x", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "x" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "1", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-7:0:69", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:6:6", + "src": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,2:0:8-6:1:68", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,2:0:8-2:9:17", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,2:0:8-2:9:17", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,2:11:19-6:0:67", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,3:2:23-5:3:66", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,3:2:23-3:3:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,3:2:23-3:3:24", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,3:5:26-5:2:65", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:4:32-4:34:62", + "edges": [ + { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:5:33-4:11:39", + "src": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:5:33-4:7:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:5:33-4:6:34", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:9:37-4:11:39", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:10:38-4:11:39", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:12:40-4:15:43", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:16:44-4:29:57", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:16:44-4:21:49", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:22:50-4:29:57", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:31:59-4:34:62", + "raw": "0.1", + "value": "1/10" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + }, + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": { + "opacity": { + "value": "0.1" + } + }, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:5:33-4:7:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:5:33-4:6:34", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "x", + "id_val": "x", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:9:37-4:11:39", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:10:38-4:11:39", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "x" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": null +} diff --git a/testdata/d2ir/TestCompile/classes/basic.exp.json b/testdata/d2ir/TestCompile/classes/basic.exp.json new file mode 100644 index 000000000..5b67fed1d --- /dev/null +++ b/testdata/d2ir/TestCompile/classes/basic.exp.json @@ -0,0 +1,504 @@ +{ + "fields": [ + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/classes/basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/basic.d2,0:0:0-0:1:1", + "key": { + "range": "TestCompile/classes/basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/basic.d2,3:16:40-3:22:46", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/basic.d2,3:10:34-3:14:38", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:14:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:9:33", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:10:34-3:14:38", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:22:46", + "key": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:14:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:9:33", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:10:34-3:14:38", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:16:40-3:22:46", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:9:33", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:14:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:9:33", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:10:34-3:14:38", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:22:46", + "key": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:14:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:9:33", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:10:34-3:14:38", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:16:40-3:22:46", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/basic.d2,2:2:15-2:7:20", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/basic.d2,2:2:15-2:7:20", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,2:2:15-2:7:20", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/basic.d2,2:2:15-4:3:50", + "key": { + "range": "TestCompile/classes/basic.d2,2:2:15-2:7:20", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,2:2:15-2:7:20", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/basic.d2,2:9:22-4:2:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:22:46", + "key": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:14:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:9:33", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:10:34-3:14:38", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:16:40-3:22:46", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/basic.d2,1:0:2-1:7:9", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/basic.d2,1:0:2-1:7:9", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,1:0:2-1:7:9", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/basic.d2,1:0:2-5:1:52", + "key": { + "range": "TestCompile/classes/basic.d2,1:0:2-1:7:9", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,1:0:2-1:7:9", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/basic.d2,1:9:11-5:0:51", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/basic.d2,2:2:15-4:3:50", + "key": { + "range": "TestCompile/classes/basic.d2,2:2:15-2:7:20", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,2:2:15-2:7:20", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/basic.d2,2:9:22-4:2:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:22:46", + "key": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:14:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:9:33", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:10:34-3:14:38", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/basic.d2,3:16:40-3:22:46", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/classes/inherited.exp.json b/testdata/d2ir/TestCompile/classes/inherited.exp.json new file mode 100644 index 000000000..8e5054f05 --- /dev/null +++ b/testdata/d2ir/TestCompile/classes/inherited.exp.json @@ -0,0 +1,9684 @@ +{ + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-4:1:50", + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,0:9:9-4:0:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "scenarios", + "composite": { + "fields": [ + { + "name": "hawaii", + "composite": { + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-4:1:50", + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,0:9:9-4:0:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "steps", + "composite": { + "fields": [ + { + "name": "1", + "composite": { + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "cherry", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-4:1:50", + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,0:9:9-4:0:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-13:9:186", + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,9:17:115-13:8:185", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,8:6:93-15:7:204", + "key": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,8:9:96-15:6:203", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-13:9:186", + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,9:17:115-13:8:185", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "2", + "composite": { + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "cherry", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-4:1:50", + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,0:9:9-4:0:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-13:9:186", + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,9:17:115-13:8:185", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "y", + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,16:6:211-18:7:233", + "key": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,16:9:214-18:6:232", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "3", + "composite": { + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "cherry", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-23:11:324", + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,21:18:282-23:10:323", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-4:1:50", + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,0:9:9-4:0:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-13:9:186", + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,9:17:115-13:8:185", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-24:9:334", + "key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,20:17:262-24:8:333", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-23:11:324", + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,21:18:282-23:10:323", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "y", + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "value": [ + { + "string": "3", + "raw_string": "3" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "value": [ + { + "string": "3", + "raw_string": "3" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,19:6:240-26:7:352", + "key": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "value": [ + { + "string": "3", + "raw_string": "3" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,19:9:243-26:6:351", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-24:9:334", + "key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,20:17:262-24:8:333", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-23:11:324", + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,21:18:282-23:10:323", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "4", + "composite": { + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "cherry", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-23:11:324", + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,21:18:282-23:10:323", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-4:1:50", + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,0:9:9-4:0:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-13:9:186", + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,9:17:115-13:8:185", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-24:9:334", + "key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,20:17:262-24:8:333", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-23:11:324", + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,21:18:282-23:10:323", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "key": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "y", + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "layers", + "composite": { + "fields": [ + { + "name": "deep", + "composite": { + "fields": [ + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "cherry", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-23:11:324", + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,21:18:282-23:10:323", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-4:1:50", + "key": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,0:9:9-4:0:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-13:9:186", + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,9:17:115-13:8:185", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-24:9:334", + "key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,20:17:262-24:8:333", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-23:11:324", + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,21:18:282-23:10:323", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "value": [ + { + "string": "deep", + "raw_string": "deep" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "value": [ + { + "string": "deep", + "raw_string": "deep" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-31:11:425", + "key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "value": [ + { + "string": "deep", + "raw_string": "deep" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,29:16:398-31:10:424", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,28:8:372-32:9:435", + "key": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,28:16:380-32:8:434", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-31:11:425", + "key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "value": [ + { + "string": "deep", + "raw_string": "deep" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,29:16:398-31:10:424", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "value": [ + { + "string": "4", + "raw_string": "4" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "value": [ + { + "string": "4", + "raw_string": "4" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,27:6:359-34:7:453", + "key": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "value": [ + { + "string": "4", + "raw_string": "4" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,27:9:362-34:6:452", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,28:8:372-32:9:435", + "key": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,28:16:380-32:8:434", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-31:11:425", + "key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "value": [ + { + "string": "deep", + "raw_string": "deep" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,29:16:398-31:10:424", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "key": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,7:2:78-7:7:83", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,7:2:78-7:7:83", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,7:2:78-7:7:83", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,7:2:78-35:5:459", + "key": { + "range": "TestCompile/classes/inherited.d2,7:2:78-7:7:83", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,7:2:78-7:7:83", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,7:9:85-35:4:458", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,8:6:93-15:7:204", + "key": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,8:9:96-15:6:203", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-13:9:186", + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,9:17:115-13:8:185", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,16:6:211-18:7:233", + "key": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,16:9:214-18:6:232", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,19:6:240-26:7:352", + "key": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "value": [ + { + "string": "3", + "raw_string": "3" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,19:9:243-26:6:351", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-24:9:334", + "key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,20:17:262-24:8:333", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-23:11:324", + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,21:18:282-23:10:323", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,27:6:359-34:7:453", + "key": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "value": [ + { + "string": "4", + "raw_string": "4" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,27:9:362-34:6:452", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,28:8:372-32:9:435", + "key": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,28:16:380-32:8:434", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-31:11:425", + "key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "value": [ + { + "string": "deep", + "raw_string": "deep" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,29:16:398-31:10:424", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "key": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,6:2:66-6:8:72", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,6:2:66-6:8:72", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,6:2:66-6:8:72", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,6:2:66-36:3:463", + "key": { + "range": "TestCompile/classes/inherited.d2,6:2:66-6:8:72", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,6:2:66-6:8:72", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,6:10:74-36:2:462", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,7:2:78-35:5:459", + "key": { + "range": "TestCompile/classes/inherited.d2,7:2:78-7:7:83", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,7:2:78-7:7:83", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,7:9:85-35:4:458", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,8:6:93-15:7:204", + "key": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,8:9:96-15:6:203", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-13:9:186", + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,9:17:115-13:8:185", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,16:6:211-18:7:233", + "key": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,16:9:214-18:6:232", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,19:6:240-26:7:352", + "key": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "value": [ + { + "string": "3", + "raw_string": "3" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,19:9:243-26:6:351", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-24:9:334", + "key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,20:17:262-24:8:333", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-23:11:324", + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,21:18:282-23:10:323", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,27:6:359-34:7:453", + "key": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "value": [ + { + "string": "4", + "raw_string": "4" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,27:9:362-34:6:452", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,28:8:372-32:9:435", + "key": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,28:16:380-32:8:434", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-31:11:425", + "key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "value": [ + { + "string": "deep", + "raw_string": "deep" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,29:16:398-31:10:424", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "key": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/inherited.d2,5:0:51-5:9:60", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/inherited.d2,5:0:51-5:9:60", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,5:0:51-5:9:60", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/inherited.d2,5:0:51-37:1:465", + "key": { + "range": "TestCompile/classes/inherited.d2,5:0:51-5:9:60", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,5:0:51-5:9:60", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,5:11:62-37:0:464", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,6:2:66-36:3:463", + "key": { + "range": "TestCompile/classes/inherited.d2,6:2:66-6:8:72", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,6:2:66-6:8:72", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,6:10:74-36:2:462", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,7:2:78-35:5:459", + "key": { + "range": "TestCompile/classes/inherited.d2,7:2:78-7:7:83", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,7:2:78-7:7:83", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,7:9:85-35:4:458", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,8:6:93-15:7:204", + "key": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,8:9:96-15:6:203", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-13:9:186", + "key": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,9:8:106-9:15:113", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,9:17:115-13:8:185", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-12:11:176", + "key": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,10:18:135-12:10:175", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:27:164", + "key": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:22:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "key": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,16:6:211-18:7:233", + "key": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,16:9:214-18:6:232", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "key": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,19:6:240-26:7:352", + "key": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "value": [ + { + "string": "3", + "raw_string": "3" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,19:9:243-26:6:351", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-24:9:334", + "key": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,20:8:253-20:15:260", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,20:17:262-24:8:333", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-23:11:324", + "key": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,21:10:274-21:16:280", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,21:18:282-23:10:323", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:28:312", + "key": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:22:306", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:12:296-22:17:301", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:18:302-22:22:306", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", + "value": [ + { + "string": "blue", + "raw_string": "blue" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "key": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,25:8:343-25:9:344", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,27:6:359-34:7:453", + "key": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "value": [ + { + "string": "4", + "raw_string": "4" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,27:9:362-34:6:452", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,28:8:372-32:9:435", + "key": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,28:16:380-32:8:434", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-31:11:425", + "key": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "value": [ + { + "string": "deep", + "raw_string": "deep" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/inherited.d2,29:16:398-31:10:424", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "key": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "key": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/inherited.d2,33:8:444-33:9:445", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/classes/layer-modify.exp.json b/testdata/d2ir/TestCompile/classes/layer-modify.exp.json new file mode 100644 index 000000000..b1fdcab52 --- /dev/null +++ b/testdata/d2ir/TestCompile/classes/layer-modify.exp.json @@ -0,0 +1,1583 @@ +{ + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "orb", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:22:42", + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:22:42", + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-3:3:46", + "key": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/layer-modify.d2,1:7:18-3:2:45", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:22:42", + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-4:1:48", + "key": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/layer-modify.d2,0:9:9-4:0:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-3:3:46", + "key": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/layer-modify.d2,1:7:18-3:2:45", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:22:42", + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "layers", + "composite": { + "fields": [ + { + "name": "x", + "composite": { + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "orb", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:22:42", + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + } + } + } + } + ] + }, + { + "name": "stroke", + "primary": { + "value": { + "range": "TestCompile/classes/layer-modify.d2,7:30:96-7:33:99", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,7:22:88-7:28:94", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:28:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:11:77", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:12:78-7:15:81", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:16:82-7:21:87", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:22:88-7:28:94", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:33:99", + "key": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:28:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:11:77", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:12:78-7:15:81", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:16:82-7:21:87", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:22:88-7:28:94", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:30:96-7:33:99", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:22:42", + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,7:16:82-7:21:87", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:28:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:11:77", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:12:78-7:15:81", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:16:82-7:21:87", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:22:88-7:28:94", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:33:99", + "key": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:28:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:11:77", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:12:78-7:15:81", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:16:82-7:21:87", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:22:88-7:28:94", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:30:96-7:33:99", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-3:3:46", + "key": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/layer-modify.d2,1:7:18-3:2:45", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:22:42", + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,7:12:78-7:15:81", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:28:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:11:77", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:12:78-7:15:81", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:16:82-7:21:87", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:22:88-7:28:94", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:33:99", + "key": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:28:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:11:77", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:12:78-7:15:81", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:16:82-7:21:87", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:22:88-7:28:94", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:30:96-7:33:99", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-4:1:48", + "key": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/layer-modify.d2,0:9:9-4:0:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-3:3:46", + "key": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/layer-modify.d2,1:7:18-3:2:45", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:22:42", + "key": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:14:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,6:2:61-6:3:62", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,6:2:61-6:3:62", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,6:2:61-6:3:62", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,6:2:61-8:3:103", + "key": { + "range": "TestCompile/classes/layer-modify.d2,6:2:61-6:3:62", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,6:2:61-6:3:62", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/layer-modify.d2,6:5:64-8:2:102", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:33:99", + "key": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:28:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:11:77", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:12:78-7:15:81", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:16:82-7:21:87", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:22:88-7:28:94", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:30:96-7:33:99", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/layer-modify.d2,5:0:49-5:6:55", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/layer-modify.d2,5:0:49-5:6:55", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,5:0:49-5:6:55", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/layer-modify.d2,5:0:49-9:1:105", + "key": { + "range": "TestCompile/classes/layer-modify.d2,5:0:49-5:6:55", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,5:0:49-5:6:55", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/layer-modify.d2,5:8:57-9:0:104", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/layer-modify.d2,6:2:61-8:3:103", + "key": { + "range": "TestCompile/classes/layer-modify.d2,6:2:61-6:3:62", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,6:2:61-6:3:62", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/layer-modify.d2,6:5:64-8:2:102", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:33:99", + "key": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:28:94", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:4:70-7:11:77", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:12:78-7:15:81", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:16:82-7:21:87", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:22:88-7:28:94", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/layer-modify.d2,7:30:96-7:33:99", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/classes/merge-classes.exp.json b/testdata/d2ir/TestCompile/classes/merge-classes.exp.json new file mode 100644 index 000000000..4c52c1b60 --- /dev/null +++ b/testdata/d2ir/TestCompile/classes/merge-classes.exp.json @@ -0,0 +1,1202 @@ +{ + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/merge-classes.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge-classes.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + }, + { + "name": "width", + "primary": { + "value": { + "range": "TestCompile/classes/merge-classes.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:11:56", + "key": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge-classes.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge-classes.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge-classes.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge-classes.d2,1:2:13-4:3:60", + "key": { + "range": "TestCompile/classes/merge-classes.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,1:9:20-4:2:59", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:11:56", + "key": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge-classes.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge-classes.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge-classes.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge-classes.d2,0:0:0-5:1:62", + "key": { + "range": "TestCompile/classes/merge-classes.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,0:9:9-5:0:61", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,1:2:13-4:3:60", + "key": { + "range": "TestCompile/classes/merge-classes.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,1:9:20-4:2:59", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:11:56", + "key": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge-classes.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "layers", + "composite": { + "fields": [ + { + "name": "hawaii", + "composite": { + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "width", + "primary": { + "value": { + "range": "TestCompile/classes/merge-classes.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:19:134", + "key": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge-classes.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-11:7:142", + "key": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,9:13:113-11:6:141", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:19:134", + "key": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge-classes.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-8:11:96", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-8:11:96", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-8:11:96", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-12:5:148", + "key": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-8:11:96", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-8:11:96", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,8:13:98-12:4:147", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-11:7:142", + "key": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,9:13:113-11:6:141", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:19:134", + "key": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge-classes.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge-classes.d2,7:2:75-7:8:81", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge-classes.d2,7:2:75-7:8:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,7:2:75-7:8:81", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge-classes.d2,7:2:75-13:3:152", + "key": { + "range": "TestCompile/classes/merge-classes.d2,7:2:75-7:8:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,7:2:75-7:8:81", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,7:10:83-13:2:151", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-12:5:148", + "key": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-8:11:96", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-8:11:96", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,8:13:98-12:4:147", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-11:7:142", + "key": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,9:13:113-11:6:141", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:19:134", + "key": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge-classes.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge-classes.d2,6:0:63-6:6:69", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge-classes.d2,6:0:63-6:6:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,6:0:63-6:6:69", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge-classes.d2,6:0:63-14:1:154", + "key": { + "range": "TestCompile/classes/merge-classes.d2,6:0:63-6:6:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,6:0:63-6:6:69", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,6:8:71-14:0:153", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,7:2:75-13:3:152", + "key": { + "range": "TestCompile/classes/merge-classes.d2,7:2:75-7:8:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,7:2:75-7:8:81", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,7:10:83-13:2:151", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-12:5:148", + "key": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-8:11:96", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,8:4:89-8:11:96", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,8:13:98-12:4:147", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-11:7:142", + "key": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge-classes.d2,9:13:113-11:6:141", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:19:134", + "key": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge-classes.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge-classes.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/classes/merge.exp.json b/testdata/d2ir/TestCompile/classes/merge.exp.json new file mode 100644 index 000000000..9cc9a1320 --- /dev/null +++ b/testdata/d2ir/TestCompile/classes/merge.exp.json @@ -0,0 +1,1625 @@ +{ + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + }, + { + "name": "width", + "primary": { + "value": { + "range": "TestCompile/classes/merge.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:11:56", + "key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,1:2:13-4:3:60", + "key": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,1:9:20-4:2:59", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:11:56", + "key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,0:0:0-5:1:62", + "key": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,0:9:9-5:0:61", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,1:2:13-4:3:60", + "key": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,1:9:20-4:2:59", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:11:56", + "key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "layers", + "composite": { + "fields": [ + { + "name": "hawaii", + "composite": { + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + }, + { + "name": "width", + "primary": { + "value": { + "range": "TestCompile/classes/merge.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:11:56", + "key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:19:134", + "key": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,1:2:13-4:3:60", + "key": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,1:9:20-4:2:59", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:11:56", + "key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/classes/merge.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,9:6:106-9:11:111", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,9:6:106-11:7:142", + "key": { + "range": "TestCompile/classes/merge.d2,9:6:106-9:11:111", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,9:13:113-11:6:141", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:19:134", + "key": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,0:0:0-5:1:62", + "key": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,0:9:9-5:0:61", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,1:2:13-4:3:60", + "key": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,1:9:20-4:2:59", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:11:56", + "key": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge.d2,3:9:54-3:11:56", + "raw": "10", + "value": "10" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,7:2:75-7:8:81", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,7:2:75-7:8:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,7:2:75-7:8:81", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,7:2:75-13:3:152", + "key": { + "range": "TestCompile/classes/merge.d2,7:2:75-7:8:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,7:2:75-7:8:81", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,7:10:83-13:2:151", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,8:4:89-12:5:148", + "key": { + "range": "TestCompile/classes/merge.d2,8:4:89-8:11:96", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,8:4:89-8:11:96", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,8:13:98-12:4:147", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,9:6:106-11:7:142", + "key": { + "range": "TestCompile/classes/merge.d2,9:6:106-9:11:111", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,9:13:113-11:6:141", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:19:134", + "key": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/merge.d2,6:0:63-6:6:69", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/merge.d2,6:0:63-6:6:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,6:0:63-6:6:69", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/merge.d2,6:0:63-14:1:154", + "key": { + "range": "TestCompile/classes/merge.d2,6:0:63-6:6:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,6:0:63-6:6:69", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,6:8:71-14:0:153", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,7:2:75-13:3:152", + "key": { + "range": "TestCompile/classes/merge.d2,7:2:75-7:8:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,7:2:75-7:8:81", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,7:10:83-13:2:151", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,8:4:89-12:5:148", + "key": { + "range": "TestCompile/classes/merge.d2,8:4:89-8:11:96", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,8:4:89-8:11:96", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,8:13:98-12:4:147", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,9:6:106-11:7:142", + "key": { + "range": "TestCompile/classes/merge.d2,9:6:106-9:11:111", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,9:6:106-9:11:111", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/merge.d2,9:13:113-11:6:141", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:19:134", + "key": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/merge.d2,10:8:123-10:13:128", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/classes/merge.d2,10:15:130-10:19:134", + "raw": "9000", + "value": "9000" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/classes/nested.exp.json b/testdata/d2ir/TestCompile/classes/nested.exp.json new file mode 100644 index 000000000..576dc9642 --- /dev/null +++ b/testdata/d2ir/TestCompile/classes/nested.exp.json @@ -0,0 +1,1924 @@ +{ + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,0:0:0-4:1:50", + "key": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,0:9:9-4:0:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "layers", + "composite": { + "fields": [ + { + "name": "hawaii", + "composite": { + "fields": [ + { + "name": "layers", + "composite": { + "fields": [ + { + "name": "maui", + "composite": { + "fields": [ + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "key": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,0:0:0-4:1:50", + "key": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,0:9:9-4:0:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "value": [ + { + "string": "maui", + "raw_string": "maui" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "value": [ + { + "string": "maui", + "raw_string": "maui" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,8:6:91-10:7:116", + "key": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "value": [ + { + "string": "maui", + "raw_string": "maui" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,8:12:97-10:6:115", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "key": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,7:2:75-7:8:81", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,7:2:75-7:8:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,7:2:75-7:8:81", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,7:2:75-11:5:122", + "key": { + "range": "TestCompile/classes/nested.d2,7:2:75-7:8:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,7:2:75-7:8:81", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,7:10:83-11:4:121", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,8:6:91-10:7:116", + "key": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "value": [ + { + "string": "maui", + "raw_string": "maui" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,8:12:97-10:6:115", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "key": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,0:0:0-4:1:50", + "key": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,0:9:9-4:0:49", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,1:2:13-3:3:48", + "key": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,1:9:20-3:2:47", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:22:44", + "key": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:14:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,6:2:63-6:8:69", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,6:2:63-6:8:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,6:2:63-6:8:69", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,6:2:63-12:3:126", + "key": { + "range": "TestCompile/classes/nested.d2,6:2:63-6:8:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,6:2:63-6:8:69", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,6:10:71-12:2:125", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,7:2:75-11:5:122", + "key": { + "range": "TestCompile/classes/nested.d2,7:2:75-7:8:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,7:2:75-7:8:81", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,7:10:83-11:4:121", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,8:6:91-10:7:116", + "key": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "value": [ + { + "string": "maui", + "raw_string": "maui" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,8:12:97-10:6:115", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "key": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nested.d2,5:0:51-5:6:57", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nested.d2,5:0:51-5:6:57", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,5:0:51-5:6:57", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nested.d2,5:0:51-13:1:128", + "key": { + "range": "TestCompile/classes/nested.d2,5:0:51-5:6:57", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,5:0:51-5:6:57", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,5:8:59-13:0:127", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,6:2:63-12:3:126", + "key": { + "range": "TestCompile/classes/nested.d2,6:2:63-6:8:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,6:2:63-6:8:69", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,6:10:71-12:2:125", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,7:2:75-11:5:122", + "key": { + "range": "TestCompile/classes/nested.d2,7:2:75-7:8:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,7:2:75-7:8:81", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,7:10:83-11:4:121", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,8:6:91-10:7:116", + "key": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "value": [ + { + "string": "maui", + "raw_string": "maui" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nested.d2,8:12:97-10:6:115", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "key": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/classes/nonroot-class.exp.json b/testdata/d2ir/TestCompile/classes/nonroot-class.exp.json new file mode 100644 index 000000000..7569a2187 --- /dev/null +++ b/testdata/d2ir/TestCompile/classes/nonroot-class.exp.json @@ -0,0 +1,617 @@ +{ + "fields": [ + { + "name": "x", + "composite": { + "fields": [ + { + "name": "classes", + "composite": { + "fields": [ + { + "name": "mango", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/classes/nonroot-class.d2,3:18:49-3:24:55", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nonroot-class.d2,3:12:43-3:16:47", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:16:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:11:42", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:12:43-3:16:47", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:24:55", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:16:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:11:42", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:12:43-3:16:47", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:18:49-3:24:55", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:11:42", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:16:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:11:42", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:12:43-3:16:47", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:24:55", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:16:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:11:42", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:12:43-3:16:47", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:18:49-3:24:55", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-2:9:27", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-2:9:27", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-2:9:27", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-4:5:61", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-2:9:27", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-2:9:27", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nonroot-class.d2,2:11:29-4:4:60", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:24:55", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:16:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:11:42", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:12:43-3:16:47", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:18:49-3:24:55", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nonroot-class.d2,1:2:7-1:9:14", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nonroot-class.d2,1:2:7-1:9:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,1:2:7-1:9:14", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nonroot-class.d2,1:2:7-5:3:65", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,1:2:7-1:9:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,1:2:7-1:9:14", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nonroot-class.d2,1:11:16-5:2:64", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-4:5:61", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-2:9:27", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-2:9:27", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nonroot-class.d2,2:11:29-4:4:60", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:24:55", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:16:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:11:42", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:12:43-3:16:47", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:18:49-3:24:55", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/classes/nonroot-class.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/classes/nonroot-class.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/classes/nonroot-class.d2,0:0:0-6:1:67", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nonroot-class.d2,0:3:3-6:0:66", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nonroot-class.d2,1:2:7-5:3:65", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,1:2:7-1:9:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,1:2:7-1:9:14", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nonroot-class.d2,1:11:16-5:2:64", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-4:5:61", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-2:9:27", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,2:4:22-2:9:27", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/classes/nonroot-class.d2,2:11:29-4:4:60", + "nodes": [ + { + "map_key": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:24:55", + "key": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:16:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:6:37-3:11:42", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:12:43-3:16:47", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/classes/nonroot-class.d2,3:18:49-3:24:55", + "value": [ + { + "string": "orange", + "raw_string": "orange" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/scenarios/edge.exp.json b/testdata/d2ir/TestCompile/scenarios/edge.exp.json new file mode 100644 index 000000000..e73a9415b --- /dev/null +++ b/testdata/d2ir/TestCompile/scenarios/edge.exp.json @@ -0,0 +1,1762 @@ +{ + "fields": [ + { + "name": "a", + "references": [ + { + "string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "b", + "references": [ + { + "string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "scenarios", + "composite": { + "fields": [ + { + "name": "1", + "composite": { + "fields": [ + { + "name": "a", + "references": [ + { + "string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,3:4:31-3:34:61", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/scenarios/edge.d2,3:12:39-3:15:42", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:29:56", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/scenarios/edge.d2,3:31:58-3:34:61", + "raw": "0.1", + "value": "1/10" + } + } + } + } + } + ] + }, + { + "name": "b", + "references": [ + { + "string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,3:4:31-3:34:61", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/scenarios/edge.d2,3:12:39-3:15:42", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:29:56", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/scenarios/edge.d2,3:31:58-3:34:61", + "raw": "0.1", + "value": "1/10" + } + } + } + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "a" + ], + "src_arrow": false, + "dst_path": [ + "b" + ], + "dst_arrow": true, + "index": 0 + }, + "map": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "opacity", + "primary": { + "value": { + "range": "TestCompile/scenarios/edge.d2,3:31:58-3:34:61", + "raw": "0.1", + "value": "1/10" + } + }, + "references": [ + { + "string": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:29:56", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,3:4:31-3:34:61", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/scenarios/edge.d2,3:12:39-3:15:42", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:29:56", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/scenarios/edge.d2,3:31:58-3:34:61", + "raw": "0.1", + "value": "1/10" + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:29:56", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,3:4:31-3:34:61", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/scenarios/edge.d2,3:12:39-3:15:42", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:29:56", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/scenarios/edge.d2,3:31:58-3:34:61", + "raw": "0.1", + "value": "1/10" + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,3:4:31-3:34:61", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/scenarios/edge.d2,3:12:39-3:15:42", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:29:56", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/scenarios/edge.d2,3:31:58-3:34:61", + "raw": "0.1", + "value": "1/10" + } + } + } + } + } + ] + } + ] + }, + "references": [ + { + "string": { + "range": "TestCompile/scenarios/edge.d2,2:2:22-2:3:23", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,2:2:22-2:3:23", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,2:2:22-2:3:23", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/scenarios/edge.d2,2:2:22-4:3:65", + "key": { + "range": "TestCompile/scenarios/edge.d2,2:2:22-2:3:23", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,2:2:22-2:3:23", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/scenarios/edge.d2,2:5:25-4:2:64", + "nodes": [ + { + "map_key": { + "range": "TestCompile/scenarios/edge.d2,3:4:31-3:34:61", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/scenarios/edge.d2,3:12:39-3:15:42", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:29:56", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/scenarios/edge.d2,3:31:58-3:34:61", + "raw": "0.1", + "value": "1/10" + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/scenarios/edge.d2,1:0:7-1:9:16", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,1:0:7-1:9:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,1:0:7-1:9:16", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/scenarios/edge.d2,1:0:7-5:1:67", + "key": { + "range": "TestCompile/scenarios/edge.d2,1:0:7-1:9:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,1:0:7-1:9:16", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/scenarios/edge.d2,1:11:18-5:0:66", + "nodes": [ + { + "map_key": { + "range": "TestCompile/scenarios/edge.d2,2:2:22-4:3:65", + "key": { + "range": "TestCompile/scenarios/edge.d2,2:2:22-2:3:23", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,2:2:22-2:3:23", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/scenarios/edge.d2,2:5:25-4:2:64", + "nodes": [ + { + "map_key": { + "range": "TestCompile/scenarios/edge.d2,3:4:31-3:34:61", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:11:38", + "src": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:7:34", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,3:9:36-3:11:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/scenarios/edge.d2,3:12:39-3:15:42", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:29:56", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/scenarios/edge.d2,3:31:58-3:34:61", + "raw": "0.1", + "value": "1/10" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "a" + ], + "src_arrow": false, + "dst_path": [ + "b" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + } + ] +}