diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 5bd2d8eb3..f026c7e6d 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -1,5 +1,7 @@ #### Features πŸš€ +- Sequence diagrams are now supported. See [docs](https://d2lang.com/tour/sequence-diagrams) for more. + [#99](https://github.com/terrastruct/d2/issues/99) - Formatting of d2 scripts is supported on the CLI with the `fmt` subcommand. [#292](https://github.com/terrastruct/d2/pull/292) - Latex is now supported. See [docs](https://d2lang.com/tour/text) for more. diff --git a/d2layouts/d2sequence/constants.go b/d2layouts/d2sequence/constants.go index 7dc2e8798..232109345 100644 --- a/d2layouts/d2sequence/constants.go +++ b/d2layouts/d2sequence/constants.go @@ -3,22 +3,22 @@ package d2sequence // leaves at least 25 units of space on the left/right when computing the space required between actors const HORIZONTAL_PAD = 50. -// leaves at least 25 units of space on the top/bottom when computing the space required between edges +// leaves at least 25 units of space on the top/bottom when computing the space required between messages const VERTICAL_PAD = 50. const MIN_ACTOR_DISTANCE = 200. -// min vertical distance between edges -const MIN_EDGE_DISTANCE = 100. +// min vertical distance between messages +const MIN_MESSAGE_DISTANCE = 100. // default size const SPAN_WIDTH = 20. -// small pad so that edges don't touch lifelines and spans -const SPAN_EDGE_PAD = 5. +// small pad so that messages don't touch lifelines and spans +const SPAN_MESSAGE_PAD = 5. // as the spans start getting nested, their size grows const SPAN_DEPTH_GROW_FACTOR = 10. -// when a span has a single edge -const MIN_SPAN_HEIGHT = MIN_EDGE_DISTANCE / 2. +// when a span has a single messages +const MIN_SPAN_HEIGHT = MIN_MESSAGE_DISTANCE / 2. diff --git a/d2layouts/d2sequence/layout.go b/d2layouts/d2sequence/layout.go index 6e15061d3..586ed248b 100644 --- a/d2layouts/d2sequence/layout.go +++ b/d2layouts/d2sequence/layout.go @@ -2,280 +2,169 @@ package d2sequence import ( "context" - "fmt" - "math" "sort" + "strings" "oss.terrastruct.com/util-go/go2" "oss.terrastruct.com/d2/d2graph" + "oss.terrastruct.com/d2/d2target" "oss.terrastruct.com/d2/lib/geo" "oss.terrastruct.com/d2/lib/label" - "oss.terrastruct.com/d2/lib/shape" ) -func Layout(ctx context.Context, g *d2graph.Graph) (err error) { - sd := &sequenceDiagram{ - graph: g, - objectRank: make(map[*d2graph.Object]int), - minEdgeRank: make(map[*d2graph.Object]int), - maxEdgeRank: make(map[*d2graph.Object]int), - edgeYStep: MIN_EDGE_DISTANCE, - actorXStep: MIN_ACTOR_DISTANCE, - maxActorHeight: 0., - } +// 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 { + objectsToRemove := make(map[*d2graph.Object]struct{}) + edgesToRemove := make(map[*d2graph.Edge]struct{}) + sequenceDiagrams := make(map[string]*sequenceDiagram) - sd.init() - sd.placeActors() - sd.placeSpans() - sd.routeEdges() - sd.addLifelineEdges() - - return nil -} - -type sequenceDiagram struct { - graph *d2graph.Graph - - edges []*d2graph.Edge - actors []*d2graph.Object - spans []*d2graph.Object - - // can be either actors or spans - // rank: left to right position of actors/spans (spans have the same rank as their parents) - objectRank map[*d2graph.Object]int - - // keep track of the first and last edge of a given actor - // the edge rank is the order in which it appears from top to bottom - minEdgeRank map[*d2graph.Object]int - maxEdgeRank map[*d2graph.Object]int - - edgeYStep float64 - actorXStep float64 - maxActorHeight float64 -} - -func (sd *sequenceDiagram) init() { - sd.edges = make([]*d2graph.Edge, len(sd.graph.Edges)) - copy(sd.edges, sd.graph.Edges) - - queue := make([]*d2graph.Object, len(sd.graph.Root.ChildrenArray)) - copy(queue, sd.graph.Root.ChildrenArray) + queue := make([]*d2graph.Object, 1, len(g.Objects)) + queue[0] = g.Root for len(queue) > 0 { obj := queue[0] queue = queue[1:] - - if sd.isActor(obj) { - sd.actors = append(sd.actors, obj) - sd.objectRank[obj] = len(sd.actors) - sd.maxActorHeight = math.Max(sd.maxActorHeight, obj.Height) - } else { - // spans are always rectangles and have no labels - obj.Attributes.Label = d2graph.Scalar{Value: ""} - obj.Attributes.Shape = d2graph.Scalar{Value: shape.SQUARE_TYPE} - sd.spans = append(sd.spans, obj) - sd.objectRank[obj] = sd.objectRank[obj.Parent] + if obj.Attributes.Shape.Value != d2target.ShapeSequenceDiagram { + queue = append(queue, obj.ChildrenArray...) + continue } - queue = append(queue, obj.ChildrenArray...) + sd := layoutSequenceDiagram(g, obj) + obj.Children = make(map[string]*d2graph.Object) + obj.ChildrenArray = nil + obj.Box = geo.NewBox(nil, sd.getWidth(), sd.getHeight()) + sequenceDiagrams[obj.AbsID()] = sd + + for _, edge := range sd.messages { + edgesToRemove[edge] = struct{}{} + } + for _, obj := range sd.actors { + objectsToRemove[obj] = struct{}{} + } + for _, obj := range sd.spans { + objectsToRemove[obj] = struct{}{} + } } - for rank, edge := range sd.edges { - sd.edgeYStep = math.Max(sd.edgeYStep, float64(edge.LabelDimensions.Height)) + layoutEdges, edgeOrder := getLayoutEdges(g, edgesToRemove) + g.Edges = layoutEdges + layoutObjects, objectOrder := getLayoutObjects(g, objectsToRemove) + g.Objects = layoutObjects - sd.setMinMaxEdgeRank(edge.Src, rank) - sd.setMinMaxEdgeRank(edge.Dst, rank) - - // ensures that long labels, spanning over multiple actors, don't make for large gaps between actors - // by distributing the label length across the actors rank difference - rankDiff := math.Abs(float64(sd.objectRank[edge.Src]) - float64(sd.objectRank[edge.Dst])) - distributedLabelWidth := float64(edge.LabelDimensions.Width) / rankDiff - sd.actorXStep = math.Max(sd.actorXStep, distributedLabelWidth+HORIZONTAL_PAD) + if isRootSequenceDiagram(g) { + // 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 } - sd.maxActorHeight += VERTICAL_PAD - sd.edgeYStep += VERTICAL_PAD + cleanup(g, sequenceDiagrams, objectOrder, edgeOrder) + return nil } -func (sd *sequenceDiagram) setMinMaxEdgeRank(actor *d2graph.Object, rank int) { - if minRank, exists := sd.minEdgeRank[actor]; exists { - sd.minEdgeRank[actor] = go2.IntMin(minRank, rank) +func isRootSequenceDiagram(g *d2graph.Graph) bool { + return g.Root.Attributes.Shape.Value == d2target.ShapeSequenceDiagram +} + +// 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 { + var edges []*d2graph.Edge + for _, edge := range g.Edges { + // both Src and Dst must be inside the sequence diagram + if strings.HasPrefix(edge.Src.AbsID(), obj.AbsID()) && strings.HasPrefix(edge.Dst.AbsID(), obj.AbsID()) { + edges = append(edges, edge) + } + } + + sd := newSequenceDiagram(obj.ChildrenArray, edges) + sd.layout() + return sd +} + +func getLayoutEdges(g *d2graph.Graph, toRemove map[*d2graph.Edge]struct{}) ([]*d2graph.Edge, map[string]int) { + edgeOrder := make(map[string]int) + layoutEdges := make([]*d2graph.Edge, 0, len(g.Edges)-len(toRemove)) + for i, edge := range g.Edges { + edgeOrder[edge.AbsID()] = i + if _, exists := toRemove[edge]; !exists { + layoutEdges = append(layoutEdges, edge) + } + } + return layoutEdges, edgeOrder +} + +func getLayoutObjects(g *d2graph.Graph, toRemove map[*d2graph.Object]struct{}) ([]*d2graph.Object, map[string]int) { + 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) + } + } + return layoutObjects, objectOrder +} + +// cleanup restores the graph after the core layout engine finishes +// - translating the sequence diagram to its position placed by the core layout engine +// - restore the children of the sequence diagram graph object +// - adds the sequence diagram edges (messages) back to the graph +// - adds the sequence diagram lifelines to the graph edges +// - adds the sequence diagram descendants back to the graph objects +// - sorts edges and objects to their original graph order +func cleanup(g *d2graph.Graph, sequenceDiagrams map[string]*sequenceDiagram, objectsOrder, edgesOrder map[string]int) { + var objects []*d2graph.Object + if isRootSequenceDiagram(g) { + objects = []*d2graph.Object{g.Root} } else { - sd.minEdgeRank[actor] = rank + objects = g.Objects + } + for _, obj := range objects { + if _, exists := sequenceDiagrams[obj.AbsID()]; !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) + sd.shift(obj.TopLeft) + + obj.Children = make(map[string]*d2graph.Object) + for _, child := range sd.actors { + obj.Children[child.ID] = child + } + obj.ChildrenArray = sd.actors + + 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()].spans...) } - sd.maxEdgeRank[actor] = go2.IntMax(sd.maxEdgeRank[actor], rank) -} - -// placeActors places actors bottom aligned, side by side -func (sd *sequenceDiagram) placeActors() { - x := 0. - for _, actors := range sd.actors { - yOffset := sd.maxActorHeight - actors.Height - actors.TopLeft = geo.NewPoint(x, yOffset) - x += actors.Width + sd.actorXStep - actors.LabelPosition = go2.Pointer(string(label.InsideMiddleCenter)) - } -} - -// addLifelineEdges adds a new edge for each actor in the graph that represents the its lifeline -// β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” -// β”‚ actor β”‚ -// β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ -// β”‚ -// β”‚ lifeline -// β”‚ -// β”‚ -func (sd *sequenceDiagram) addLifelineEdges() { - endY := sd.getEdgeY(len(sd.edges)) - for _, actor := range sd.actors { - actorBottom := actor.Center() - actorBottom.Y = actor.TopLeft.Y + actor.Height - actorLifelineEnd := actor.Center() - actorLifelineEnd.Y = endY - sd.graph.Edges = append(sd.graph.Edges, &d2graph.Edge{ - Attributes: d2graph.Attributes{ - Style: d2graph.Style{ - StrokeDash: &d2graph.Scalar{Value: "10"}, - Stroke: actor.Attributes.Style.Stroke, - StrokeWidth: actor.Attributes.Style.StrokeWidth, - }, - }, - Src: actor, - SrcArrow: false, - Dst: &d2graph.Object{ - ID: actor.ID + fmt.Sprintf("-lifeline-end-%d", go2.StringToIntHash(actor.ID+"-lifeline-end")), - }, - DstArrow: false, - Route: []*geo.Point{actorBottom, actorLifelineEnd}, - }) - } -} - -// placeSpans places spans over the object lifeline -// β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” -// β”‚ actor β”‚ -// β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ -// β”Œβ”€β”΄β”€β”€β” -// β”‚ β”‚ -// |span| -// β”‚ β”‚ -// β””β”€β”¬β”€β”€β”˜ -// β”‚ -// lifeline -// β”‚ -func (sd *sequenceDiagram) placeSpans() { - // quickly find the span center X - rankToX := make(map[int]float64) - for _, actor := range sd.actors { - rankToX[sd.objectRank[actor]] = actor.Center().X - } - - // places spans from most to least nested - // the order is important because the only way a child span exists is if there'e an edge to it - // however, the parent span might not have an edge to it and then its position is based on the child position - // or, there can be edge to it, but it comes after the child one meaning the top left position is still based on the child - // and not on its own edge - spanFromMostNested := make([]*d2graph.Object, len(sd.spans)) - copy(spanFromMostNested, sd.spans) - sort.SliceStable(spanFromMostNested, func(i, j int) bool { - return spanFromMostNested[i].Level() > spanFromMostNested[j].Level() + // no new objects, so just keep the same position + sort.SliceStable(g.Objects, func(i, j int) bool { + return objectsOrder[g.Objects[i].AbsID()] < objectsOrder[g.Objects[j].AbsID()] }) - for _, span := range spanFromMostNested { - // finds the position based on children - minChildY := math.Inf(1) - maxChildY := math.Inf(-1) - for _, child := range span.ChildrenArray { - minChildY = math.Min(minChildY, child.TopLeft.Y) - maxChildY = math.Max(maxChildY, child.TopLeft.Y+child.Height) - } - // finds the position if there are edges to this span - minEdgeY := math.Inf(1) - if minRank, exists := sd.minEdgeRank[span]; exists { - minEdgeY = sd.getEdgeY(minRank) + // sequence diagrams add lifelines, and they must be the last ones in this slice + sort.SliceStable(g.Edges, func(i, j int) bool { + iOrder, iExists := edgesOrder[g.Edges[i].AbsID()] + jOrder, jExists := edgesOrder[g.Edges[j].AbsID()] + if iExists && jExists { + return iOrder < jOrder + } else if iExists && !jExists { + return true } - maxEdgeY := math.Inf(-1) - if maxRank, exists := sd.maxEdgeRank[span]; exists { - maxEdgeY = sd.getEdgeY(maxRank) - } - - // if it is the same as the child top left, add some padding - minY := math.Min(minEdgeY, minChildY) - if minY == minChildY { - minY -= SPAN_DEPTH_GROW_FACTOR - } else { - minY -= SPAN_EDGE_PAD - } - maxY := math.Max(maxEdgeY, maxChildY) - if maxY == maxChildY { - maxY += SPAN_DEPTH_GROW_FACTOR - } else { - maxY += SPAN_EDGE_PAD - } - - height := math.Max(maxY-minY, MIN_SPAN_HEIGHT) - // -2 because the actors count as level 1 making the first level span getting 2*SPAN_DEPTH_GROW_FACTOR - width := SPAN_WIDTH + (float64(span.Level()-2) * SPAN_DEPTH_GROW_FACTOR) - x := rankToX[sd.objectRank[span]] - (width / 2.) - span.Box = geo.NewBox(geo.NewPoint(x, minY), width, height) - span.ZIndex = 1 - } -} - -// routeEdges routes horizontal edges from Src to Dst -func (sd *sequenceDiagram) routeEdges() { - for rank, edge := range sd.edges { - isLeftToRight := edge.Src.TopLeft.X < edge.Dst.TopLeft.X - - // finds the proper anchor point based on the edge direction - var startX, endX float64 - if sd.isActor(edge.Src) { - startX = edge.Src.Center().X - } else if isLeftToRight { - startX = edge.Src.TopLeft.X + edge.Src.Width - } else { - startX = edge.Src.TopLeft.X - } - - if sd.isActor(edge.Dst) { - endX = edge.Dst.Center().X - } else if isLeftToRight { - endX = edge.Dst.TopLeft.X - } else { - endX = edge.Dst.TopLeft.X + edge.Dst.Width - } - - if isLeftToRight { - startX += SPAN_EDGE_PAD - endX -= SPAN_EDGE_PAD - } else { - startX -= SPAN_EDGE_PAD - endX += SPAN_EDGE_PAD - } - - edgeY := sd.getEdgeY(rank) - edge.Route = []*geo.Point{ - geo.NewPoint(startX, edgeY), - geo.NewPoint(endX, edgeY), - } - - if edge.Attributes.Label.Value != "" { - if isLeftToRight { - edge.LabelPosition = go2.Pointer(string(label.OutsideTopCenter)) - } else { - // the label will be placed above the edge because the orientation is based on the edge normal vector - edge.LabelPosition = go2.Pointer(string(label.OutsideBottomCenter)) - } - } - } -} - -func (sd *sequenceDiagram) getEdgeY(rank int) float64 { - // +1 so that the first edge has the top padding for its label - return ((float64(rank) + 1.) * sd.edgeYStep) + sd.maxActorHeight -} - -func (sd *sequenceDiagram) isActor(obj *d2graph.Object) bool { - return obj.Parent == sd.graph.Root + // either both don't exist or i doesn't exist and j exists + return false + }) } diff --git a/d2layouts/d2sequence/layout_test.go b/d2layouts/d2sequence/layout_test.go index 7935b71da..cd8974922 100644 --- a/d2layouts/d2sequence/layout_test.go +++ b/d2layouts/d2sequence/layout_test.go @@ -5,6 +5,7 @@ import ( "testing" "oss.terrastruct.com/d2/d2graph" + "oss.terrastruct.com/d2/d2target" "oss.terrastruct.com/d2/lib/geo" "oss.terrastruct.com/d2/lib/label" "oss.terrastruct.com/d2/lib/log" @@ -25,6 +26,7 @@ func TestBasicSequenceDiagram(t *testing.T) { // ◄──────────────────────── // β”‚ β”‚ g := d2graph.NewGraph(nil) + g.Root.Attributes.Shape = d2graph.Scalar{Value: d2target.ShapeSequenceDiagram} n1 := g.Root.EnsureChild([]string{"n1"}) n1.Box = geo.NewBox(nil, 100, 100) n2 := g.Root.EnsureChild([]string{"n2"}) @@ -32,32 +34,46 @@ func TestBasicSequenceDiagram(t *testing.T) { g.Edges = []*d2graph.Edge{ { - Src: n1, - Dst: n2, + Src: n1, + Dst: n2, + Index: 0, Attributes: d2graph.Attributes{ Label: d2graph.Scalar{Value: "left to right"}, }, }, { - Src: n2, - Dst: n1, + Src: n2, + Dst: n1, + Index: 0, Attributes: d2graph.Attributes{ Label: d2graph.Scalar{Value: "right to left"}, }, }, { - Src: n1, - Dst: n2, + Src: n1, + Dst: n2, + Index: 1, }, { - Src: n2, - Dst: n1, + Src: n2, + Dst: n1, + Index: 1, }, } nEdges := len(g.Edges) ctx := log.WithTB(context.Background(), t, nil) - Layout(ctx, g) + Layout(ctx, g, func(ctx context.Context, g *d2graph.Graph) error { + // just set some position as if it had been properly placed + for _, obj := range g.Objects { + obj.TopLeft = geo.NewPoint(0, 0) + } + + for _, edge := range g.Edges { + edge.Route = []*geo.Point{geo.NewPoint(1, 1)} + } + return nil + }) // asserts that actors were placed in the expected x order and at y=0 actors := []*d2graph.Object{ @@ -92,19 +108,19 @@ func TestBasicSequenceDiagram(t *testing.T) { } if edge.Src.TopLeft.X < edge.Dst.TopLeft.X { // left to right - if edge.Route[0].X != edge.Src.Center().X+SPAN_EDGE_PAD { + if edge.Route[0].X != edge.Src.Center().X+SPAN_MESSAGE_PAD { t.Fatalf("expected edge[%d] x to be at the actor center", i) } - if edge.Route[1].X != edge.Dst.Center().X-SPAN_EDGE_PAD { + if edge.Route[1].X != edge.Dst.Center().X-SPAN_MESSAGE_PAD { t.Fatalf("expected edge[%d] x to be at the actor center", i) } } else { - if edge.Route[0].X != edge.Src.Center().X-SPAN_EDGE_PAD { + if edge.Route[0].X != edge.Src.Center().X-SPAN_MESSAGE_PAD { t.Fatalf("expected edge[%d] x to be at the actor center", i) } - if edge.Route[1].X != edge.Dst.Center().X+SPAN_EDGE_PAD { + if edge.Route[1].X != edge.Dst.Center().X+SPAN_MESSAGE_PAD { t.Fatalf("expected edge[%d] x to be at the actor center", i) } } @@ -157,6 +173,7 @@ func TestSpansSequenceDiagram(t *testing.T) { // t2 β”‚β”‚ β”‚ // β”œβ”˜β—„β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ g := d2graph.NewGraph(nil) + g.Root.Attributes.Shape = d2graph.Scalar{Value: d2target.ShapeSequenceDiagram} a := g.Root.EnsureChild([]string{"a"}) a.Box = geo.NewBox(nil, 100, 100) a.Attributes = d2graph.Attributes{ @@ -174,22 +191,36 @@ func TestSpansSequenceDiagram(t *testing.T) { g.Edges = []*d2graph.Edge{ { - Src: a_t1, - Dst: b_t1, + Src: a_t1, + Dst: b_t1, + Index: 0, }, { - Src: b_t1, - Dst: a_t1, + Src: b_t1, + Dst: a_t1, + Index: 0, }, { - Src: a_t2, - Dst: b, + Src: a_t2, + Dst: b, + Index: 0, }, { - Src: b, - Dst: a_t2, + Src: b, + Dst: a_t2, + Index: 0, }, } ctx := log.WithTB(context.Background(), t, nil) - Layout(ctx, g) + Layout(ctx, g, func(ctx context.Context, g *d2graph.Graph) error { + // just set some position as if it had been properly placed + for _, obj := range g.Objects { + obj.TopLeft = geo.NewPoint(0, 0) + } + + for _, edge := range g.Edges { + edge.Route = []*geo.Point{geo.NewPoint(1, 1)} + } + return nil + }) // check properties if a.Attributes.Shape.Value != shape.PERSON_TYPE { @@ -215,7 +246,7 @@ func TestSpansSequenceDiagram(t *testing.T) { } // Y diff of the 2 first edges - expectedHeight := g.Edges[1].Route[0].Y - g.Edges[0].Route[0].Y + (2 * SPAN_EDGE_PAD) + expectedHeight := g.Edges[1].Route[0].Y - g.Edges[0].Route[0].Y + (2 * SPAN_MESSAGE_PAD) if a_t1.Height != expectedHeight { t.Fatalf("expected a.t1 height to be %.5f, got %.5f", expectedHeight, a_t1.Height) } @@ -237,20 +268,118 @@ func TestSpansSequenceDiagram(t *testing.T) { if a_t1.TopLeft.Y != b_t1.TopLeft.Y { t.Fatal("expected a.t1 and b.t1 to be placed at the same Y") } - if a_t1.TopLeft.Y != g.Edges[0].Route[0].Y-SPAN_EDGE_PAD { - t.Fatal("expected a.t1 to be placed at the same Y of the first edge") + if a_t1.TopLeft.Y != g.Edges[0].Route[0].Y-SPAN_MESSAGE_PAD { + t.Fatal("expected a.t1 to be placed at the same Y of the first message") } // check routes - if g.Edges[0].Route[0].X != a_t1.TopLeft.X+a_t1.Width+SPAN_EDGE_PAD { - t.Fatal("expected the first edge to start on a.t1 top right X") + if g.Edges[0].Route[0].X != a_t1.TopLeft.X+a_t1.Width+SPAN_MESSAGE_PAD { + t.Fatal("expected the first message to start on a.t1 top right X") } - if g.Edges[0].Route[1].X != b_t1.TopLeft.X-SPAN_EDGE_PAD { - t.Fatal("expected the first edge to end on b.t1 top left X") + if g.Edges[0].Route[1].X != b_t1.TopLeft.X-SPAN_MESSAGE_PAD { + t.Fatal("expected the first message to end on b.t1 top left X") } - if g.Edges[2].Route[1].X != b.Center().X-SPAN_EDGE_PAD { - t.Fatal("expected the third edge to end on b.t1 center X") + if g.Edges[2].Route[1].X != b.Center().X-SPAN_MESSAGE_PAD { + t.Fatal("expected the third message to end on b.t1 center X") + } +} + +func TestNestedSequenceDiagrams(t *testing.T) { + // β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” + // | β”Œβ”€β”€β”€β”€β”€β” container β”Œβ”€β”€β”€β”€β”€β” | + // | β”‚ a β”‚ β”‚ b β”‚ | β”Œβ”€β”€β”€β”€β”€β” + // | β””β”€β”€β”¬β”€β”€β”˜ β””β”€β”€β”¬β”€β”€β”˜ β”œβ”€β”€β”€β”€edge1──── c β”‚ + // | β”œβ”β”€β”€β”€β”€β”€β”€β”€sdEdge1β”€β”€β”€β”€β”€β”€β–Ίβ”Œβ”€ | β””β”€β”€β”€β”€β”€β”˜ + // | t1 β”‚β”‚ β”‚β”‚ t1 | + // | β”œβ”˜β—„β”€β”€β”€β”€β”€β”€sdEdge2───────└─ | + // β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + g := d2graph.NewGraph(nil) + container := g.Root.EnsureChild([]string{"container"}) + container.Attributes.Shape = d2graph.Scalar{Value: d2target.ShapeSequenceDiagram} + container.Box = geo.NewBox(nil, 500, 500) + a := container.EnsureChild([]string{"a"}) + a.Box = geo.NewBox(nil, 100, 100) + a.Attributes.Shape = d2graph.Scalar{Value: shape.PERSON_TYPE} + a_t1 := a.EnsureChild([]string{"t1"}) + b := container.EnsureChild([]string{"b"}) + b.Box = geo.NewBox(nil, 30, 30) + b_t1 := b.EnsureChild([]string{"t1"}) + + c := g.Root.EnsureChild([]string{"c"}) + c.Box = geo.NewBox(nil, 100, 100) + c.Attributes.Shape = d2graph.Scalar{Value: d2target.ShapeSquare} + + sdEdge1, err := g.Root.Connect(a_t1.AbsIDArray(), b_t1.AbsIDArray(), false, true, "sequence diagram edge 1") + if err != nil { + t.Fatal(err) + } + sdEdge2, err := g.Root.Connect(b_t1.AbsIDArray(), a_t1.AbsIDArray(), false, true, "sequence diagram edge 2") + if err != nil { + t.Fatal(err) + } + + edge1, err := g.Root.Connect(container.AbsIDArray(), c.AbsIDArray(), false, false, "edge 1") + if err != nil { + t.Fatal(err) + } + + layoutFn := func(ctx context.Context, g *d2graph.Graph) error { + if len(g.Objects) != 2 { + t.Fatal("expected only diagram objects for layout") + } + for _, obj := range g.Objects { + if obj == a || obj == a_t1 || obj == b || obj == b_t1 { + t.Fatal("expected to have removed all sequence diagram objects") + } + } + if len(container.ChildrenArray) != 0 { + t.Fatalf("expected no `container` children, got %d", len(container.ChildrenArray)) + } + + if len(container.Children) != len(container.ChildrenArray) { + t.Fatal("container children mismatch") + } + + for _, edge := range g.Edges { + if edge == sdEdge1 || edge == sdEdge2 { + t.Fatal("expected to have removed all sequence diagram edges from graph") + } + } + if g.Edges[0] != edge1 { + t.Fatal("expected graph edge to be in the graph") + } + + // just set some position as if it had been properly placed + for _, obj := range g.Objects { + obj.TopLeft = geo.NewPoint(0, 0) + } + + for _, edge := range g.Edges { + edge.Route = []*geo.Point{geo.NewPoint(1, 1)} + } + + return nil + } + + ctx := log.WithTB(context.Background(), t, nil) + if err = Layout(ctx, g, layoutFn); err != nil { + t.Fatal(err) + } + + if len(g.Edges) != 5 { + t.Fatal("expected graph to have all edges and lifelines after layout") + } + + for _, obj := range g.Objects { + if obj.TopLeft == nil { + t.Fatal("expected to have placed all objects") + } + } + for _, edge := range g.Edges { + if len(edge.Route) == 0 { + t.Fatal("expected to have routed all edges") + } } } diff --git a/d2layouts/d2sequence/sequence_diagram.go b/d2layouts/d2sequence/sequence_diagram.go new file mode 100644 index 000000000..9d70eb837 --- /dev/null +++ b/d2layouts/d2sequence/sequence_diagram.go @@ -0,0 +1,309 @@ +package d2sequence + +import ( + "fmt" + "math" + "sort" + + "oss.terrastruct.com/util-go/go2" + + "oss.terrastruct.com/d2/d2graph" + "oss.terrastruct.com/d2/lib/geo" + "oss.terrastruct.com/d2/lib/label" + "oss.terrastruct.com/d2/lib/shape" +) + +type sequenceDiagram struct { + root *d2graph.Object + messages []*d2graph.Edge + lifelines []*d2graph.Edge + actors []*d2graph.Object + spans []*d2graph.Object + + // can be either actors or spans + // rank: left to right position of actors/spans (spans have the same rank as their parents) + objectRank map[*d2graph.Object]int + + // keep track of the first and last message of a given actor/span + // the message rank is the order in which it appears from top to bottom + minMessageRank map[*d2graph.Object]int + maxMessageRank map[*d2graph.Object]int + + messageYStep float64 + actorXStep float64 + maxActorHeight float64 +} + +func newSequenceDiagram(actors []*d2graph.Object, messages []*d2graph.Edge) *sequenceDiagram { + sd := &sequenceDiagram{ + messages: messages, + actors: actors, + spans: nil, + lifelines: nil, + objectRank: make(map[*d2graph.Object]int), + minMessageRank: make(map[*d2graph.Object]int), + maxMessageRank: make(map[*d2graph.Object]int), + messageYStep: MIN_MESSAGE_DISTANCE, + actorXStep: MIN_ACTOR_DISTANCE, + maxActorHeight: 0., + } + + for rank, actor := range actors { + sd.root = actor.Parent + sd.objectRank[actor] = rank + sd.maxActorHeight = math.Max(sd.maxActorHeight, actor.Height) + + queue := make([]*d2graph.Object, len(actor.ChildrenArray)) + copy(queue, actor.ChildrenArray) + for len(queue) > 0 { + span := queue[0] + queue = queue[1:] + + // spans are always rectangles and have no labels + span.Attributes.Label = d2graph.Scalar{Value: ""} + span.Attributes.Shape = d2graph.Scalar{Value: shape.SQUARE_TYPE} + sd.spans = append(sd.spans, span) + sd.objectRank[span] = rank + + queue = append(queue, span.ChildrenArray...) + } + } + + for rank, message := range sd.messages { + sd.messageYStep = math.Max(sd.messageYStep, float64(message.LabelDimensions.Height)) + + sd.setMinMaxMessageRank(message.Src, rank) + sd.setMinMaxMessageRank(message.Dst, rank) + + // ensures that long labels, spanning over multiple actors, don't make for large gaps between actors + // by distributing the label length across the actors rank difference + rankDiff := math.Abs(float64(sd.objectRank[message.Src]) - float64(sd.objectRank[message.Dst])) + distributedLabelWidth := float64(message.LabelDimensions.Width) / rankDiff + sd.actorXStep = math.Max(sd.actorXStep, distributedLabelWidth+HORIZONTAL_PAD) + } + + sd.maxActorHeight += VERTICAL_PAD + sd.messageYStep += VERTICAL_PAD + + return sd +} + +func (sd *sequenceDiagram) setMinMaxMessageRank(actor *d2graph.Object, rank int) { + if minRank, exists := sd.minMessageRank[actor]; exists { + sd.minMessageRank[actor] = go2.IntMin(minRank, rank) + } else { + sd.minMessageRank[actor] = rank + } + + sd.maxMessageRank[actor] = go2.IntMax(sd.maxMessageRank[actor], rank) +} + +func (sd *sequenceDiagram) layout() { + sd.placeActors() + sd.placeSpans() + sd.routeMessages() + sd.addLifelineEdges() +} + +// placeActors places actors bottom aligned, side by side +func (sd *sequenceDiagram) placeActors() { + x := 0. + for _, actors := range sd.actors { + yOffset := sd.maxActorHeight - actors.Height + actors.TopLeft = geo.NewPoint(x, yOffset) + x += actors.Width + sd.actorXStep + actors.LabelPosition = go2.Pointer(string(label.InsideMiddleCenter)) + } +} + +// addLifelineEdges adds a new edge for each actor in the graph that represents the its lifeline +// β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +// β”‚ actor β”‚ +// β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ +// β”‚ +// β”‚ lifeline +// β”‚ +// β”‚ +func (sd *sequenceDiagram) addLifelineEdges() { + endY := sd.getMessageY(len(sd.messages)) + for _, actor := range sd.actors { + actorBottom := actor.Center() + actorBottom.Y = actor.TopLeft.Y + actor.Height + actorLifelineEnd := actor.Center() + actorLifelineEnd.Y = endY + sd.lifelines = append(sd.lifelines, &d2graph.Edge{ + Attributes: d2graph.Attributes{ + Style: d2graph.Style{ + StrokeDash: &d2graph.Scalar{Value: "10"}, + Stroke: actor.Attributes.Style.Stroke, + StrokeWidth: actor.Attributes.Style.StrokeWidth, + }, + }, + Src: actor, + SrcArrow: false, + Dst: &d2graph.Object{ + ID: actor.ID + fmt.Sprintf("-lifeline-end-%d", go2.StringToIntHash(actor.ID+"-lifeline-end")), + }, + DstArrow: false, + Route: []*geo.Point{actorBottom, actorLifelineEnd}, + }) + } +} + +// placeSpans places spans over the object lifeline +// β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +// β”‚ actor β”‚ +// β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ +// β”Œβ”€β”΄β”€β”€β” +// β”‚ β”‚ +// |span| +// β”‚ β”‚ +// β””β”€β”¬β”€β”€β”˜ +// β”‚ +// lifeline +// β”‚ +func (sd *sequenceDiagram) placeSpans() { + // quickly find the span center X + rankToX := make(map[int]float64) + for _, actor := range sd.actors { + rankToX[sd.objectRank[actor]] = actor.Center().X + } + + // places spans from most to least nested + // the order is important because the only way a child span exists is if there'e an message to it + // however, the parent span might not have a message to it and then its position is based on the child position + // or, there can be a message to it, but it comes after the child one meaning the top left position is still based on the child + // and not on its own message + spanFromMostNested := make([]*d2graph.Object, len(sd.spans)) + copy(spanFromMostNested, sd.spans) + sort.SliceStable(spanFromMostNested, func(i, j int) bool { + return spanFromMostNested[i].Level() > spanFromMostNested[j].Level() + }) + for _, span := range spanFromMostNested { + // finds the position based on children + minChildY := math.Inf(1) + maxChildY := math.Inf(-1) + for _, child := range span.ChildrenArray { + minChildY = math.Min(minChildY, child.TopLeft.Y) + maxChildY = math.Max(maxChildY, child.TopLeft.Y+child.Height) + } + + // finds the position if there are messages to this span + minMessageY := math.Inf(1) + if minRank, exists := sd.minMessageRank[span]; exists { + minMessageY = sd.getMessageY(minRank) + } + maxMessageY := math.Inf(-1) + if maxRank, exists := sd.maxMessageRank[span]; exists { + maxMessageY = sd.getMessageY(maxRank) + } + + // if it is the same as the child top left, add some padding + minY := math.Min(minMessageY, minChildY) + if minY == minChildY { + minY -= SPAN_DEPTH_GROW_FACTOR + } else { + minY -= SPAN_MESSAGE_PAD + } + maxY := math.Max(maxMessageY, maxChildY) + if maxY == maxChildY { + maxY += SPAN_DEPTH_GROW_FACTOR + } else { + maxY += SPAN_MESSAGE_PAD + } + + height := math.Max(maxY-minY, MIN_SPAN_HEIGHT) + // -2 because the actors count as level 1 making the first level span getting 2*SPAN_DEPTH_GROW_FACTOR + width := SPAN_WIDTH + (float64(span.Level()-2) * SPAN_DEPTH_GROW_FACTOR) + x := rankToX[sd.objectRank[span]] - (width / 2.) + span.Box = geo.NewBox(geo.NewPoint(x, minY), width, height) + span.ZIndex = 1 + } +} + +// routeMessages routes horizontal edges (messages) from Src to Dst +func (sd *sequenceDiagram) routeMessages() { + for rank, message := range sd.messages { + message.ZIndex = 2 + isLeftToRight := message.Src.TopLeft.X < message.Dst.TopLeft.X + + // finds the proper anchor point based on the message direction + var startX, endX float64 + if sd.isActor(message.Src) { + startX = message.Src.Center().X + } else if isLeftToRight { + startX = message.Src.TopLeft.X + message.Src.Width + } else { + startX = message.Src.TopLeft.X + } + + if sd.isActor(message.Dst) { + endX = message.Dst.Center().X + } else if isLeftToRight { + endX = message.Dst.TopLeft.X + } else { + endX = message.Dst.TopLeft.X + message.Dst.Width + } + + if isLeftToRight { + startX += SPAN_MESSAGE_PAD + endX -= SPAN_MESSAGE_PAD + } else { + startX -= SPAN_MESSAGE_PAD + endX += SPAN_MESSAGE_PAD + } + + messageY := sd.getMessageY(rank) + message.Route = []*geo.Point{ + geo.NewPoint(startX, messageY), + geo.NewPoint(endX, messageY), + } + + if message.Attributes.Label.Value != "" { + if isLeftToRight { + message.LabelPosition = go2.Pointer(string(label.OutsideTopCenter)) + } else { + // the label will be placed above the message because the orientation is based on the edge normal vector + message.LabelPosition = go2.Pointer(string(label.OutsideBottomCenter)) + } + } + } +} + +func (sd *sequenceDiagram) getMessageY(rank int) float64 { + // +1 so that the first message has the top padding for its label + return ((float64(rank) + 1.) * sd.messageYStep) + sd.maxActorHeight +} + +func (sd *sequenceDiagram) isActor(obj *d2graph.Object) bool { + return obj.Parent == sd.root +} + +func (sd *sequenceDiagram) getWidth() float64 { + // the layout is always placed starting at 0, so the width is just the last actor + lastActor := sd.actors[len(sd.actors)-1] + return lastActor.TopLeft.X + lastActor.Width +} + +func (sd *sequenceDiagram) getHeight() float64 { + // the layout is always placed starting at 0, so the height is just the last message + return sd.getMessageY(len(sd.messages)) +} + +func (sd *sequenceDiagram) shift(tl *geo.Point) { + allObjects := append([]*d2graph.Object{}, sd.actors...) + allObjects = append(allObjects, sd.spans...) + for _, obj := range allObjects { + obj.TopLeft.X += tl.X + obj.TopLeft.Y += tl.Y + } + + allEdges := append([]*d2graph.Edge{}, sd.messages...) + allEdges = append(allEdges, sd.lifelines...) + for _, edge := range allEdges { + for _, p := range edge.Route { + p.X += tl.X + p.Y += tl.Y + } + } +} diff --git a/d2lib/d2.go b/d2lib/d2.go index cfc0a0713..182dd0ae3 100644 --- a/d2lib/d2.go +++ b/d2lib/d2.go @@ -9,6 +9,7 @@ import ( "oss.terrastruct.com/d2/d2compiler" "oss.terrastruct.com/d2/d2exporter" "oss.terrastruct.com/d2/d2graph" + "oss.terrastruct.com/d2/d2layouts/d2sequence" "oss.terrastruct.com/d2/d2target" "oss.terrastruct.com/d2/lib/textmeasure" ) @@ -39,14 +40,9 @@ func Compile(ctx context.Context, input string, opts *CompileOptions) (*d2target return nil, nil, err } - if opts.Layout != nil { - err = opts.Layout(ctx, g) - } else if os.Getenv("D2_LAYOUT") == "dagre" && dagreLayout != nil { - err = dagreLayout(ctx, g) - } else { - err = errors.New("no available layout") - } - if err != nil { + if layout, err := getLayout(opts); err != nil { + return nil, nil, err + } else if err := d2sequence.Layout(ctx, g, layout); err != nil { return nil, nil, err } @@ -54,5 +50,15 @@ func Compile(ctx context.Context, input string, opts *CompileOptions) (*d2target return diagram, g, err } +func getLayout(opts *CompileOptions) (func(context.Context, *d2graph.Graph) error, error) { + if opts.Layout != nil { + return opts.Layout, nil + } else if os.Getenv("D2_LAYOUT") == "dagre" && dagreLayout != nil { + return dagreLayout, nil + } else { + return nil, errors.New("no available layout") + } +} + // See c.go var dagreLayout func(context.Context, *d2graph.Graph) error diff --git a/e2etests/stable_test.go b/e2etests/stable_test.go index f75a8d6e3..0d191b284 100644 --- a/e2etests/stable_test.go +++ b/e2etests/stable_test.go @@ -1043,6 +1043,172 @@ size XXXL -> custom 64: custom 48 { style.font-size: 48 } `, + }, { + name: "sequence_diagram_simple", + script: `shape: sequence_diagram +alice: "Alice\nline\nbreaker" { + shape: person + style.stroke: red +} +bob: "Bob" { + shape: person + style.stroke-width: 5 +} +db: { + shape: cylinder +} +queue: { + shape: queue +} +service: "an\nodd\nservice\nwith\na\nname\nin\nmultiple lines" + +alice -> bob: "Authentication Request" +bob -> service: "make request for something that is quite far away and requires a really long label to take all the space between the objects" +service -> db: "validate credentials" +db -> service: { + style.stroke-dash: 4 +} +service -> bob: { + style.stroke-dash: 4 +} +bob -> alice: "Authentication Response" +alice -> bob: "Another authentication Request" +bob -> queue: "do it later" +queue -> bob: "stored" { + style.stroke-dash: 3 + style.stroke-width: 5 + style.stroke: green +} + +bob -> alice: "Another authentication Response"`, + }, { + name: "sequence_diagram_span", + script: `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 + +scorer.t -> itemOutcome.t1: new +scorer.t -> item.t2: getNormalMinimum() +scorer.t -> item.t3: getNormalMaximum() + +scorer.t -> itemOutcome.t2: setScore(score) +scorer.t -> itemOutcome.t3: setFeedback(missingConcepts)`, + }, { + name: "sequence_diagram_nested_span", + script: `shape: sequence_diagram + +scorer: { + stroke: red + stroke-width: 5 +} + +scorer.abc: { + fill: yellow + stroke-width: 7 +} + +scorer -> itemResponse.a: { + 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`, + }, { + name: "sequence_diagrams", + script: `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 + + scorer.t <-> itemOutcome.t1: new + scorer.t <-> item.t2: getNormalMinimum() + scorer.t -> item.t3: getNormalMaximum() + + scorer.t -- itemOutcome.t2: setScore(score) + scorer.t -- itemOutcome.t3: setFeedback(missingConcepts) +} + +another: { + sequence: { + shape: sequence_diagram + + # scoped edges + 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 + + scorer.t -> itemOutcome.t1: new + scorer.t <-> item.t2: getNormalMinimum() + scorer.t -> item.t3: getNormalMaximum() + + scorer.t -> itemOutcome.t2: setScore(score) + scorer.t -> itemOutcome.t3: setFeedback(missingConcepts) + } +} + +a_shape -> a_sequence +a_shape -> another.sequence +a_sequence -> sequence +another.sequence <-> finally.sequence +a_shape -- finally + + +finally: { + shape: queue + sequence: { + shape: sequence_diagram + # items appear in this order + scorer + concept + essayRubric + item + itemOutcome + itemResponse + } +} + +# 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`, }, } 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 new file mode 100644 index 000000000..f91a979ec --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/board.exp.json @@ -0,0 +1,1472 @@ +{ + "name": "", + "shapes": [ + { + "id": "scorer", + "type": "", + "pos": { + "x": 0, + "y": 50 + }, + "width": 179, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 5, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "red", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "scorer", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 79, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "scorer.abc", + "type": "rectangle", + "pos": { + "x": 79, + "y": 1236 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 7, + "borderRadius": 0, + "fill": "yellow", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 31, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemResponse", + "type": "", + "pos": { + "x": 379, + "y": 50 + }, + "width": 270, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemResponse", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 170, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "itemResponse.a", + "type": "rectangle", + "pos": { + "x": 504, + "y": 336 + }, + "width": 20, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "item", + "type": "", + "pos": { + "x": 849, + "y": 50 + }, + "width": 157, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "item", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 57, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "item.a", + "type": "rectangle", + "pos": { + "x": 917, + "y": 476 + }, + "width": 20, + "height": 770, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 36, + "zIndex": 1, + "level": 2 + }, + { + "id": "item.a.b", + "type": "rectangle", + "pos": { + "x": 912, + "y": 486 + }, + "width": 30, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "essayRubric", + "type": "", + "pos": { + "x": 1206, + "y": 50 + }, + "width": 245, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "essayRubric", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 145, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "essayRubric.a", + "type": "rectangle", + "pos": { + "x": 1318, + "y": 616 + }, + "width": 20, + "height": 340, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 36, + "zIndex": 1, + "level": 2 + }, + { + "id": "essayRubric.a.b", + "type": "rectangle", + "pos": { + "x": 1313, + "y": 626 + }, + "width": 30, + "height": 320, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 31, + "zIndex": 1, + "level": 3 + }, + { + "id": "essayRubric.a.b.c", + "type": "rectangle", + "pos": { + "x": 1308, + "y": 636 + }, + "width": 40, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "concept", + "type": "", + "pos": { + "x": 1651, + "y": 50 + }, + "width": 200, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "concept", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 100, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "concept.a", + "type": "rectangle", + "pos": { + "x": 1741, + "y": 756 + }, + "width": 20, + "height": 370, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 36, + "zIndex": 1, + "level": 2 + }, + { + "id": "concept.a.b", + "type": "rectangle", + "pos": { + "x": 1736, + "y": 766 + }, + "width": 30, + "height": 350, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 31, + "zIndex": 1, + "level": 3 + }, + { + "id": "concept.a.b.c", + "type": "rectangle", + "pos": { + "x": 1731, + "y": 776 + }, + "width": 40, + "height": 330, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "concept.a.b.c.d", + "type": "rectangle", + "pos": { + "x": 1726, + "y": 786 + }, + "width": 50, + "height": 310, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 14, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "itemOutcome", + "type": "", + "pos": { + "x": 2051, + "y": 50 + }, + "width": 265, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemOutcome", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 165, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "itemOutcome.a", + "type": "rectangle", + "pos": { + "x": 2173, + "y": 1046 + }, + "width": 20, + "height": 390, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 36, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemOutcome.a.b", + "type": "rectangle", + "pos": { + "x": 2168, + "y": 1056 + }, + "width": 30, + "height": 370, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 31, + "zIndex": 1, + "level": 3 + }, + { + "id": "itemOutcome.a.b.c", + "type": "rectangle", + "pos": { + "x": 2163, + "y": 1066 + }, + "width": 40, + "height": 350, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "itemOutcome.a.b.c.d", + "type": "rectangle", + "pos": { + "x": 2158, + "y": 1076 + }, + "width": 50, + "height": 330, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "itemOutcome.a.b.c.d.e", + "type": "rectangle", + "pos": { + "x": 2153, + "y": 1086 + }, + "width": 60, + "height": 310, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 6 + }, + { + "id": "itemResponse.c", + "type": "rectangle", + "pos": { + "x": 504, + "y": 1536 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + } + ], + "connections": [ + { + "id": "(scorer -> itemResponse.a)[0]", + "src": "scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse.a", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 94.5, + "y": 341 + }, + { + "x": 499, + "y": 341 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(itemResponse.a -> item.a.b)[0]", + "src": "itemResponse.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "item.a.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 529, + "y": 491 + }, + { + "x": 907.5, + "y": 491 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(item.a.b -> essayRubric.a.b.c)[0]", + "src": "item.a.b", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric.a.b.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 947.5, + "y": 641 + }, + { + "x": 1303.5, + "y": 641 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(essayRubric.a.b.c -> concept.a.b.c.d)[0]", + "src": "essayRubric.a.b.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept.a.b.c.d", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1353.5, + "y": 791 + }, + { + "x": 1721, + "y": 791 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(item.a -> essayRubric.a.b)[0]", + "src": "item.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric.a.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 942.5, + "y": 941 + }, + { + "x": 1308.5, + "y": 941 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(concept.a.b.c.d -> itemOutcome.a.b.c.d.e)[0]", + "src": "concept.a.b.c.d", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome.a.b.c.d.e", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1781, + "y": 1091 + }, + { + "x": 2148.5, + "y": 1091 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.abc -> item.a)[0]", + "src": "scorer.abc", + "srcArrow": "none", + "srcLabel": "", + "dst": "item.a", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 1241 + }, + { + "x": 912.5, + "y": 1241 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(itemOutcome.a.b.c.d.e -> scorer)[0]", + "src": "itemOutcome.a.b.c.d.e", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2148.5, + "y": 1391 + }, + { + "x": 94.5, + "y": 1391 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer -> itemResponse.c)[0]", + "src": "scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 94.5, + "y": 1541 + }, + { + "x": 499, + "y": 1541 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer -- )[0]", + "src": "scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer-lifeline-end-3390057676", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 5, + "stroke": "red", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 89.5, + "y": 191 + }, + { + "x": 89.5, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(itemResponse -- )[0]", + "src": "itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse-lifeline-end-3886259856", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 514, + "y": 191 + }, + { + "x": 514, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(item -- )[0]", + "src": "item", + "srcArrow": "none", + "srcLabel": "", + "dst": "item-lifeline-end-4102336625", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 927.5, + "y": 191 + }, + { + "x": 927.5, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(essayRubric -- )[0]", + "src": "essayRubric", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric-lifeline-end-1632038932", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1328.5, + "y": 191 + }, + { + "x": 1328.5, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(concept -- )[0]", + "src": "concept", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept-lifeline-end-1391711018", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1751, + "y": 191 + }, + { + "x": 1751, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(itemOutcome -- )[0]", + "src": "itemOutcome", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome-lifeline-end-3921917181", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2183.5, + "y": 191 + }, + { + "x": 2183.5, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} 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 new file mode 100644 index 000000000..a4cc51663 --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/sketch.exp.svg @@ -0,0 +1,24 @@ + +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 new file mode 100644 index 000000000..f91a979ec --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_nested_span/elk/board.exp.json @@ -0,0 +1,1472 @@ +{ + "name": "", + "shapes": [ + { + "id": "scorer", + "type": "", + "pos": { + "x": 0, + "y": 50 + }, + "width": 179, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 5, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "red", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "scorer", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 79, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "scorer.abc", + "type": "rectangle", + "pos": { + "x": 79, + "y": 1236 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 7, + "borderRadius": 0, + "fill": "yellow", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 31, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemResponse", + "type": "", + "pos": { + "x": 379, + "y": 50 + }, + "width": 270, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemResponse", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 170, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "itemResponse.a", + "type": "rectangle", + "pos": { + "x": 504, + "y": 336 + }, + "width": 20, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "item", + "type": "", + "pos": { + "x": 849, + "y": 50 + }, + "width": 157, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "item", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 57, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "item.a", + "type": "rectangle", + "pos": { + "x": 917, + "y": 476 + }, + "width": 20, + "height": 770, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 36, + "zIndex": 1, + "level": 2 + }, + { + "id": "item.a.b", + "type": "rectangle", + "pos": { + "x": 912, + "y": 486 + }, + "width": 30, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "essayRubric", + "type": "", + "pos": { + "x": 1206, + "y": 50 + }, + "width": 245, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "essayRubric", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 145, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "essayRubric.a", + "type": "rectangle", + "pos": { + "x": 1318, + "y": 616 + }, + "width": 20, + "height": 340, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 36, + "zIndex": 1, + "level": 2 + }, + { + "id": "essayRubric.a.b", + "type": "rectangle", + "pos": { + "x": 1313, + "y": 626 + }, + "width": 30, + "height": 320, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 31, + "zIndex": 1, + "level": 3 + }, + { + "id": "essayRubric.a.b.c", + "type": "rectangle", + "pos": { + "x": 1308, + "y": 636 + }, + "width": 40, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "concept", + "type": "", + "pos": { + "x": 1651, + "y": 50 + }, + "width": 200, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "concept", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 100, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "concept.a", + "type": "rectangle", + "pos": { + "x": 1741, + "y": 756 + }, + "width": 20, + "height": 370, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 36, + "zIndex": 1, + "level": 2 + }, + { + "id": "concept.a.b", + "type": "rectangle", + "pos": { + "x": 1736, + "y": 766 + }, + "width": 30, + "height": 350, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 31, + "zIndex": 1, + "level": 3 + }, + { + "id": "concept.a.b.c", + "type": "rectangle", + "pos": { + "x": 1731, + "y": 776 + }, + "width": 40, + "height": 330, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "concept.a.b.c.d", + "type": "rectangle", + "pos": { + "x": 1726, + "y": 786 + }, + "width": 50, + "height": 310, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 14, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "itemOutcome", + "type": "", + "pos": { + "x": 2051, + "y": 50 + }, + "width": 265, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemOutcome", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 165, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "itemOutcome.a", + "type": "rectangle", + "pos": { + "x": 2173, + "y": 1046 + }, + "width": 20, + "height": 390, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 36, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemOutcome.a.b", + "type": "rectangle", + "pos": { + "x": 2168, + "y": 1056 + }, + "width": 30, + "height": 370, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 15, + "labelHeight": 31, + "zIndex": 1, + "level": 3 + }, + { + "id": "itemOutcome.a.b.c", + "type": "rectangle", + "pos": { + "x": 2163, + "y": 1066 + }, + "width": 40, + "height": 350, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "itemOutcome.a.b.c.d", + "type": "rectangle", + "pos": { + "x": 2158, + "y": 1076 + }, + "width": 50, + "height": 330, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "itemOutcome.a.b.c.d.e", + "type": "rectangle", + "pos": { + "x": 2153, + "y": 1086 + }, + "width": 60, + "height": 310, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 6 + }, + { + "id": "itemResponse.c", + "type": "rectangle", + "pos": { + "x": 504, + "y": 1536 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + } + ], + "connections": [ + { + "id": "(scorer -> itemResponse.a)[0]", + "src": "scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse.a", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 10, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 94.5, + "y": 341 + }, + { + "x": 499, + "y": 341 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(itemResponse.a -> item.a.b)[0]", + "src": "itemResponse.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "item.a.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 529, + "y": 491 + }, + { + "x": 907.5, + "y": 491 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(item.a.b -> essayRubric.a.b.c)[0]", + "src": "item.a.b", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric.a.b.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 947.5, + "y": 641 + }, + { + "x": 1303.5, + "y": 641 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(essayRubric.a.b.c -> concept.a.b.c.d)[0]", + "src": "essayRubric.a.b.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept.a.b.c.d", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1353.5, + "y": 791 + }, + { + "x": 1721, + "y": 791 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(item.a -> essayRubric.a.b)[0]", + "src": "item.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric.a.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 942.5, + "y": 941 + }, + { + "x": 1308.5, + "y": 941 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(concept.a.b.c.d -> itemOutcome.a.b.c.d.e)[0]", + "src": "concept.a.b.c.d", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome.a.b.c.d.e", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1781, + "y": 1091 + }, + { + "x": 2148.5, + "y": 1091 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.abc -> item.a)[0]", + "src": "scorer.abc", + "srcArrow": "none", + "srcLabel": "", + "dst": "item.a", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 1241 + }, + { + "x": 912.5, + "y": 1241 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(itemOutcome.a.b.c.d.e -> scorer)[0]", + "src": "itemOutcome.a.b.c.d.e", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2148.5, + "y": 1391 + }, + { + "x": 94.5, + "y": 1391 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer -> itemResponse.c)[0]", + "src": "scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 94.5, + "y": 1541 + }, + { + "x": 499, + "y": 1541 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer -- )[0]", + "src": "scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer-lifeline-end-3390057676", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 5, + "stroke": "red", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 89.5, + "y": 191 + }, + { + "x": 89.5, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(itemResponse -- )[0]", + "src": "itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse-lifeline-end-3886259856", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 514, + "y": 191 + }, + { + "x": 514, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(item -- )[0]", + "src": "item", + "srcArrow": "none", + "srcLabel": "", + "dst": "item-lifeline-end-4102336625", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 927.5, + "y": 191 + }, + { + "x": 927.5, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(essayRubric -- )[0]", + "src": "essayRubric", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric-lifeline-end-1632038932", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1328.5, + "y": 191 + }, + { + "x": 1328.5, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(concept -- )[0]", + "src": "concept", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept-lifeline-end-1391711018", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1751, + "y": 191 + }, + { + "x": 1751, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(itemOutcome -- )[0]", + "src": "itemOutcome", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome-lifeline-end-3921917181", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2183.5, + "y": 191 + }, + { + "x": 2183.5, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} 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 new file mode 100644 index 000000000..a4cc51663 --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_nested_span/elk/sketch.exp.svg @@ -0,0 +1,24 @@ + +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 new file mode 100644 index 000000000..1fc4cf4c9 --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json @@ -0,0 +1,787 @@ +{ + "name": "", + "shapes": [ + { + "id": "alice", + "type": "person", + "pos": { + "x": 0, + "y": 130 + }, + "width": 163, + "height": 158, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "red", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "Alice\nline\nbreaker", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 63, + "labelHeight": 58, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "bob", + "type": "person", + "pos": { + "x": 480, + "y": 162 + }, + "width": 132, + "height": 126, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 5, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "Bob", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 32, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "db", + "type": "cylinder", + "pos": { + "x": 929, + "y": 162 + }, + "width": 124, + "height": 126, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "db", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 24, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "queue", + "type": "queue", + "pos": { + "x": 1370, + "y": 162 + }, + "width": 149, + "height": 126, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F0F3F9", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "queue", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 49, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "service", + "type": "", + "pos": { + "x": 1836, + "y": 50 + }, + "width": 202, + "height": 238, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "an\nodd\nservice\nwith\na\nname\nin\nmultiple lines", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 102, + "labelHeight": 138, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(alice -> bob)[0]", + "src": "alice", + "srcArrow": "none", + "srcLabel": "", + "dst": "bob", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Authentication Request", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 155, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 86.5, + "y": 438 + }, + { + "x": 541, + "y": 438 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(bob -> service)[0]", + "src": "bob", + "srcArrow": "none", + "srcLabel": "", + "dst": "service", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "make request for something that is quite far away and requires a really long label to take all the space between the objects", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 801, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 551, + "y": 588 + }, + { + "x": 1932, + "y": 588 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(service -> db)[0]", + "src": "service", + "srcArrow": "none", + "srcLabel": "", + "dst": "db", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "validate credentials", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 131, + "labelHeight": 21, + "labelPosition": "OUTSIDE_BOTTOM_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1932, + "y": 738 + }, + { + "x": 996, + "y": 738 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(db -> service)[0]", + "src": "db", + "srcArrow": "none", + "srcLabel": "", + "dst": "service", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 4, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 996, + "y": 888 + }, + { + "x": 1932, + "y": 888 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(service -> bob)[0]", + "src": "service", + "srcArrow": "none", + "srcLabel": "", + "dst": "bob", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 4, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1932, + "y": 1038 + }, + { + "x": 551, + "y": 1038 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(bob -> alice)[0]", + "src": "bob", + "srcArrow": "none", + "srcLabel": "", + "dst": "alice", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Authentication Response", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 164, + "labelHeight": 21, + "labelPosition": "OUTSIDE_BOTTOM_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 541, + "y": 1188 + }, + { + "x": 86.5, + "y": 1188 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(alice -> bob)[1]", + "src": "alice", + "srcArrow": "none", + "srcLabel": "", + "dst": "bob", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Another authentication Request", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 210, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 86.5, + "y": 1338 + }, + { + "x": 541, + "y": 1338 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(bob -> queue)[0]", + "src": "bob", + "srcArrow": "none", + "srcLabel": "", + "dst": "queue", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "do it later", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 65, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 551, + "y": 1488 + }, + { + "x": 1439.5, + "y": 1488 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(queue -> bob)[0]", + "src": "queue", + "srcArrow": "none", + "srcLabel": "", + "dst": "bob", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 3, + "strokeWidth": 5, + "stroke": "green", + "label": "stored", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 44, + "labelHeight": 21, + "labelPosition": "OUTSIDE_BOTTOM_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1439.5, + "y": 1638 + }, + { + "x": 551, + "y": 1638 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(bob -> alice)[1]", + "src": "bob", + "srcArrow": "none", + "srcLabel": "", + "dst": "alice", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Another authentication Response", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 219, + "labelHeight": 21, + "labelPosition": "OUTSIDE_BOTTOM_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 541, + "y": 1788 + }, + { + "x": 86.5, + "y": 1788 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(alice -- )[0]", + "src": "alice", + "srcArrow": "none", + "srcLabel": "", + "dst": "alice-lifeline-end-3851299086", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "red", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 81.5, + "y": 288 + }, + { + "x": 81.5, + "y": 1938 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(bob -- )[0]", + "src": "bob", + "srcArrow": "none", + "srcLabel": "", + "dst": "bob-lifeline-end-3036726343", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 5, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 546, + "y": 288 + }, + { + "x": 546, + "y": 1938 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(db -- )[0]", + "src": "db", + "srcArrow": "none", + "srcLabel": "", + "dst": "db-lifeline-end-2675250554", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 991, + "y": 288 + }, + { + "x": 991, + "y": 1938 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(queue -- )[0]", + "src": "queue", + "srcArrow": "none", + "srcLabel": "", + "dst": "queue-lifeline-end-1097346683", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1444.5, + "y": 288 + }, + { + "x": 1444.5, + "y": 1938 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(service -- )[0]", + "src": "service", + "srcArrow": "none", + "srcLabel": "", + "dst": "service-lifeline-end-22863415", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1937, + "y": 288 + }, + { + "x": 1937, + "y": 1938 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} diff --git a/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg new file mode 100644 index 000000000..c51dfc31d --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg @@ -0,0 +1,31 @@ + +AlicelinebreakerBobdbqueueanoddservicewithanameinmultiple lines Authentication Requestmake request for something that is quite far away and requires a really long label to take all the space between the objectsvalidate credentialsAuthentication ResponseAnother authentication Requestdo it later storedAnother authentication Response \ No newline at end of file diff --git a/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json new file mode 100644 index 000000000..1fc4cf4c9 --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json @@ -0,0 +1,787 @@ +{ + "name": "", + "shapes": [ + { + "id": "alice", + "type": "person", + "pos": { + "x": 0, + "y": 130 + }, + "width": 163, + "height": 158, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "red", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "Alice\nline\nbreaker", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 63, + "labelHeight": 58, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "bob", + "type": "person", + "pos": { + "x": 480, + "y": 162 + }, + "width": 132, + "height": 126, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 5, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "Bob", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 32, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "db", + "type": "cylinder", + "pos": { + "x": 929, + "y": 162 + }, + "width": 124, + "height": 126, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "db", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 24, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "queue", + "type": "queue", + "pos": { + "x": 1370, + "y": 162 + }, + "width": 149, + "height": 126, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F0F3F9", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "queue", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 49, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "service", + "type": "", + "pos": { + "x": 1836, + "y": 50 + }, + "width": 202, + "height": 238, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "an\nodd\nservice\nwith\na\nname\nin\nmultiple lines", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 102, + "labelHeight": 138, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(alice -> bob)[0]", + "src": "alice", + "srcArrow": "none", + "srcLabel": "", + "dst": "bob", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Authentication Request", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 155, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 86.5, + "y": 438 + }, + { + "x": 541, + "y": 438 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(bob -> service)[0]", + "src": "bob", + "srcArrow": "none", + "srcLabel": "", + "dst": "service", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "make request for something that is quite far away and requires a really long label to take all the space between the objects", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 801, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 551, + "y": 588 + }, + { + "x": 1932, + "y": 588 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(service -> db)[0]", + "src": "service", + "srcArrow": "none", + "srcLabel": "", + "dst": "db", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "validate credentials", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 131, + "labelHeight": 21, + "labelPosition": "OUTSIDE_BOTTOM_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1932, + "y": 738 + }, + { + "x": 996, + "y": 738 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(db -> service)[0]", + "src": "db", + "srcArrow": "none", + "srcLabel": "", + "dst": "service", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 4, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 996, + "y": 888 + }, + { + "x": 1932, + "y": 888 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(service -> bob)[0]", + "src": "service", + "srcArrow": "none", + "srcLabel": "", + "dst": "bob", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 4, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1932, + "y": 1038 + }, + { + "x": 551, + "y": 1038 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(bob -> alice)[0]", + "src": "bob", + "srcArrow": "none", + "srcLabel": "", + "dst": "alice", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Authentication Response", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 164, + "labelHeight": 21, + "labelPosition": "OUTSIDE_BOTTOM_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 541, + "y": 1188 + }, + { + "x": 86.5, + "y": 1188 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(alice -> bob)[1]", + "src": "alice", + "srcArrow": "none", + "srcLabel": "", + "dst": "bob", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Another authentication Request", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 210, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 86.5, + "y": 1338 + }, + { + "x": 541, + "y": 1338 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(bob -> queue)[0]", + "src": "bob", + "srcArrow": "none", + "srcLabel": "", + "dst": "queue", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "do it later", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 65, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 551, + "y": 1488 + }, + { + "x": 1439.5, + "y": 1488 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(queue -> bob)[0]", + "src": "queue", + "srcArrow": "none", + "srcLabel": "", + "dst": "bob", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 3, + "strokeWidth": 5, + "stroke": "green", + "label": "stored", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 44, + "labelHeight": 21, + "labelPosition": "OUTSIDE_BOTTOM_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1439.5, + "y": 1638 + }, + { + "x": 551, + "y": 1638 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(bob -> alice)[1]", + "src": "bob", + "srcArrow": "none", + "srcLabel": "", + "dst": "alice", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "Another authentication Response", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 219, + "labelHeight": 21, + "labelPosition": "OUTSIDE_BOTTOM_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 541, + "y": 1788 + }, + { + "x": 86.5, + "y": 1788 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(alice -- )[0]", + "src": "alice", + "srcArrow": "none", + "srcLabel": "", + "dst": "alice-lifeline-end-3851299086", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "red", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 81.5, + "y": 288 + }, + { + "x": 81.5, + "y": 1938 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(bob -- )[0]", + "src": "bob", + "srcArrow": "none", + "srcLabel": "", + "dst": "bob-lifeline-end-3036726343", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 5, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 546, + "y": 288 + }, + { + "x": 546, + "y": 1938 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(db -- )[0]", + "src": "db", + "srcArrow": "none", + "srcLabel": "", + "dst": "db-lifeline-end-2675250554", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 991, + "y": 288 + }, + { + "x": 991, + "y": 1938 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(queue -- )[0]", + "src": "queue", + "srcArrow": "none", + "srcLabel": "", + "dst": "queue-lifeline-end-1097346683", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1444.5, + "y": 288 + }, + { + "x": 1444.5, + "y": 1938 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(service -- )[0]", + "src": "service", + "srcArrow": "none", + "srcLabel": "", + "dst": "service-lifeline-end-22863415", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1937, + "y": 288 + }, + { + "x": 1937, + "y": 1938 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} diff --git a/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg new file mode 100644 index 000000000..c51dfc31d --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg @@ -0,0 +1,31 @@ + +AlicelinebreakerBobdbqueueanoddservicewithanameinmultiple lines Authentication Requestmake request for something that is quite far away and requires a really long label to take all the space between the objectsvalidate credentialsAuthentication ResponseAnother authentication Requestdo it later storedAnother authentication Response \ No newline at end of file diff --git a/e2etests/testdata/stable/sequence_diagram_span/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_span/dagre/board.exp.json new file mode 100644 index 000000000..8f7545fc0 --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_span/dagre/board.exp.json @@ -0,0 +1,1400 @@ +{ + "name": "", + "shapes": [ + { + "id": "scorer", + "type": "", + "pos": { + "x": 0, + "y": 50 + }, + "width": 179, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "scorer", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 79, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "scorer.t", + "type": "rectangle", + "pos": { + "x": 79, + "y": 336 + }, + "width": 20, + "height": 1810, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemResponse", + "type": "", + "pos": { + "x": 379, + "y": 50 + }, + "width": 270, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemResponse", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 170, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "itemResponse.t", + "type": "rectangle", + "pos": { + "x": 504, + "y": 336 + }, + "width": 20, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "item", + "type": "", + "pos": { + "x": 849, + "y": 50 + }, + "width": 157, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "item", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 57, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "item.t1", + "type": "rectangle", + "pos": { + "x": 917, + "y": 636 + }, + "width": 20, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "essayRubric", + "type": "", + "pos": { + "x": 1206, + "y": 50 + }, + "width": 245, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "essayRubric", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 145, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "essayRubric.t", + "type": "rectangle", + "pos": { + "x": 1318, + "y": 936 + }, + "width": 20, + "height": 460, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 36, + "zIndex": 1, + "level": 2 + }, + { + "id": "essayRubric.t.c", + "type": "rectangle", + "pos": { + "x": 1313, + "y": 1086 + }, + "width": 30, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "concept", + "type": "", + "pos": { + "x": 1651, + "y": 50 + }, + "width": 200, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "concept", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 100, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "concept.t", + "type": "rectangle", + "pos": { + "x": 1741, + "y": 1236 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemOutcome", + "type": "", + "pos": { + "x": 2051, + "y": 50 + }, + "width": 265, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemOutcome", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 165, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "itemOutcome.t1", + "type": "rectangle", + "pos": { + "x": 2173, + "y": 1536 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "item.t2", + "type": "rectangle", + "pos": { + "x": 917, + "y": 1686 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "item.t3", + "type": "rectangle", + "pos": { + "x": 917, + "y": 1836 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemOutcome.t2", + "type": "rectangle", + "pos": { + "x": 2173, + "y": 1986 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemOutcome.t3", + "type": "rectangle", + "pos": { + "x": 2173, + "y": 2136 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + } + ], + "connections": [ + { + "id": "(scorer.t -> itemResponse.t)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getItem()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 60, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 341 + }, + { + "x": 499, + "y": 341 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t <- itemResponse.t)[0]", + "src": "scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "itemResponse.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "item", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 491 + }, + { + "x": 499, + "y": 491 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> item.t1)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "item.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getRubric()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 73, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 641 + }, + { + "x": 912.5, + "y": 641 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t <- item.t1)[0]", + "src": "scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "item.t1", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "rubric", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 39, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 791 + }, + { + "x": 912.5, + "y": 791 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> essayRubric.t)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "applyTo(essayResp)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 130, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 941 + }, + { + "x": 1313.5, + "y": 941 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(itemResponse -> essayRubric.t.c)[0]", + "src": "itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric.t.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 519, + "y": 1091 + }, + { + "x": 1308.5, + "y": 1091 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(essayRubric.t.c -> concept.t)[0]", + "src": "essayRubric.t.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "match(essayResponse)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 150, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1348.5, + "y": 1241 + }, + { + "x": 1736, + "y": 1241 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer <- essayRubric.t)[0]", + "src": "scorer", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "essayRubric.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "score", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 37, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 94.5, + "y": 1391 + }, + { + "x": 1313.5, + "y": 1391 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> itemOutcome.t1)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "new", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 1541 + }, + { + "x": 2168.5, + "y": 1541 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> item.t2)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "item.t2", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMinimum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 141, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 1691 + }, + { + "x": 912.5, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> item.t3)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "item.t3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMaximum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 144, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 1841 + }, + { + "x": 912.5, + "y": 1841 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> itemOutcome.t2)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome.t2", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setScore(score)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 101, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 1991 + }, + { + "x": 2168.5, + "y": 1991 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> itemOutcome.t3)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome.t3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setFeedback(missingConcepts)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 203, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 2141 + }, + { + "x": 2168.5, + "y": 2141 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer -- )[0]", + "src": "scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer-lifeline-end-3390057676", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 89.5, + "y": 191 + }, + { + "x": 89.5, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(itemResponse -- )[0]", + "src": "itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse-lifeline-end-3886259856", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 514, + "y": 191 + }, + { + "x": 514, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(item -- )[0]", + "src": "item", + "srcArrow": "none", + "srcLabel": "", + "dst": "item-lifeline-end-4102336625", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 927.5, + "y": 191 + }, + { + "x": 927.5, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(essayRubric -- )[0]", + "src": "essayRubric", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric-lifeline-end-1632038932", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1328.5, + "y": 191 + }, + { + "x": 1328.5, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(concept -- )[0]", + "src": "concept", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept-lifeline-end-1391711018", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1751, + "y": 191 + }, + { + "x": 1751, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(itemOutcome -- )[0]", + "src": "itemOutcome", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome-lifeline-end-3921917181", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2183.5, + "y": 191 + }, + { + "x": 2183.5, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} diff --git a/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg new file mode 100644 index 000000000..4e2caf15a --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg @@ -0,0 +1,31 @@ + +scoreritemResponseitemessayRubricconceptitemOutcome getItem() itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) \ No newline at end of file diff --git a/e2etests/testdata/stable/sequence_diagram_span/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_span/elk/board.exp.json new file mode 100644 index 000000000..8f7545fc0 --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_span/elk/board.exp.json @@ -0,0 +1,1400 @@ +{ + "name": "", + "shapes": [ + { + "id": "scorer", + "type": "", + "pos": { + "x": 0, + "y": 50 + }, + "width": 179, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "scorer", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 79, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "scorer.t", + "type": "rectangle", + "pos": { + "x": 79, + "y": 336 + }, + "width": 20, + "height": 1810, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemResponse", + "type": "", + "pos": { + "x": 379, + "y": 50 + }, + "width": 270, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemResponse", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 170, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "itemResponse.t", + "type": "rectangle", + "pos": { + "x": 504, + "y": 336 + }, + "width": 20, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "item", + "type": "", + "pos": { + "x": 849, + "y": 50 + }, + "width": 157, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "item", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 57, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "item.t1", + "type": "rectangle", + "pos": { + "x": 917, + "y": 636 + }, + "width": 20, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "essayRubric", + "type": "", + "pos": { + "x": 1206, + "y": 50 + }, + "width": 245, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "essayRubric", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 145, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "essayRubric.t", + "type": "rectangle", + "pos": { + "x": 1318, + "y": 936 + }, + "width": 20, + "height": 460, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 36, + "zIndex": 1, + "level": 2 + }, + { + "id": "essayRubric.t.c", + "type": "rectangle", + "pos": { + "x": 1313, + "y": 1086 + }, + "width": 30, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "concept", + "type": "", + "pos": { + "x": 1651, + "y": 50 + }, + "width": 200, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "concept", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 100, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "concept.t", + "type": "rectangle", + "pos": { + "x": 1741, + "y": 1236 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemOutcome", + "type": "", + "pos": { + "x": 2051, + "y": 50 + }, + "width": 265, + "height": 141, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemOutcome", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 165, + "labelHeight": 41, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "itemOutcome.t1", + "type": "rectangle", + "pos": { + "x": 2173, + "y": 1536 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "item.t2", + "type": "rectangle", + "pos": { + "x": 917, + "y": 1686 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "item.t3", + "type": "rectangle", + "pos": { + "x": 917, + "y": 1836 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemOutcome.t2", + "type": "rectangle", + "pos": { + "x": 2173, + "y": 1986 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + }, + { + "id": "itemOutcome.t3", + "type": "rectangle", + "pos": { + "x": 2173, + "y": 2136 + }, + "width": 20, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 2 + } + ], + "connections": [ + { + "id": "(scorer.t -> itemResponse.t)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getItem()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 60, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 341 + }, + { + "x": 499, + "y": 341 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t <- itemResponse.t)[0]", + "src": "scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "itemResponse.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "item", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 491 + }, + { + "x": 499, + "y": 491 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> item.t1)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "item.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getRubric()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 73, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 641 + }, + { + "x": 912.5, + "y": 641 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t <- item.t1)[0]", + "src": "scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "item.t1", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "rubric", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 39, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 791 + }, + { + "x": 912.5, + "y": 791 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> essayRubric.t)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "applyTo(essayResp)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 130, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 941 + }, + { + "x": 1313.5, + "y": 941 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(itemResponse -> essayRubric.t.c)[0]", + "src": "itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric.t.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 519, + "y": 1091 + }, + { + "x": 1308.5, + "y": 1091 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(essayRubric.t.c -> concept.t)[0]", + "src": "essayRubric.t.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "match(essayResponse)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 150, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1348.5, + "y": 1241 + }, + { + "x": 1736, + "y": 1241 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer <- essayRubric.t)[0]", + "src": "scorer", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "essayRubric.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "score", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 37, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 94.5, + "y": 1391 + }, + { + "x": 1313.5, + "y": 1391 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> itemOutcome.t1)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "new", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 1541 + }, + { + "x": 2168.5, + "y": 1541 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> item.t2)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "item.t2", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMinimum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 141, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 1691 + }, + { + "x": 912.5, + "y": 1691 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> item.t3)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "item.t3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMaximum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 144, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 1841 + }, + { + "x": 912.5, + "y": 1841 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> itemOutcome.t2)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome.t2", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setScore(score)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 101, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 1991 + }, + { + "x": 2168.5, + "y": 1991 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer.t -> itemOutcome.t3)[0]", + "src": "scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome.t3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setFeedback(missingConcepts)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 203, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 104.5, + "y": 2141 + }, + { + "x": 2168.5, + "y": 2141 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(scorer -- )[0]", + "src": "scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer-lifeline-end-3390057676", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 89.5, + "y": 191 + }, + { + "x": 89.5, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(itemResponse -- )[0]", + "src": "itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse-lifeline-end-3886259856", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 514, + "y": 191 + }, + { + "x": 514, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(item -- )[0]", + "src": "item", + "srcArrow": "none", + "srcLabel": "", + "dst": "item-lifeline-end-4102336625", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 927.5, + "y": 191 + }, + { + "x": 927.5, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(essayRubric -- )[0]", + "src": "essayRubric", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric-lifeline-end-1632038932", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1328.5, + "y": 191 + }, + { + "x": 1328.5, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(concept -- )[0]", + "src": "concept", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept-lifeline-end-1391711018", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1751, + "y": 191 + }, + { + "x": 1751, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(itemOutcome -- )[0]", + "src": "itemOutcome", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome-lifeline-end-3921917181", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2183.5, + "y": 191 + }, + { + "x": 2183.5, + "y": 2291 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} diff --git a/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg new file mode 100644 index 000000000..4e2caf15a --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg @@ -0,0 +1,31 @@ + +scoreritemResponseitemessayRubricconceptitemOutcome getItem() itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) \ No newline at end of file diff --git a/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json new file mode 100644 index 000000000..ce6349001 --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json @@ -0,0 +1,4792 @@ +{ + "name": "", + "shapes": [ + { + "id": "a_shape", + "type": "oval", + "pos": { + "x": 2185, + "y": 0 + }, + "width": 164, + "height": 164, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "a_shape", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 64, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "a_sequence", + "type": "sequence_diagram", + "pos": { + "x": 2363, + "y": 314 + }, + "width": 2217, + "height": 2286, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "a_sequence", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 144, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "another", + "type": "", + "pos": { + "x": 0, + "y": 264 + }, + "width": 2227, + "height": 2386, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "another", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 98, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "another.sequence", + "type": "sequence_diagram", + "pos": { + "x": 50, + "y": 317 + }, + "width": 2127, + "height": 2281, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "sequence", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 101, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "finally", + "type": "queue", + "pos": { + "x": 517, + "y": 2750 + }, + "width": 2327, + "height": 1631, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F0F3F9", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "finally", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 77, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "finally.sequence", + "type": "sequence_diagram", + "pos": { + "x": 627, + "y": 2800 + }, + "width": 2127, + "height": 1531, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "sequence", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 101, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "finally.sequence.scorer", + "type": "", + "pos": { + "x": 627, + "y": 2850 + }, + "width": 158, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "scorer", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 58, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "finally.sequence.concept", + "type": "", + "pos": { + "x": 985, + "y": 2850 + }, + "width": 174, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "concept", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 74, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "finally.sequence.essayRubric", + "type": "", + "pos": { + "x": 1359, + "y": 2850 + }, + "width": 206, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "essayRubric", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 106, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "finally.sequence.item", + "type": "", + "pos": { + "x": 1765, + "y": 2850 + }, + "width": 143, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "item", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 43, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "finally.sequence.itemOutcome", + "type": "", + "pos": { + "x": 2108, + "y": 2850 + }, + "width": 221, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemOutcome", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 121, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "finally.sequence.itemResponse", + "type": "", + "pos": { + "x": 2529, + "y": 2850 + }, + "width": 225, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemResponse", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 125, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "a_sequence.scorer", + "type": "", + "pos": { + "x": 2363, + "y": 364 + }, + "width": 169, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "scorer", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 69, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.scorer.t", + "type": "rectangle", + "pos": { + "x": 2432, + "y": 645 + }, + "width": 30, + "height": 1810, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.itemResponse", + "type": "", + "pos": { + "x": 2732, + "y": 364 + }, + "width": 246, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemResponse", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 146, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.itemResponse.t", + "type": "rectangle", + "pos": { + "x": 2840, + "y": 645 + }, + "width": 30, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.item", + "type": "", + "pos": { + "x": 3178, + "y": 364 + }, + "width": 149, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "item", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 49, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.item.t1", + "type": "rectangle", + "pos": { + "x": 3237, + "y": 945 + }, + "width": 30, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.essayRubric", + "type": "", + "pos": { + "x": 3527, + "y": 364 + }, + "width": 225, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "essayRubric", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 125, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.essayRubric.t", + "type": "rectangle", + "pos": { + "x": 3624, + "y": 1245 + }, + "width": 30, + "height": 460, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 31, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.essayRubric.t.c", + "type": "rectangle", + "pos": { + "x": 3619, + "y": 1395 + }, + "width": 40, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "a_sequence.concept", + "type": "", + "pos": { + "x": 3952, + "y": 364 + }, + "width": 186, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "concept", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 86, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.concept.t", + "type": "rectangle", + "pos": { + "x": 4030, + "y": 1545 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.itemOutcome", + "type": "", + "pos": { + "x": 4338, + "y": 364 + }, + "width": 242, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemOutcome", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 142, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.itemOutcome.t1", + "type": "rectangle", + "pos": { + "x": 4444, + "y": 1845 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.item.t2", + "type": "rectangle", + "pos": { + "x": 3237, + "y": 1995 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.item.t3", + "type": "rectangle", + "pos": { + "x": 3237, + "y": 2145 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.itemOutcome.t2", + "type": "rectangle", + "pos": { + "x": 4444, + "y": 2295 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.itemOutcome.t3", + "type": "rectangle", + "pos": { + "x": 4444, + "y": 2445 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "another.sequence.scorer", + "type": "", + "pos": { + "x": 50, + "y": 367 + }, + "width": 158, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "scorer", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 58, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.scorer.t", + "type": "rectangle", + "pos": { + "x": 109, + "y": 643 + }, + "width": 40, + "height": 1810, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.itemResponse", + "type": "", + "pos": { + "x": 408, + "y": 367 + }, + "width": 225, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemResponse", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 125, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.itemResponse.t", + "type": "rectangle", + "pos": { + "x": 500, + "y": 643 + }, + "width": 40, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.item", + "type": "", + "pos": { + "x": 833, + "y": 367 + }, + "width": 143, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "item", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 43, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.item.t1", + "type": "rectangle", + "pos": { + "x": 884, + "y": 943 + }, + "width": 40, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.essayRubric", + "type": "", + "pos": { + "x": 1176, + "y": 367 + }, + "width": 206, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "essayRubric", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 106, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.essayRubric.t", + "type": "rectangle", + "pos": { + "x": 1259, + "y": 1243 + }, + "width": 40, + "height": 460, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.essayRubric.t.c", + "type": "rectangle", + "pos": { + "x": 1254, + "y": 1393 + }, + "width": 50, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "another.sequence.concept", + "type": "", + "pos": { + "x": 1582, + "y": 367 + }, + "width": 174, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "concept", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 74, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.concept.t", + "type": "rectangle", + "pos": { + "x": 1649, + "y": 1543 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.itemOutcome", + "type": "", + "pos": { + "x": 1956, + "y": 367 + }, + "width": 221, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemOutcome", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 121, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.itemOutcome.t1", + "type": "rectangle", + "pos": { + "x": 2046, + "y": 1843 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.item.t2", + "type": "rectangle", + "pos": { + "x": 884, + "y": 1993 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.item.t3", + "type": "rectangle", + "pos": { + "x": 884, + "y": 2143 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.itemOutcome.t2", + "type": "rectangle", + "pos": { + "x": 2046, + "y": 2293 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.itemOutcome.t3", + "type": "rectangle", + "pos": { + "x": 2046, + "y": 2443 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "sequence", + "type": "", + "pos": { + "x": 3385, + "y": 3503 + }, + "width": 172, + "height": 126, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "sequence", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 72, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "finally.sequence.itemResponse.a", + "type": "rectangle", + "pos": { + "x": 2621, + "y": 3126 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.item.a", + "type": "rectangle", + "pos": { + "x": 1816, + "y": 3116 + }, + "width": 40, + "height": 770, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.item.a.b", + "type": "rectangle", + "pos": { + "x": 1811, + "y": 3126 + }, + "width": 50, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "finally.sequence.essayRubric.a", + "type": "rectangle", + "pos": { + "x": 1442, + "y": 3256 + }, + "width": 40, + "height": 340, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.essayRubric.a.b", + "type": "rectangle", + "pos": { + "x": 1437, + "y": 3266 + }, + "width": 50, + "height": 320, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "finally.sequence.essayRubric.a.b.c", + "type": "rectangle", + "pos": { + "x": 1432, + "y": 3276 + }, + "width": 60, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 6 + }, + { + "id": "finally.sequence.concept.a", + "type": "rectangle", + "pos": { + "x": 1052, + "y": 3396 + }, + "width": 40, + "height": 370, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.concept.a.b", + "type": "rectangle", + "pos": { + "x": 1047, + "y": 3406 + }, + "width": 50, + "height": 350, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "finally.sequence.concept.a.b.c", + "type": "rectangle", + "pos": { + "x": 1042, + "y": 3416 + }, + "width": 60, + "height": 330, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 6 + }, + { + "id": "finally.sequence.concept.a.b.c.d", + "type": "rectangle", + "pos": { + "x": 1037, + "y": 3426 + }, + "width": 70, + "height": 310, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 14, + "labelHeight": 26, + "zIndex": 1, + "level": 7 + }, + { + "id": "finally.sequence.itemOutcome.a", + "type": "rectangle", + "pos": { + "x": 2198, + "y": 3686 + }, + "width": 40, + "height": 390, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.itemOutcome.a.b", + "type": "rectangle", + "pos": { + "x": 2193, + "y": 3696 + }, + "width": 50, + "height": 370, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "finally.sequence.itemOutcome.a.b.c", + "type": "rectangle", + "pos": { + "x": 2188, + "y": 3706 + }, + "width": 60, + "height": 350, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 6 + }, + { + "id": "finally.sequence.itemOutcome.a.b.c.d", + "type": "rectangle", + "pos": { + "x": 2183, + "y": 3716 + }, + "width": 70, + "height": 330, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 7 + }, + { + "id": "finally.sequence.itemOutcome.a.b.c.d.e", + "type": "rectangle", + "pos": { + "x": 2178, + "y": 3726 + }, + "width": 80, + "height": 310, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 8 + }, + { + "id": "finally.sequence.scorer.abc", + "type": "rectangle", + "pos": { + "x": 686, + "y": 3876 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 31, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.itemResponse.c", + "type": "rectangle", + "pos": { + "x": 2621, + "y": 4176 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + } + ], + "connections": [ + { + "id": "a_sequence.(scorer.t -> itemResponse.t)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.itemResponse.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getItem()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 60, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2467.5, + "y": 650 + }, + { + "x": 2835, + "y": 650 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t <- itemResponse.t)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "a_sequence.itemResponse.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "item", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2467.5, + "y": 800 + }, + { + "x": 2835, + "y": 800 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t -> item.t1)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.item.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getRubric()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 73, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2467.5, + "y": 950 + }, + { + "x": 3232.5, + "y": 950 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t <- item.t1)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "a_sequence.item.t1", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "rubric", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 39, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2467.5, + "y": 1100 + }, + { + "x": 3232.5, + "y": 1100 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t -> essayRubric.t)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.essayRubric.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "applyTo(essayResp)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 130, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2467.5, + "y": 1250 + }, + { + "x": 3619.5, + "y": 1250 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(itemResponse -> essayRubric.t.c)[0]", + "src": "a_sequence.itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.essayRubric.t.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2860, + "y": 1400 + }, + { + "x": 3614.5, + "y": 1400 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(essayRubric.t.c -> concept.t)[0]", + "src": "a_sequence.essayRubric.t.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.concept.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "match(essayResponse)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 150, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 3664.5, + "y": 1550 + }, + { + "x": 4025, + "y": 1550 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer <- essayRubric.t)[0]", + "src": "a_sequence.scorer", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "a_sequence.essayRubric.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "score", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 37, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2452.5, + "y": 1700 + }, + { + "x": 3619.5, + "y": 1700 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t <-> itemOutcome.t1)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "a_sequence.itemOutcome.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "new", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2467.5, + "y": 1850 + }, + { + "x": 4439, + "y": 1850 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t <-> item.t2)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "a_sequence.item.t2", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMinimum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 141, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2467.5, + "y": 2000 + }, + { + "x": 3232.5, + "y": 2000 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t -> item.t3)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.item.t3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMaximum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 144, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2467.5, + "y": 2150 + }, + { + "x": 3232.5, + "y": 2150 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t -- itemOutcome.t2)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.itemOutcome.t2", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setScore(score)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 101, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2467.5, + "y": 2300 + }, + { + "x": 4439, + "y": 2300 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t -- itemOutcome.t3)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.itemOutcome.t3", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setFeedback(missingConcepts)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 203, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2467.5, + "y": 2450 + }, + { + "x": 4439, + "y": 2450 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> itemResponse.t)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.itemResponse.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getItem()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 60, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 154, + "y": 648 + }, + { + "x": 495.5, + "y": 648 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t <- itemResponse.t)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "another.sequence.itemResponse.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "item", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 154, + "y": 798 + }, + { + "x": 495.5, + "y": 798 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> item.t1)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.item.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getRubric()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 73, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 154, + "y": 948 + }, + { + "x": 879.5, + "y": 948 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t <- item.t1)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "another.sequence.item.t1", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "rubric", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 39, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 154, + "y": 1098 + }, + { + "x": 879.5, + "y": 1098 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> essayRubric.t)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.essayRubric.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "applyTo(essayResp)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 130, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 154, + "y": 1248 + }, + { + "x": 1254, + "y": 1248 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(itemResponse -> essayRubric.t.c)[0]", + "src": "another.sequence.itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.essayRubric.t.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 525.5, + "y": 1398 + }, + { + "x": 1249, + "y": 1398 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(essayRubric.t.c -> concept.t)[0]", + "src": "another.sequence.essayRubric.t.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.concept.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "match(essayResponse)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 150, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1309, + "y": 1548 + }, + { + "x": 1644, + "y": 1548 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer <- essayRubric.t)[0]", + "src": "another.sequence.scorer", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "another.sequence.essayRubric.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "score", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 37, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 134, + "y": 1698 + }, + { + "x": 1254, + "y": 1698 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> itemOutcome.t1)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.itemOutcome.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "new", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 154, + "y": 1848 + }, + { + "x": 2041.5, + "y": 1848 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t <-> item.t2)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "another.sequence.item.t2", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMinimum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 141, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 154, + "y": 1998 + }, + { + "x": 879.5, + "y": 1998 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> item.t3)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.item.t3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMaximum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 144, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 154, + "y": 2148 + }, + { + "x": 879.5, + "y": 2148 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> itemOutcome.t2)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.itemOutcome.t2", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setScore(score)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 101, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 154, + "y": 2298 + }, + { + "x": 2041.5, + "y": 2298 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> itemOutcome.t3)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.itemOutcome.t3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setFeedback(missingConcepts)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 203, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 154, + "y": 2448 + }, + { + "x": 2041.5, + "y": 2448 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(a_shape -> a_sequence)[0]", + "src": "a_shape", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2349, + "y": 91 + }, + { + "x": 3246.6, + "y": 189.4 + }, + { + "x": 3471, + "y": 274 + }, + { + "x": 3471, + "y": 314 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_shape -> another.sequence)[0]", + "src": "a_shape", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2186, + "y": 91 + }, + { + "x": 1328, + "y": 189.4 + }, + { + "x": 1113.5, + "y": 274.5 + }, + { + "x": 1113.5, + "y": 316.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence -> sequence)[0]", + "src": "a_sequence", + "srcArrow": "none", + "srcLabel": "", + "dst": "sequence", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3471, + "y": 2600 + }, + { + "x": 3471, + "y": 2640 + }, + { + "x": 3471, + "y": 2660 + }, + { + "x": 3471, + "y": 2675 + }, + { + "x": 3471, + "y": 2690 + }, + { + "x": 3471, + "y": 2900.5 + }, + { + "x": 3471, + "y": 3502.5 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence <-> finally.sequence)[0]", + "src": "another.sequence", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "finally.sequence", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1113.5, + "y": 2598.5 + }, + { + "x": 1113.5, + "y": 2639.7 + }, + { + "x": 1113.5, + "y": 2660 + }, + { + "x": 1113.5, + "y": 2675 + }, + { + "x": 1113.5, + "y": 2690 + }, + { + "x": 1120.5, + "y": 2760 + }, + { + "x": 1148.5, + "y": 2800 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_shape -- finally)[0]", + "src": "a_shape", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2267, + "y": 164 + }, + { + "x": 2267, + "y": 204 + }, + { + "x": 2267, + "y": 224 + }, + { + "x": 2267, + "y": 239 + }, + { + "x": 2267, + "y": 254 + }, + { + "x": 2267, + "y": 502.6 + }, + { + "x": 2267, + "y": 860.5 + }, + { + "x": 2267, + "y": 1218.4 + }, + { + "x": 2267, + "y": 1695.6 + }, + { + "x": 2267, + "y": 2053.5 + }, + { + "x": 2267, + "y": 2411.4 + }, + { + "x": 2267, + "y": 2710 + }, + { + "x": 2267, + "y": 2750 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "finally.sequence.(itemResponse.a -> item.a.b)[0]", + "src": "finally.sequence.itemResponse.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.item.a.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2616.5, + "y": 3131 + }, + { + "x": 1866.5, + "y": 3131 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(item.a.b -> essayRubric.a.b.c)[0]", + "src": "finally.sequence.item.a.b", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.essayRubric.a.b.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1806.5, + "y": 3281 + }, + { + "x": 1497, + "y": 3281 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(essayRubric.a.b.c -> concept.a.b.c.d)[0]", + "src": "finally.sequence.essayRubric.a.b.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.concept.a.b.c.d", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1427, + "y": 3431 + }, + { + "x": 1112, + "y": 3431 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(item.a -> essayRubric.a.b)[0]", + "src": "finally.sequence.item.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.essayRubric.a.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1811.5, + "y": 3581 + }, + { + "x": 1492, + "y": 3581 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(concept.a.b.c.d -> itemOutcome.a.b.c.d.e)[0]", + "src": "finally.sequence.concept.a.b.c.d", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.itemOutcome.a.b.c.d.e", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1112, + "y": 3731 + }, + { + "x": 2173.5, + "y": 3731 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(scorer.abc -> item.a)[0]", + "src": "finally.sequence.scorer.abc", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.item.a", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 731, + "y": 3881 + }, + { + "x": 1811.5, + "y": 3881 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(itemOutcome.a.b.c.d.e -> scorer)[0]", + "src": "finally.sequence.itemOutcome.a.b.c.d.e", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.scorer", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2173.5, + "y": 4031 + }, + { + "x": 711, + "y": 4031 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(scorer -> itemResponse.c)[0]", + "src": "finally.sequence.scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.itemResponse.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 711, + "y": 4181 + }, + { + "x": 2616.5, + "y": 4181 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(a_sequence.scorer -- )[0]", + "src": "a_sequence.scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer-lifeline-end-3390057676", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2447.5, + "y": 500 + }, + { + "x": 2447.5, + "y": 2600 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence.itemResponse -- )[0]", + "src": "a_sequence.itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse-lifeline-end-3886259856", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2855, + "y": 500 + }, + { + "x": 2855, + "y": 2600 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence.item -- )[0]", + "src": "a_sequence.item", + "srcArrow": "none", + "srcLabel": "", + "dst": "item-lifeline-end-4102336625", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3252.5, + "y": 500 + }, + { + "x": 3252.5, + "y": 2600 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence.essayRubric -- )[0]", + "src": "a_sequence.essayRubric", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric-lifeline-end-1632038932", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3639.5, + "y": 500 + }, + { + "x": 3639.5, + "y": 2600 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence.concept -- )[0]", + "src": "a_sequence.concept", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept-lifeline-end-1391711018", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 4045, + "y": 500 + }, + { + "x": 4045, + "y": 2600 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence.itemOutcome -- )[0]", + "src": "a_sequence.itemOutcome", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome-lifeline-end-3921917181", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 4459, + "y": 500 + }, + { + "x": 4459, + "y": 2600 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.scorer -- )[0]", + "src": "another.sequence.scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer-lifeline-end-3390057676", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 129, + "y": 498 + }, + { + "x": 129, + "y": 2598 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.itemResponse -- )[0]", + "src": "another.sequence.itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse-lifeline-end-3886259856", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 520.5, + "y": 498 + }, + { + "x": 520.5, + "y": 2598 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.item -- )[0]", + "src": "another.sequence.item", + "srcArrow": "none", + "srcLabel": "", + "dst": "item-lifeline-end-4102336625", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 904.5, + "y": 498 + }, + { + "x": 904.5, + "y": 2598 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.essayRubric -- )[0]", + "src": "another.sequence.essayRubric", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric-lifeline-end-1632038932", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1279, + "y": 498 + }, + { + "x": 1279, + "y": 2598 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.concept -- )[0]", + "src": "another.sequence.concept", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept-lifeline-end-1391711018", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1669, + "y": 498 + }, + { + "x": 1669, + "y": 2598 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.itemOutcome -- )[0]", + "src": "another.sequence.itemOutcome", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome-lifeline-end-3921917181", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2066.5, + "y": 498 + }, + { + "x": 2066.5, + "y": 2598 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.scorer -- )[0]", + "src": "finally.sequence.scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer-lifeline-end-3390057676", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 706, + "y": 2981 + }, + { + "x": 706, + "y": 4331 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.concept -- )[0]", + "src": "finally.sequence.concept", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept-lifeline-end-1391711018", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1072, + "y": 2981 + }, + { + "x": 1072, + "y": 4331 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.essayRubric -- )[0]", + "src": "finally.sequence.essayRubric", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric-lifeline-end-1632038932", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1462, + "y": 2981 + }, + { + "x": 1462, + "y": 4331 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.item -- )[0]", + "src": "finally.sequence.item", + "srcArrow": "none", + "srcLabel": "", + "dst": "item-lifeline-end-4102336625", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1836.5, + "y": 2981 + }, + { + "x": 1836.5, + "y": 4331 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.itemOutcome -- )[0]", + "src": "finally.sequence.itemOutcome", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome-lifeline-end-3921917181", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2218.5, + "y": 2981 + }, + { + "x": 2218.5, + "y": 4331 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.itemResponse -- )[0]", + "src": "finally.sequence.itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse-lifeline-end-3886259856", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2641.5, + "y": 2981 + }, + { + "x": 2641.5, + "y": 4331 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} diff --git a/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg new file mode 100644 index 000000000..a7b033107 --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg @@ -0,0 +1,31 @@ + +a_shapea_sequenceanotherfinallysequencesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponsescoreritemResponseitemessayRubricconceptitemOutcome getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) \ No newline at end of file diff --git a/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json new file mode 100644 index 000000000..42f918573 --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json @@ -0,0 +1,4711 @@ +{ + "name": "", + "shapes": [ + { + "id": "a_shape", + "type": "oval", + "pos": { + "x": 1080, + "y": 12 + }, + "width": 164, + "height": 164, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "a_shape", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 64, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "a_sequence", + "type": "sequence_diagram", + "pos": { + "x": 12, + "y": 364 + }, + "width": 2217, + "height": 2286, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "a_sequence", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 144, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "another", + "type": "", + "pos": { + "x": 2249, + "y": 291 + }, + "width": 2277, + "height": 2431, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#E3E9FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "another", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 98, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "another.sequence", + "type": "sequence_diagram", + "pos": { + "x": 2324, + "y": 366 + }, + "width": 2127, + "height": 2281, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "sequence", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 101, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "finally", + "type": "queue", + "pos": { + "x": 2249, + "y": 2832 + }, + "width": 2277, + "height": 1681, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F0F3F9", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "finally", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 77, + "labelHeight": 41, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "finally.sequence", + "type": "sequence_diagram", + "pos": { + "x": 2324, + "y": 2907 + }, + "width": 2127, + "height": 1531, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "sequence", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 101, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "finally.sequence.scorer", + "type": "", + "pos": { + "x": 2324, + "y": 2957 + }, + "width": 158, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "scorer", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 58, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "finally.sequence.concept", + "type": "", + "pos": { + "x": 2682, + "y": 2957 + }, + "width": 174, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "concept", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 74, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "finally.sequence.essayRubric", + "type": "", + "pos": { + "x": 3056, + "y": 2957 + }, + "width": 206, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "essayRubric", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 106, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "finally.sequence.item", + "type": "", + "pos": { + "x": 3462, + "y": 2957 + }, + "width": 143, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "item", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 43, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "finally.sequence.itemOutcome", + "type": "", + "pos": { + "x": 3805, + "y": 2957 + }, + "width": 221, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemOutcome", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 121, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "finally.sequence.itemResponse", + "type": "", + "pos": { + "x": 4226, + "y": 2957 + }, + "width": 225, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemResponse", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 125, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "a_sequence.scorer", + "type": "", + "pos": { + "x": 12, + "y": 414 + }, + "width": 169, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "scorer", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 69, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.scorer.t", + "type": "rectangle", + "pos": { + "x": 81, + "y": 695 + }, + "width": 30, + "height": 1810, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.itemResponse", + "type": "", + "pos": { + "x": 381, + "y": 414 + }, + "width": 246, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemResponse", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 146, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.itemResponse.t", + "type": "rectangle", + "pos": { + "x": 489, + "y": 695 + }, + "width": 30, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.item", + "type": "", + "pos": { + "x": 827, + "y": 414 + }, + "width": 149, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "item", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 49, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.item.t1", + "type": "rectangle", + "pos": { + "x": 886, + "y": 995 + }, + "width": 30, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.essayRubric", + "type": "", + "pos": { + "x": 1176, + "y": 414 + }, + "width": 225, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "essayRubric", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 125, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.essayRubric.t", + "type": "rectangle", + "pos": { + "x": 1273, + "y": 1295 + }, + "width": 30, + "height": 460, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 31, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.essayRubric.t.c", + "type": "rectangle", + "pos": { + "x": 1268, + "y": 1445 + }, + "width": 40, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "a_sequence.concept", + "type": "", + "pos": { + "x": 1601, + "y": 414 + }, + "width": 186, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "concept", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 86, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.concept.t", + "type": "rectangle", + "pos": { + "x": 1679, + "y": 1595 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.itemOutcome", + "type": "", + "pos": { + "x": 1987, + "y": 414 + }, + "width": 242, + "height": 136, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#EDF0FD", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemOutcome", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 142, + "labelHeight": 36, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "a_sequence.itemOutcome.t1", + "type": "rectangle", + "pos": { + "x": 2093, + "y": 1895 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.item.t2", + "type": "rectangle", + "pos": { + "x": 886, + "y": 2045 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.item.t3", + "type": "rectangle", + "pos": { + "x": 886, + "y": 2195 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.itemOutcome.t2", + "type": "rectangle", + "pos": { + "x": 2093, + "y": 2345 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "a_sequence.itemOutcome.t3", + "type": "rectangle", + "pos": { + "x": 2093, + "y": 2495 + }, + "width": 30, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 3 + }, + { + "id": "another.sequence.scorer", + "type": "", + "pos": { + "x": 2324, + "y": 416 + }, + "width": 158, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "scorer", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 58, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.scorer.t", + "type": "rectangle", + "pos": { + "x": 2383, + "y": 692 + }, + "width": 40, + "height": 1810, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.itemResponse", + "type": "", + "pos": { + "x": 2682, + "y": 416 + }, + "width": 225, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemResponse", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 125, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.itemResponse.t", + "type": "rectangle", + "pos": { + "x": 2774, + "y": 692 + }, + "width": 40, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.item", + "type": "", + "pos": { + "x": 3107, + "y": 416 + }, + "width": 143, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "item", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 43, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.item.t1", + "type": "rectangle", + "pos": { + "x": 3158, + "y": 992 + }, + "width": 40, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.essayRubric", + "type": "", + "pos": { + "x": 3450, + "y": 416 + }, + "width": 206, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "essayRubric", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 106, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.essayRubric.t", + "type": "rectangle", + "pos": { + "x": 3533, + "y": 1292 + }, + "width": 40, + "height": 460, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.essayRubric.t.c", + "type": "rectangle", + "pos": { + "x": 3528, + "y": 1442 + }, + "width": 50, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "another.sequence.concept", + "type": "", + "pos": { + "x": 3856, + "y": 416 + }, + "width": 174, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "concept", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 74, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.concept.t", + "type": "rectangle", + "pos": { + "x": 3923, + "y": 1592 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 11, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.itemOutcome", + "type": "", + "pos": { + "x": 4230, + "y": 416 + }, + "width": 221, + "height": 131, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "itemOutcome", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 121, + "labelHeight": 31, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "another.sequence.itemOutcome.t1", + "type": "rectangle", + "pos": { + "x": 4320, + "y": 1892 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.item.t2", + "type": "rectangle", + "pos": { + "x": 3158, + "y": 2042 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.item.t3", + "type": "rectangle", + "pos": { + "x": 3158, + "y": 2192 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.itemOutcome.t2", + "type": "rectangle", + "pos": { + "x": 4320, + "y": 2342 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "another.sequence.itemOutcome.t3", + "type": "rectangle", + "pos": { + "x": 4320, + "y": 2492 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 20, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "sequence", + "type": "", + "pos": { + "x": 1035, + "y": 2832 + }, + "width": 172, + "height": 126, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "sequence", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 72, + "labelHeight": 26, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "finally.sequence.itemResponse.a", + "type": "rectangle", + "pos": { + "x": 4318, + "y": 3233 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.item.a", + "type": "rectangle", + "pos": { + "x": 3513, + "y": 3223 + }, + "width": 40, + "height": 770, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.item.a.b", + "type": "rectangle", + "pos": { + "x": 3508, + "y": 3233 + }, + "width": 50, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "finally.sequence.essayRubric.a", + "type": "rectangle", + "pos": { + "x": 3139, + "y": 3363 + }, + "width": 40, + "height": 340, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.essayRubric.a.b", + "type": "rectangle", + "pos": { + "x": 3134, + "y": 3373 + }, + "width": 50, + "height": 320, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "finally.sequence.essayRubric.a.b.c", + "type": "rectangle", + "pos": { + "x": 3129, + "y": 3383 + }, + "width": 60, + "height": 160, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 6 + }, + { + "id": "finally.sequence.concept.a", + "type": "rectangle", + "pos": { + "x": 2749, + "y": 3503 + }, + "width": 40, + "height": 370, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.concept.a.b", + "type": "rectangle", + "pos": { + "x": 2744, + "y": 3513 + }, + "width": 50, + "height": 350, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "finally.sequence.concept.a.b.c", + "type": "rectangle", + "pos": { + "x": 2739, + "y": 3523 + }, + "width": 60, + "height": 330, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 6 + }, + { + "id": "finally.sequence.concept.a.b.c.d", + "type": "rectangle", + "pos": { + "x": 2734, + "y": 3533 + }, + "width": 70, + "height": 310, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 14, + "labelHeight": 26, + "zIndex": 1, + "level": 7 + }, + { + "id": "finally.sequence.itemOutcome.a", + "type": "rectangle", + "pos": { + "x": 3895, + "y": 3793 + }, + "width": 40, + "height": 390, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.itemOutcome.a.b", + "type": "rectangle", + "pos": { + "x": 3890, + "y": 3803 + }, + "width": 50, + "height": 370, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 5 + }, + { + "id": "finally.sequence.itemOutcome.a.b.c", + "type": "rectangle", + "pos": { + "x": 3885, + "y": 3813 + }, + "width": 60, + "height": 350, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 12, + "labelHeight": 26, + "zIndex": 1, + "level": 6 + }, + { + "id": "finally.sequence.itemOutcome.a.b.c.d", + "type": "rectangle", + "pos": { + "x": 3880, + "y": 3823 + }, + "width": 70, + "height": 330, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 7 + }, + { + "id": "finally.sequence.itemOutcome.a.b.c.d.e", + "type": "rectangle", + "pos": { + "x": 3875, + "y": 3833 + }, + "width": 80, + "height": 310, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 8 + }, + { + "id": "finally.sequence.scorer.abc", + "type": "rectangle", + "pos": { + "x": 2383, + "y": 3983 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 31, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + }, + { + "id": "finally.sequence.itemResponse.c", + "type": "rectangle", + "pos": { + "x": 4318, + "y": 4283 + }, + "width": 40, + "height": 50, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#FFFFFF", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 13, + "labelHeight": 26, + "zIndex": 1, + "level": 4 + } + ], + "connections": [ + { + "id": "a_sequence.(scorer.t -> itemResponse.t)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.itemResponse.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getItem()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 60, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 116.5, + "y": 700 + }, + { + "x": 484, + "y": 700 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t <- itemResponse.t)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "a_sequence.itemResponse.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "item", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 116.5, + "y": 850 + }, + { + "x": 484, + "y": 850 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t -> item.t1)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.item.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getRubric()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 73, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 116.5, + "y": 1000 + }, + { + "x": 881.5, + "y": 1000 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t <- item.t1)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "a_sequence.item.t1", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "rubric", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 39, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 116.5, + "y": 1150 + }, + { + "x": 881.5, + "y": 1150 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t -> essayRubric.t)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.essayRubric.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "applyTo(essayResp)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 130, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 116.5, + "y": 1300 + }, + { + "x": 1268.5, + "y": 1300 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(itemResponse -> essayRubric.t.c)[0]", + "src": "a_sequence.itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.essayRubric.t.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 509, + "y": 1450 + }, + { + "x": 1263.5, + "y": 1450 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(essayRubric.t.c -> concept.t)[0]", + "src": "a_sequence.essayRubric.t.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.concept.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "match(essayResponse)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 150, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 1313.5, + "y": 1600 + }, + { + "x": 1674, + "y": 1600 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer <- essayRubric.t)[0]", + "src": "a_sequence.scorer", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "a_sequence.essayRubric.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "score", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 37, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 101.5, + "y": 1750 + }, + { + "x": 1268.5, + "y": 1750 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t <-> itemOutcome.t1)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "a_sequence.itemOutcome.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "new", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 116.5, + "y": 1900 + }, + { + "x": 2088, + "y": 1900 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t <-> item.t2)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "a_sequence.item.t2", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMinimum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 141, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 116.5, + "y": 2050 + }, + { + "x": 881.5, + "y": 2050 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t -> item.t3)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.item.t3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMaximum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 144, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 116.5, + "y": 2200 + }, + { + "x": 881.5, + "y": 2200 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t -- itemOutcome.t2)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.itemOutcome.t2", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setScore(score)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 101, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 116.5, + "y": 2350 + }, + { + "x": 2088, + "y": 2350 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "a_sequence.(scorer.t -- itemOutcome.t3)[0]", + "src": "a_sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence.itemOutcome.t3", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setFeedback(missingConcepts)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 203, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 116.5, + "y": 2500 + }, + { + "x": 2088, + "y": 2500 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> itemResponse.t)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.itemResponse.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getItem()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 60, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 697 + }, + { + "x": 2769.5, + "y": 697 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t <- itemResponse.t)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "another.sequence.itemResponse.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "item", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 847 + }, + { + "x": 2769.5, + "y": 847 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> item.t1)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.item.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getRubric()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 73, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 997 + }, + { + "x": 3153.5, + "y": 997 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t <- item.t1)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "another.sequence.item.t1", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "rubric", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 39, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 1147 + }, + { + "x": 3153.5, + "y": 1147 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> essayRubric.t)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.essayRubric.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "applyTo(essayResp)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 130, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 1297 + }, + { + "x": 3528, + "y": 1297 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(itemResponse -> essayRubric.t.c)[0]", + "src": "another.sequence.itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.essayRubric.t.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2799.5, + "y": 1447 + }, + { + "x": 3523, + "y": 1447 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(essayRubric.t.c -> concept.t)[0]", + "src": "another.sequence.essayRubric.t.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.concept.t", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "match(essayResponse)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 150, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 3583, + "y": 1597 + }, + { + "x": 3918, + "y": 1597 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer <- essayRubric.t)[0]", + "src": "another.sequence.scorer", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "another.sequence.essayRubric.t", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "score", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 37, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2408, + "y": 1747 + }, + { + "x": 3528, + "y": 1747 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> itemOutcome.t1)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.itemOutcome.t1", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "new", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 29, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 1897 + }, + { + "x": 4315.5, + "y": 1897 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t <-> item.t2)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "another.sequence.item.t2", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMinimum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 141, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 2047 + }, + { + "x": 3153.5, + "y": 2047 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> item.t3)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.item.t3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "getNormalMaximum()", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 144, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 2197 + }, + { + "x": 3153.5, + "y": 2197 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> itemOutcome.t2)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.itemOutcome.t2", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setScore(score)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 101, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 2347 + }, + { + "x": 4315.5, + "y": 2347 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "another.sequence.(scorer.t -> itemOutcome.t3)[0]", + "src": "another.sequence.scorer.t", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence.itemOutcome.t3", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "setFeedback(missingConcepts)", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 203, + "labelHeight": 21, + "labelPosition": "OUTSIDE_TOP_CENTER", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 2497 + }, + { + "x": 4315.5, + "y": 2497 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(a_shape -> a_sequence)[0]", + "src": "a_shape", + "srcArrow": "none", + "srcLabel": "", + "dst": "a_sequence", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1120.5, + "y": 176 + }, + { + "x": 1120.5, + "y": 363.5 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_shape -> another.sequence)[0]", + "src": "a_shape", + "srcArrow": "none", + "srcLabel": "", + "dst": "another.sequence", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1161.5, + "y": 176 + }, + { + "x": 1161.5, + "y": 236 + }, + { + "x": 3387.5, + "y": 236 + }, + { + "x": 3387.5, + "y": 366 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence -> sequence)[0]", + "src": "a_sequence", + "srcArrow": "none", + "srcLabel": "", + "dst": "sequence", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1120.5, + "y": 2649.5 + }, + { + "x": 1120.5, + "y": 2832 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence <-> finally.sequence)[0]", + "src": "another.sequence", + "srcArrow": "triangle", + "srcLabel": "", + "dst": "finally.sequence", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3387.5, + "y": 2647 + }, + { + "x": 3387.5, + "y": 2907 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_shape -- finally)[0]", + "src": "a_shape", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1202.5, + "y": 176 + }, + { + "x": 1202.5, + "y": 226 + }, + { + "x": 4536, + "y": 226 + }, + { + "x": 4536, + "y": 2777 + }, + { + "x": 3397.5, + "y": 2777 + }, + { + "x": 3397.5, + "y": 2832 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "finally.sequence.(itemResponse.a -> item.a.b)[0]", + "src": "finally.sequence.itemResponse.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.item.a.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 4313.5, + "y": 3238 + }, + { + "x": 3563.5, + "y": 3238 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(item.a.b -> essayRubric.a.b.c)[0]", + "src": "finally.sequence.item.a.b", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.essayRubric.a.b.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3503.5, + "y": 3388 + }, + { + "x": 3194, + "y": 3388 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(essayRubric.a.b.c -> concept.a.b.c.d)[0]", + "src": "finally.sequence.essayRubric.a.b.c", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.concept.a.b.c.d", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3124, + "y": 3538 + }, + { + "x": 2809, + "y": 3538 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(item.a -> essayRubric.a.b)[0]", + "src": "finally.sequence.item.a", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.essayRubric.a.b", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3508.5, + "y": 3688 + }, + { + "x": 3189, + "y": 3688 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(concept.a.b.c.d -> itemOutcome.a.b.c.d.e)[0]", + "src": "finally.sequence.concept.a.b.c.d", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.itemOutcome.a.b.c.d.e", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2809, + "y": 3838 + }, + { + "x": 3870.5, + "y": 3838 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(scorer.abc -> item.a)[0]", + "src": "finally.sequence.scorer.abc", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.item.a", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2428, + "y": 3988 + }, + { + "x": 3508.5, + "y": 3988 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(itemOutcome.a.b.c.d.e -> scorer)[0]", + "src": "finally.sequence.itemOutcome.a.b.c.d.e", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.scorer", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3870.5, + "y": 4138 + }, + { + "x": 2408, + "y": 4138 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "finally.sequence.(scorer -> itemResponse.c)[0]", + "src": "finally.sequence.scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "finally.sequence.itemResponse.c", + "dstArrow": "triangle", + "dstLabel": "", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2408, + "y": 4288 + }, + { + "x": 4313.5, + "y": 4288 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 2 + }, + { + "id": "(a_sequence.scorer -- )[0]", + "src": "a_sequence.scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer-lifeline-end-3390057676", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 96.5, + "y": 550 + }, + { + "x": 96.5, + "y": 2650 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence.itemResponse -- )[0]", + "src": "a_sequence.itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse-lifeline-end-3886259856", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 504, + "y": 550 + }, + { + "x": 504, + "y": 2650 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence.item -- )[0]", + "src": "a_sequence.item", + "srcArrow": "none", + "srcLabel": "", + "dst": "item-lifeline-end-4102336625", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 901.5, + "y": 550 + }, + { + "x": 901.5, + "y": 2650 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence.essayRubric -- )[0]", + "src": "a_sequence.essayRubric", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric-lifeline-end-1632038932", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1288.5, + "y": 550 + }, + { + "x": 1288.5, + "y": 2650 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence.concept -- )[0]", + "src": "a_sequence.concept", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept-lifeline-end-1391711018", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 1694, + "y": 550 + }, + { + "x": 1694, + "y": 2650 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(a_sequence.itemOutcome -- )[0]", + "src": "a_sequence.itemOutcome", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome-lifeline-end-3921917181", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2108, + "y": 550 + }, + { + "x": 2108, + "y": 2650 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.scorer -- )[0]", + "src": "another.sequence.scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer-lifeline-end-3390057676", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2403, + "y": 547 + }, + { + "x": 2403, + "y": 2647 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.itemResponse -- )[0]", + "src": "another.sequence.itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse-lifeline-end-3886259856", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2794.5, + "y": 547 + }, + { + "x": 2794.5, + "y": 2647 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.item -- )[0]", + "src": "another.sequence.item", + "srcArrow": "none", + "srcLabel": "", + "dst": "item-lifeline-end-4102336625", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3178.5, + "y": 547 + }, + { + "x": 3178.5, + "y": 2647 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.essayRubric -- )[0]", + "src": "another.sequence.essayRubric", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric-lifeline-end-1632038932", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3553, + "y": 547 + }, + { + "x": 3553, + "y": 2647 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.concept -- )[0]", + "src": "another.sequence.concept", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept-lifeline-end-1391711018", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3943, + "y": 547 + }, + { + "x": 3943, + "y": 2647 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(another.sequence.itemOutcome -- )[0]", + "src": "another.sequence.itemOutcome", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome-lifeline-end-3921917181", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 4340.5, + "y": 547 + }, + { + "x": 4340.5, + "y": 2647 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.scorer -- )[0]", + "src": "finally.sequence.scorer", + "srcArrow": "none", + "srcLabel": "", + "dst": "scorer-lifeline-end-3390057676", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2403, + "y": 3088 + }, + { + "x": 2403, + "y": 4438 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.concept -- )[0]", + "src": "finally.sequence.concept", + "srcArrow": "none", + "srcLabel": "", + "dst": "concept-lifeline-end-1391711018", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 2769, + "y": 3088 + }, + { + "x": 2769, + "y": 4438 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.essayRubric -- )[0]", + "src": "finally.sequence.essayRubric", + "srcArrow": "none", + "srcLabel": "", + "dst": "essayRubric-lifeline-end-1632038932", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3159, + "y": 3088 + }, + { + "x": 3159, + "y": 4438 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.item -- )[0]", + "src": "finally.sequence.item", + "srcArrow": "none", + "srcLabel": "", + "dst": "item-lifeline-end-4102336625", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3533.5, + "y": 3088 + }, + { + "x": 3533.5, + "y": 4438 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.itemOutcome -- )[0]", + "src": "finally.sequence.itemOutcome", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemOutcome-lifeline-end-3921917181", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 3915.5, + "y": 3088 + }, + { + "x": 3915.5, + "y": 4438 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(finally.sequence.itemResponse -- )[0]", + "src": "finally.sequence.itemResponse", + "srcArrow": "none", + "srcLabel": "", + "dst": "itemResponse-lifeline-end-3886259856", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 10, + "strokeWidth": 2, + "stroke": "#0D32B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#676C7E", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 4338.5, + "y": 3088 + }, + { + "x": 4338.5, + "y": 4438 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ] +} diff --git a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg new file mode 100644 index 000000000..90eb78b28 --- /dev/null +++ b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg @@ -0,0 +1,31 @@ + +a_shapea_sequenceanotherfinallysequencesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponsescoreritemResponseitemessayRubricconceptitemOutcome getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts) \ No newline at end of file diff --git a/main.go b/main.go index 58745abf1..4d49cad72 100644 --- a/main.go +++ b/main.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" "io" - "os" "os/exec" "path/filepath" "strings" @@ -17,7 +16,6 @@ import ( "oss.terrastruct.com/util-go/xmain" - "oss.terrastruct.com/d2/d2layouts/d2sequence" "oss.terrastruct.com/d2/d2lib" "oss.terrastruct.com/d2/d2plugin" "oss.terrastruct.com/d2/d2renderers/d2svg" @@ -202,10 +200,6 @@ func compile(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, theme } layout := plugin.Layout - // TODO: remove, this is just a feature flag to test sequence diagrams as we work on them - if os.Getenv("D2_SEQUENCE") == "1" { - layout = d2sequence.Layout - } diagram, _, err := d2lib.Compile(ctx, string(input), &d2lib.CompileOptions{ Layout: layout, Ruler: ruler,