Merge pull request #1913 from alixander/compiler-error
fix nested spread substitutions compiler error
This commit is contained in:
commit
2cec1f43e0
7 changed files with 669 additions and 4 deletions
|
|
@ -5,3 +5,4 @@
|
|||
#### Bugfixes ⛑️
|
||||
|
||||
- Fix executable plugins that implement standalone router [#1910](https://github.com/terrastruct/d2/pull/1910)
|
||||
- Fix compiler error with multiple nested spread substitutions [#1913](https://github.com/terrastruct/d2/pull/1913)
|
||||
|
|
|
|||
|
|
@ -127,14 +127,21 @@ func (c *compiler) compileSubstitutions(m *Map, varsStack []*Map) {
|
|||
varsStack = append([]*Map{f.Map()}, varsStack...)
|
||||
}
|
||||
}
|
||||
for _, f := range m.Fields {
|
||||
for i := 0; i < len(m.Fields); i++ {
|
||||
f := m.Fields[i]
|
||||
if f.Primary() != nil {
|
||||
c.resolveSubstitutions(varsStack, f)
|
||||
removed := c.resolveSubstitutions(varsStack, f)
|
||||
if removed {
|
||||
i--
|
||||
}
|
||||
}
|
||||
if arr, ok := f.Composite.(*Array); ok {
|
||||
for _, val := range arr.Values {
|
||||
if scalar, ok := val.(*Scalar); ok {
|
||||
c.resolveSubstitutions(varsStack, scalar)
|
||||
removed := c.resolveSubstitutions(varsStack, scalar)
|
||||
if removed {
|
||||
i--
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if f.Map() != nil {
|
||||
|
|
@ -213,7 +220,7 @@ func (c *compiler) validateConfigs(configs *Field) {
|
|||
}
|
||||
}
|
||||
|
||||
func (c *compiler) resolveSubstitutions(varsStack []*Map, node Node) {
|
||||
func (c *compiler) resolveSubstitutions(varsStack []*Map, node Node) (removedField bool) {
|
||||
var subbed bool
|
||||
var resolvedField *Field
|
||||
|
||||
|
|
@ -264,6 +271,7 @@ func (c *compiler) resolveSubstitutions(varsStack []*Map, node Node) {
|
|||
for i, f2 := range m.Fields {
|
||||
if n == f2 {
|
||||
m.Fields = append(m.Fields[:i], m.Fields[i+1:]...)
|
||||
removedField = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
|
@ -334,6 +342,7 @@ func (c *compiler) resolveSubstitutions(varsStack []*Map, node Node) {
|
|||
s.Coalesce()
|
||||
}
|
||||
}
|
||||
return removedField
|
||||
}
|
||||
|
||||
func (c *compiler) resolveSubstitution(vars *Map, substitution *d2ast.Substitution) *Field {
|
||||
|
|
|
|||
18
e2etests/testdata/txtar.txt
vendored
18
e2etests/testdata/txtar.txt
vendored
|
|
@ -188,3 +188,21 @@ b: hello there cat {
|
|||
width: 64
|
||||
height: 66
|
||||
}
|
||||
|
||||
-- nested-spread-substitutions-regression --
|
||||
vars: {
|
||||
dog1: Frido {
|
||||
shape: circle
|
||||
}
|
||||
my-house: {
|
||||
label: "Home"
|
||||
}
|
||||
}
|
||||
|
||||
ok: {
|
||||
...${my-house}
|
||||
dog1: {
|
||||
...${dog1}
|
||||
}
|
||||
dog1 -> dog3
|
||||
}
|
||||
|
|
|
|||
219
e2etests/testdata/txtar/nested-spread-substitutions-regression/dagre/board.exp.json
generated
vendored
Normal file
219
e2etests/testdata/txtar/nested-spread-substitutions-regression/dagre/board.exp.json
generated
vendored
Normal file
|
|
@ -0,0 +1,219 @@
|
|||
{
|
||||
"name": "",
|
||||
"isFolderOnly": false,
|
||||
"fontFamily": "SourceSansPro",
|
||||
"shapes": [
|
||||
{
|
||||
"id": "ok",
|
||||
"type": "rectangle",
|
||||
"pos": {
|
||||
"x": 10,
|
||||
"y": 20
|
||||
},
|
||||
"width": 157,
|
||||
"height": 323,
|
||||
"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": "Home",
|
||||
"fontSize": 28,
|
||||
"fontFamily": "DEFAULT",
|
||||
"language": "",
|
||||
"color": "N1",
|
||||
"italic": false,
|
||||
"bold": false,
|
||||
"underline": false,
|
||||
"labelWidth": 68,
|
||||
"labelHeight": 36,
|
||||
"labelPosition": "OUTSIDE_TOP_CENTER",
|
||||
"zIndex": 0,
|
||||
"level": 1
|
||||
},
|
||||
{
|
||||
"id": "ok.dog1",
|
||||
"type": "oval",
|
||||
"pos": {
|
||||
"x": 40,
|
||||
"y": 50
|
||||
},
|
||||
"width": 97,
|
||||
"height": 97,
|
||||
"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": "dog1",
|
||||
"fontSize": 16,
|
||||
"fontFamily": "DEFAULT",
|
||||
"language": "",
|
||||
"color": "N1",
|
||||
"italic": false,
|
||||
"bold": true,
|
||||
"underline": false,
|
||||
"labelWidth": 35,
|
||||
"labelHeight": 21,
|
||||
"labelPosition": "INSIDE_MIDDLE_CENTER",
|
||||
"zIndex": 0,
|
||||
"level": 2
|
||||
},
|
||||
{
|
||||
"id": "ok.dog3",
|
||||
"type": "rectangle",
|
||||
"pos": {
|
||||
"x": 49,
|
||||
"y": 247
|
||||
},
|
||||
"width": 80,
|
||||
"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": "dog3",
|
||||
"fontSize": 16,
|
||||
"fontFamily": "DEFAULT",
|
||||
"language": "",
|
||||
"color": "N1",
|
||||
"italic": false,
|
||||
"bold": true,
|
||||
"underline": false,
|
||||
"labelWidth": 35,
|
||||
"labelHeight": 21,
|
||||
"labelPosition": "INSIDE_MIDDLE_CENTER",
|
||||
"zIndex": 0,
|
||||
"level": 2
|
||||
}
|
||||
],
|
||||
"connections": [
|
||||
{
|
||||
"id": "ok.(dog1 -> dog3)[0]",
|
||||
"src": "ok.dog1",
|
||||
"srcArrow": "none",
|
||||
"dst": "ok.dog3",
|
||||
"dstArrow": "triangle",
|
||||
"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": 89,
|
||||
"y": 147
|
||||
},
|
||||
{
|
||||
"x": 88.5999984741211,
|
||||
"y": 187
|
||||
},
|
||||
{
|
||||
"x": 88.5,
|
||||
"y": 207
|
||||
},
|
||||
{
|
||||
"x": 88.5,
|
||||
"y": 247
|
||||
}
|
||||
],
|
||||
"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
|
||||
}
|
||||
}
|
||||
104
e2etests/testdata/txtar/nested-spread-substitutions-regression/dagre/sketch.exp.svg
vendored
Normal file
104
e2etests/testdata/txtar/nested-spread-substitutions-regression/dagre/sketch.exp.svg
vendored
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.6.4-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 159 365"><svg id="d2-svg" class="d2-3641643904" width="159" height="365" viewBox="9 -21 159 365"><rect x="9.000000" y="-21.000000" width="159.000000" height="365.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
|
||||
.d2-3641643904 .text {
|
||||
font-family: "d2-3641643904-font-regular";
|
||||
}
|
||||
@font-face {
|
||||
font-family: d2-3641643904-font-regular;
|
||||
src: url("data:application/font-woff;base64,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");
|
||||
}
|
||||
.d2-3641643904 .text-bold {
|
||||
font-family: "d2-3641643904-font-bold";
|
||||
}
|
||||
@font-face {
|
||||
font-family: d2-3641643904-font-bold;
|
||||
src: url("data:application/font-woff;base64,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");
|
||||
}]]></style><style type="text/css"><![CDATA[.shape {
|
||||
shape-rendering: geometricPrecision;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
.connection {
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
.blend {
|
||||
mix-blend-mode: multiply;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.d2-3641643904 .fill-N1{fill:#0A0F25;}
|
||||
.d2-3641643904 .fill-N2{fill:#676C7E;}
|
||||
.d2-3641643904 .fill-N3{fill:#9499AB;}
|
||||
.d2-3641643904 .fill-N4{fill:#CFD2DD;}
|
||||
.d2-3641643904 .fill-N5{fill:#DEE1EB;}
|
||||
.d2-3641643904 .fill-N6{fill:#EEF1F8;}
|
||||
.d2-3641643904 .fill-N7{fill:#FFFFFF;}
|
||||
.d2-3641643904 .fill-B1{fill:#0D32B2;}
|
||||
.d2-3641643904 .fill-B2{fill:#0D32B2;}
|
||||
.d2-3641643904 .fill-B3{fill:#E3E9FD;}
|
||||
.d2-3641643904 .fill-B4{fill:#E3E9FD;}
|
||||
.d2-3641643904 .fill-B5{fill:#EDF0FD;}
|
||||
.d2-3641643904 .fill-B6{fill:#F7F8FE;}
|
||||
.d2-3641643904 .fill-AA2{fill:#4A6FF3;}
|
||||
.d2-3641643904 .fill-AA4{fill:#EDF0FD;}
|
||||
.d2-3641643904 .fill-AA5{fill:#F7F8FE;}
|
||||
.d2-3641643904 .fill-AB4{fill:#EDF0FD;}
|
||||
.d2-3641643904 .fill-AB5{fill:#F7F8FE;}
|
||||
.d2-3641643904 .stroke-N1{stroke:#0A0F25;}
|
||||
.d2-3641643904 .stroke-N2{stroke:#676C7E;}
|
||||
.d2-3641643904 .stroke-N3{stroke:#9499AB;}
|
||||
.d2-3641643904 .stroke-N4{stroke:#CFD2DD;}
|
||||
.d2-3641643904 .stroke-N5{stroke:#DEE1EB;}
|
||||
.d2-3641643904 .stroke-N6{stroke:#EEF1F8;}
|
||||
.d2-3641643904 .stroke-N7{stroke:#FFFFFF;}
|
||||
.d2-3641643904 .stroke-B1{stroke:#0D32B2;}
|
||||
.d2-3641643904 .stroke-B2{stroke:#0D32B2;}
|
||||
.d2-3641643904 .stroke-B3{stroke:#E3E9FD;}
|
||||
.d2-3641643904 .stroke-B4{stroke:#E3E9FD;}
|
||||
.d2-3641643904 .stroke-B5{stroke:#EDF0FD;}
|
||||
.d2-3641643904 .stroke-B6{stroke:#F7F8FE;}
|
||||
.d2-3641643904 .stroke-AA2{stroke:#4A6FF3;}
|
||||
.d2-3641643904 .stroke-AA4{stroke:#EDF0FD;}
|
||||
.d2-3641643904 .stroke-AA5{stroke:#F7F8FE;}
|
||||
.d2-3641643904 .stroke-AB4{stroke:#EDF0FD;}
|
||||
.d2-3641643904 .stroke-AB5{stroke:#F7F8FE;}
|
||||
.d2-3641643904 .background-color-N1{background-color:#0A0F25;}
|
||||
.d2-3641643904 .background-color-N2{background-color:#676C7E;}
|
||||
.d2-3641643904 .background-color-N3{background-color:#9499AB;}
|
||||
.d2-3641643904 .background-color-N4{background-color:#CFD2DD;}
|
||||
.d2-3641643904 .background-color-N5{background-color:#DEE1EB;}
|
||||
.d2-3641643904 .background-color-N6{background-color:#EEF1F8;}
|
||||
.d2-3641643904 .background-color-N7{background-color:#FFFFFF;}
|
||||
.d2-3641643904 .background-color-B1{background-color:#0D32B2;}
|
||||
.d2-3641643904 .background-color-B2{background-color:#0D32B2;}
|
||||
.d2-3641643904 .background-color-B3{background-color:#E3E9FD;}
|
||||
.d2-3641643904 .background-color-B4{background-color:#E3E9FD;}
|
||||
.d2-3641643904 .background-color-B5{background-color:#EDF0FD;}
|
||||
.d2-3641643904 .background-color-B6{background-color:#F7F8FE;}
|
||||
.d2-3641643904 .background-color-AA2{background-color:#4A6FF3;}
|
||||
.d2-3641643904 .background-color-AA4{background-color:#EDF0FD;}
|
||||
.d2-3641643904 .background-color-AA5{background-color:#F7F8FE;}
|
||||
.d2-3641643904 .background-color-AB4{background-color:#EDF0FD;}
|
||||
.d2-3641643904 .background-color-AB5{background-color:#F7F8FE;}
|
||||
.d2-3641643904 .color-N1{color:#0A0F25;}
|
||||
.d2-3641643904 .color-N2{color:#676C7E;}
|
||||
.d2-3641643904 .color-N3{color:#9499AB;}
|
||||
.d2-3641643904 .color-N4{color:#CFD2DD;}
|
||||
.d2-3641643904 .color-N5{color:#DEE1EB;}
|
||||
.d2-3641643904 .color-N6{color:#EEF1F8;}
|
||||
.d2-3641643904 .color-N7{color:#FFFFFF;}
|
||||
.d2-3641643904 .color-B1{color:#0D32B2;}
|
||||
.d2-3641643904 .color-B2{color:#0D32B2;}
|
||||
.d2-3641643904 .color-B3{color:#E3E9FD;}
|
||||
.d2-3641643904 .color-B4{color:#E3E9FD;}
|
||||
.d2-3641643904 .color-B5{color:#EDF0FD;}
|
||||
.d2-3641643904 .color-B6{color:#F7F8FE;}
|
||||
.d2-3641643904 .color-AA2{color:#4A6FF3;}
|
||||
.d2-3641643904 .color-AA4{color:#EDF0FD;}
|
||||
.d2-3641643904 .color-AA5{color:#F7F8FE;}
|
||||
.d2-3641643904 .color-AB4{color:#EDF0FD;}
|
||||
.d2-3641643904 .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}]]></style><g id="ok"><g class="shape" ><rect x="10.000000" y="20.000000" width="157.000000" height="323.000000" class=" stroke-B1 fill-B4" style="stroke-width:2;" /></g><text x="88.500000" y="7.000000" class="text fill-N1" style="text-anchor:middle;font-size:28px">Home</text></g><g id="ok.dog1"><g class="shape" ><ellipse rx="48.500000" ry="48.500000" cx="88.500000" cy="98.500000" class="shape stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="88.500000" y="104.000000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">dog1</text></g><g id="ok.dog3"><g class="shape" ><rect x="49.000000" y="247.000000" width="80.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="89.000000" y="285.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">dog3</text></g><g id="ok.(dog1 -> dog3)[0]"><marker id="mk-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 88.980001 148.999900 C 88.599998 187.000000 88.500000 207.000000 88.500000 243.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#d2-3641643904)" /></g><mask id="d2-3641643904" maskUnits="userSpaceOnUse" x="9" y="-21" width="159" height="365">
|
||||
<rect x="9" y="-21" width="159" height="365" fill="white"></rect>
|
||||
<rect x="54.500000" y="-21.000000" width="68" height="36" fill="rgba(0,0,0,0.75)"></rect>
|
||||
<rect x="71.000000" y="88.000000" width="35" height="21" fill="rgba(0,0,0,0.75)"></rect>
|
||||
<rect x="71.500000" y="269.500000" width="35" height="21" fill="rgba(0,0,0,0.75)"></rect>
|
||||
</mask></svg></svg>
|
||||
|
After Width: | Height: | Size: 14 KiB |
210
e2etests/testdata/txtar/nested-spread-substitutions-regression/elk/board.exp.json
generated
vendored
Normal file
210
e2etests/testdata/txtar/nested-spread-substitutions-regression/elk/board.exp.json
generated
vendored
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
{
|
||||
"name": "",
|
||||
"isFolderOnly": false,
|
||||
"fontFamily": "SourceSansPro",
|
||||
"shapes": [
|
||||
{
|
||||
"id": "ok",
|
||||
"type": "rectangle",
|
||||
"pos": {
|
||||
"x": 12,
|
||||
"y": 12
|
||||
},
|
||||
"width": 197,
|
||||
"height": 333,
|
||||
"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": "Home",
|
||||
"fontSize": 28,
|
||||
"fontFamily": "DEFAULT",
|
||||
"language": "",
|
||||
"color": "N1",
|
||||
"italic": false,
|
||||
"bold": false,
|
||||
"underline": false,
|
||||
"labelWidth": 68,
|
||||
"labelHeight": 36,
|
||||
"labelPosition": "INSIDE_TOP_CENTER",
|
||||
"zIndex": 0,
|
||||
"level": 1
|
||||
},
|
||||
{
|
||||
"id": "ok.dog1",
|
||||
"type": "oval",
|
||||
"pos": {
|
||||
"x": 62,
|
||||
"y": 62
|
||||
},
|
||||
"width": 97,
|
||||
"height": 97,
|
||||
"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": "dog1",
|
||||
"fontSize": 16,
|
||||
"fontFamily": "DEFAULT",
|
||||
"language": "",
|
||||
"color": "N1",
|
||||
"italic": false,
|
||||
"bold": true,
|
||||
"underline": false,
|
||||
"labelWidth": 35,
|
||||
"labelHeight": 21,
|
||||
"labelPosition": "INSIDE_MIDDLE_CENTER",
|
||||
"zIndex": 0,
|
||||
"level": 2
|
||||
},
|
||||
{
|
||||
"id": "ok.dog3",
|
||||
"type": "rectangle",
|
||||
"pos": {
|
||||
"x": 70,
|
||||
"y": 229
|
||||
},
|
||||
"width": 80,
|
||||
"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": "dog3",
|
||||
"fontSize": 16,
|
||||
"fontFamily": "DEFAULT",
|
||||
"language": "",
|
||||
"color": "N1",
|
||||
"italic": false,
|
||||
"bold": true,
|
||||
"underline": false,
|
||||
"labelWidth": 35,
|
||||
"labelHeight": 21,
|
||||
"labelPosition": "INSIDE_MIDDLE_CENTER",
|
||||
"zIndex": 0,
|
||||
"level": 2
|
||||
}
|
||||
],
|
||||
"connections": [
|
||||
{
|
||||
"id": "ok.(dog1 -> dog3)[0]",
|
||||
"src": "ok.dog1",
|
||||
"srcArrow": "none",
|
||||
"dst": "ok.dog3",
|
||||
"dstArrow": "triangle",
|
||||
"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": 111,
|
||||
"y": 159
|
||||
},
|
||||
{
|
||||
"x": 110,
|
||||
"y": 229
|
||||
}
|
||||
],
|
||||
"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
|
||||
}
|
||||
}
|
||||
104
e2etests/testdata/txtar/nested-spread-substitutions-regression/elk/sketch.exp.svg
vendored
Normal file
104
e2etests/testdata/txtar/nested-spread-substitutions-regression/elk/sketch.exp.svg
vendored
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.6.4-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 199 335"><svg id="d2-svg" class="d2-3794321604" width="199" height="335" viewBox="11 11 199 335"><rect x="11.000000" y="11.000000" width="199.000000" height="335.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
|
||||
.d2-3794321604 .text {
|
||||
font-family: "d2-3794321604-font-regular";
|
||||
}
|
||||
@font-face {
|
||||
font-family: d2-3794321604-font-regular;
|
||||
src: url("data:application/font-woff;base64,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");
|
||||
}
|
||||
.d2-3794321604 .text-bold {
|
||||
font-family: "d2-3794321604-font-bold";
|
||||
}
|
||||
@font-face {
|
||||
font-family: d2-3794321604-font-bold;
|
||||
src: url("data:application/font-woff;base64,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");
|
||||
}]]></style><style type="text/css"><![CDATA[.shape {
|
||||
shape-rendering: geometricPrecision;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
.connection {
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
.blend {
|
||||
mix-blend-mode: multiply;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.d2-3794321604 .fill-N1{fill:#0A0F25;}
|
||||
.d2-3794321604 .fill-N2{fill:#676C7E;}
|
||||
.d2-3794321604 .fill-N3{fill:#9499AB;}
|
||||
.d2-3794321604 .fill-N4{fill:#CFD2DD;}
|
||||
.d2-3794321604 .fill-N5{fill:#DEE1EB;}
|
||||
.d2-3794321604 .fill-N6{fill:#EEF1F8;}
|
||||
.d2-3794321604 .fill-N7{fill:#FFFFFF;}
|
||||
.d2-3794321604 .fill-B1{fill:#0D32B2;}
|
||||
.d2-3794321604 .fill-B2{fill:#0D32B2;}
|
||||
.d2-3794321604 .fill-B3{fill:#E3E9FD;}
|
||||
.d2-3794321604 .fill-B4{fill:#E3E9FD;}
|
||||
.d2-3794321604 .fill-B5{fill:#EDF0FD;}
|
||||
.d2-3794321604 .fill-B6{fill:#F7F8FE;}
|
||||
.d2-3794321604 .fill-AA2{fill:#4A6FF3;}
|
||||
.d2-3794321604 .fill-AA4{fill:#EDF0FD;}
|
||||
.d2-3794321604 .fill-AA5{fill:#F7F8FE;}
|
||||
.d2-3794321604 .fill-AB4{fill:#EDF0FD;}
|
||||
.d2-3794321604 .fill-AB5{fill:#F7F8FE;}
|
||||
.d2-3794321604 .stroke-N1{stroke:#0A0F25;}
|
||||
.d2-3794321604 .stroke-N2{stroke:#676C7E;}
|
||||
.d2-3794321604 .stroke-N3{stroke:#9499AB;}
|
||||
.d2-3794321604 .stroke-N4{stroke:#CFD2DD;}
|
||||
.d2-3794321604 .stroke-N5{stroke:#DEE1EB;}
|
||||
.d2-3794321604 .stroke-N6{stroke:#EEF1F8;}
|
||||
.d2-3794321604 .stroke-N7{stroke:#FFFFFF;}
|
||||
.d2-3794321604 .stroke-B1{stroke:#0D32B2;}
|
||||
.d2-3794321604 .stroke-B2{stroke:#0D32B2;}
|
||||
.d2-3794321604 .stroke-B3{stroke:#E3E9FD;}
|
||||
.d2-3794321604 .stroke-B4{stroke:#E3E9FD;}
|
||||
.d2-3794321604 .stroke-B5{stroke:#EDF0FD;}
|
||||
.d2-3794321604 .stroke-B6{stroke:#F7F8FE;}
|
||||
.d2-3794321604 .stroke-AA2{stroke:#4A6FF3;}
|
||||
.d2-3794321604 .stroke-AA4{stroke:#EDF0FD;}
|
||||
.d2-3794321604 .stroke-AA5{stroke:#F7F8FE;}
|
||||
.d2-3794321604 .stroke-AB4{stroke:#EDF0FD;}
|
||||
.d2-3794321604 .stroke-AB5{stroke:#F7F8FE;}
|
||||
.d2-3794321604 .background-color-N1{background-color:#0A0F25;}
|
||||
.d2-3794321604 .background-color-N2{background-color:#676C7E;}
|
||||
.d2-3794321604 .background-color-N3{background-color:#9499AB;}
|
||||
.d2-3794321604 .background-color-N4{background-color:#CFD2DD;}
|
||||
.d2-3794321604 .background-color-N5{background-color:#DEE1EB;}
|
||||
.d2-3794321604 .background-color-N6{background-color:#EEF1F8;}
|
||||
.d2-3794321604 .background-color-N7{background-color:#FFFFFF;}
|
||||
.d2-3794321604 .background-color-B1{background-color:#0D32B2;}
|
||||
.d2-3794321604 .background-color-B2{background-color:#0D32B2;}
|
||||
.d2-3794321604 .background-color-B3{background-color:#E3E9FD;}
|
||||
.d2-3794321604 .background-color-B4{background-color:#E3E9FD;}
|
||||
.d2-3794321604 .background-color-B5{background-color:#EDF0FD;}
|
||||
.d2-3794321604 .background-color-B6{background-color:#F7F8FE;}
|
||||
.d2-3794321604 .background-color-AA2{background-color:#4A6FF3;}
|
||||
.d2-3794321604 .background-color-AA4{background-color:#EDF0FD;}
|
||||
.d2-3794321604 .background-color-AA5{background-color:#F7F8FE;}
|
||||
.d2-3794321604 .background-color-AB4{background-color:#EDF0FD;}
|
||||
.d2-3794321604 .background-color-AB5{background-color:#F7F8FE;}
|
||||
.d2-3794321604 .color-N1{color:#0A0F25;}
|
||||
.d2-3794321604 .color-N2{color:#676C7E;}
|
||||
.d2-3794321604 .color-N3{color:#9499AB;}
|
||||
.d2-3794321604 .color-N4{color:#CFD2DD;}
|
||||
.d2-3794321604 .color-N5{color:#DEE1EB;}
|
||||
.d2-3794321604 .color-N6{color:#EEF1F8;}
|
||||
.d2-3794321604 .color-N7{color:#FFFFFF;}
|
||||
.d2-3794321604 .color-B1{color:#0D32B2;}
|
||||
.d2-3794321604 .color-B2{color:#0D32B2;}
|
||||
.d2-3794321604 .color-B3{color:#E3E9FD;}
|
||||
.d2-3794321604 .color-B4{color:#E3E9FD;}
|
||||
.d2-3794321604 .color-B5{color:#EDF0FD;}
|
||||
.d2-3794321604 .color-B6{color:#F7F8FE;}
|
||||
.d2-3794321604 .color-AA2{color:#4A6FF3;}
|
||||
.d2-3794321604 .color-AA4{color:#EDF0FD;}
|
||||
.d2-3794321604 .color-AA5{color:#F7F8FE;}
|
||||
.d2-3794321604 .color-AB4{color:#EDF0FD;}
|
||||
.d2-3794321604 .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}]]></style><g id="ok"><g class="shape" ><rect x="12.000000" y="12.000000" width="197.000000" height="333.000000" class=" stroke-B1 fill-B4" style="stroke-width:2;" /></g><text x="110.500000" y="45.000000" class="text fill-N1" style="text-anchor:middle;font-size:28px">Home</text></g><g id="ok.dog1"><g class="shape" ><ellipse rx="48.500000" ry="48.500000" cx="110.500000" cy="110.500000" class="shape stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="110.500000" y="116.000000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">dog1</text></g><g id="ok.dog3"><g class="shape" ><rect x="70.000000" y="229.000000" width="80.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="110.000000" y="267.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">dog3</text></g><g id="ok.(dog1 -> dog3)[0]"><marker id="mk-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 110.971431 160.999796 L 110.057137 225.000408" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#d2-3794321604)" /></g><mask id="d2-3794321604" maskUnits="userSpaceOnUse" x="11" y="11" width="199" height="335">
|
||||
<rect x="11" y="11" width="199" height="335" fill="white"></rect>
|
||||
<rect x="76.500000" y="17.000000" width="68" height="36" fill="rgba(0,0,0,0.75)"></rect>
|
||||
<rect x="93.000000" y="100.000000" width="35" height="21" fill="rgba(0,0,0,0.75)"></rect>
|
||||
<rect x="92.500000" y="251.500000" width="35" height="21" fill="rgba(0,0,0,0.75)"></rect>
|
||||
</mask></svg></svg>
|
||||
|
After Width: | Height: | Size: 14 KiB |
Loading…
Reference in a new issue