d2/e2etests/testdata/files/nesting_power.d2
2023-10-02 11:05:19 -07:00

267 lines
5.6 KiB
Text

l: Left Constant Near {
direction: right
near: center-left
default -> layout -> here
default: {
direction: right
dagre -- elk -- tala: or
}
default.* -> layout: runs this
here: {
grid-columns: 3
this -> is
this: {
grid-rows: 5
row 1 -> row 2 -> row 3 -> row 4 -> row 5
}
is -> grid: A {style.font-size: 24}
grid: {
shape: sequence_diagram
with -> a -> sequence diagram.x -> you can
you can: {
grid-rows: 2
grid-columns: 2
grid-gap: 0
have
another
grid: {
grid-rows: 3
horizontal-gap: 10
vertical-gap: 20
1 -> 2 -> 3
}
here and: {
shape: sequence_diagram
continue -> nesting
}
}
you can.here and.nesting -> sequence diagram.x: {class: green}
}
this.row 2 -> is.child of is.grandchild: {class: green}
# this.row 2 -> grid.you can
}
here.this.row 5 -> default.dagre: straight edge across {class: green}
here.this.row 1 <- default.tala: straight edge across nested types {class: green}
}
center -> directions: default layout
center: {
rectangle: {shape: "rectangle"}
square: {shape: "square"}
page: {shape: "page"}
parallelogram: {shape: "parallelogram"}
document: {shape: "document"}
cylinder: {shape: "cylinder"}
queue: {shape: "queue"}
package: {shape: "package"}
step: {shape: "step"}
callout: {shape: "callout"}
stored_data: {shape: "stored_data"}
person: {shape: "person"}
diamond: {shape: "diamond"}
oval: {shape: "oval"}
circle: {shape: "circle"}
hexagon: {shape: "hexagon"}
cloud: {shape: "cloud"}
rectangle -> square -> page
parallelogram -> document -> cylinder
queue -> package -> step
callout -> stored_data -> person
diamond -> oval -> circle
hexagon -> cloud
*.style.multiple: true
}
directions: {
grid-rows: 3
r: right {
direction: right
1 -> 2 -> 3
2 -> 4
}
l: left {
direction: left
1 -> 2 -> 3
2 -> 4
}
v: "" {
grid-columns: 2
grid-gap: 0
u: up {
direction: up
1 -> 2 -> 3
2 -> 4
}
d: down {
direction: down
1 -> 2 -> 3
2 -> 4
}
}
}
# center -> tl
r: Right Constant Near {
near: center-right
grid-columns: 5
is -> constant.n -> and -> also.a -> grid: {class: green}
constant.n: near
}
center -> seq: default layout
seq: {
shape: sequence_diagram
scorer: {
style.stroke: red
style.stroke-width: 5
}
scorer.abc: {
style.fill: yellow
style.stroke-width: 7
}
scorer -> itemResponse.a: {
style.stroke-width: 10
}
itemResponse.a -> item.a.b
item.a.b -> essayRubric.a.b.c
essayRubric.a.b.c -> concept.a.b.c.d
item.a -> essayRubric.a.b
concept.a.b.c.d -> itemOutcome.a.b.c.d.e
scorer.abc -> item.a
itemOutcome.a.b.c.d.e -> scorer
scorer -> itemResponse.c
}
center -> more: default layout
more: {
grid-rows: 2
stylish: {
grid-columns: 2
horizontal-gap: 100
x: {
style: {
opacity: 0.6
fill: orange
stroke: "#53C0D8"
stroke-width: 5
shadow: true
}
}
y: {
style: {
stroke-dash: 5
opacity: 0.6
fill: red
3d: true
stroke: black
}
}
x -> y: in style {
style: {
stroke: purple
stroke-width: 2
stroke-dash: 5
fill: lavender
}
}
}
stylish.y -> container.a_sequence: {class: green}
container: {
a_shape.shape: circle
a_sequence: {
shape: sequence_diagram
scorer.t -> itemResponse.t: getItem()
scorer.t <- itemResponse.t: item
scorer.t -> item.t1: getRubric()
scorer.t <- item.t1: rubric
scorer.t -> essayRubric.t: applyTo(essayResp)
itemResponse -> essayRubric.t.c
essayRubric.t.c -> concept.t: match(essayResponse)
scorer <- essayRubric.t: score
}
a_shape -> a_sequence
a_sequence -> sequence
a_shape -- finally
finally: {
shape: queue
sequence: {
shape: sequence_diagram
# items appear in this order
scorer: {
style.stroke: red
style.stroke-dash: 2
}
concept: {
style.stroke-width: 6
}
essayRubric
item
itemOutcome
itemResponse
}
}
finally -- sequence
# full path edges
finally.sequence.itemResponse.a -> finally.sequence.item.a.b
finally.sequence.item.a.b -> finally.sequence.essayRubric.a.b.c
finally.sequence.essayRubric.a.b.c -> finally.sequence.concept.a.b.c.d
finally.sequence.item.a -> finally.sequence.essayRubric.a.b
finally.sequence.concept.a.b.c.d -> finally.sequence.itemOutcome.a.b.c.d.e
finally.sequence.scorer.abc -> finally.sequence.item.a
finally.sequence.itemOutcome.a.b.c.d.e -> finally.sequence.scorer
finally.sequence.scorer -> finally.sequence.itemResponse.c
}
}
more.container.a_sequence -> directions.v.d.4: {class: green}
directions.l.2 -> center.step: {class: green}
center.step -> more.stylish.x: {class: green}
directions.l.1 -> seq.item.a.b: to inside sequence diagram {class: green}
directions.l.1 -> seq.itemResponse.a: to inside sequence diagram {class: green}
directions.v.d.2 -> seq.scorer.abc: to inside sequence diagram {class: green}
center.cloud -> more.stylish: {class: green}
more.container.a_shape -> r.is: to constant near {class: green}
l.here.this.row 5 -> directions.v.u.1: from within constant near {class: green}
bl: Bottom Left Constant Near {
near: bottom-left
a.b
}
bl.a.b.from one constant near -> l.default.dagre: to another {class: green}
classes.green.style: {
stroke: green
stroke-width: 5
}