cli: Add support for rendering layers/scenarios/steps

This commit is contained in:
Anmol Sethi 2023-01-27 10:41:25 -08:00
parent 310afcdf86
commit caef5a5a8f
No known key found for this signature in database
GPG key ID: 25BC68888A99A8BA
254 changed files with 1387 additions and 261 deletions

View file

@ -85,6 +85,10 @@ func (c *compiler) compileLayersField(g *d2graph.Graph, ir *d2ir.Map, fieldName
if f.Map() == nil {
continue
}
if g.GetLayer(f.Name) != nil {
c.errorf(f.References[0].AST(), "layer name %v already used by another layer", f.Name)
continue
}
g2 := c.compileLayer(f.Map())
g2.Name = f.Name
switch fieldName {

View file

@ -2003,6 +2003,24 @@ layers: {
assert.Equal(t, 2, len(g.Layers[1].Steps))
},
},
{
name: "recursive",
run: func(t *testing.T) {
assertCompile(t, `base
layers: {
one: {
santa
}
}
steps: {
one: {
clause
}
}
`, `d2/testdata/d2compiler/TestCompile2/scenarios/recursive#01.d2:9:2: layer name one already used by another layer`)
},
},
}
for _, tc := range tca {

View file

@ -4,18 +4,20 @@ import (
"context"
"strconv"
"oss.terrastruct.com/util-go/go2"
"oss.terrastruct.com/d2/d2graph"
"oss.terrastruct.com/d2/d2renderers/d2fonts"
"oss.terrastruct.com/d2/d2target"
"oss.terrastruct.com/d2/d2themes"
"oss.terrastruct.com/d2/d2themes/d2themescatalog"
"oss.terrastruct.com/util-go/go2"
)
func Export(ctx context.Context, g *d2graph.Graph, themeID int64, fontFamily *d2fonts.FontFamily) (*d2target.Diagram, error) {
theme := d2themescatalog.Find(themeID)
diagram := d2target.NewDiagram()
diagram.Name = g.Name
if fontFamily == nil {
fontFamily = go2.Pointer(d2fonts.SourceSansPro)
}

View file

@ -1384,3 +1384,22 @@ func init() {
NearConstants[k] = struct{}{}
}
}
func (g *Graph) GetLayer(name string) *Graph {
for _, l := range g.Layers {
if l.Name == name {
return l
}
}
for _, l := range g.Scenarios {
if l.Name == name {
return l
}
}
for _, l := range g.Steps {
if l.Name == name {
return l
}
}
return nil
}

View file

@ -44,32 +44,68 @@ func Compile(ctx context.Context, input string, opts *CompileOptions) (*d2target
return nil, nil, err
}
d, err := compile(ctx, g, opts)
if err != nil {
return nil, nil, err
}
return d, g, nil
}
func compile(ctx context.Context, g *d2graph.Graph, opts *CompileOptions) (*d2target.Diagram, error) {
if len(g.Objects) > 0 {
err = g.SetDimensions(opts.MeasuredTexts, opts.Ruler, opts.FontFamily)
err := g.SetDimensions(opts.MeasuredTexts, opts.Ruler, opts.FontFamily)
if err != nil {
return nil, nil, err
return nil, err
}
coreLayout, err := getLayout(opts)
if err != nil {
return nil, nil, err
return nil, err
}
constantNears := d2near.WithoutConstantNears(ctx, g)
err = d2sequence.Layout(ctx, g, coreLayout)
if err != nil {
return nil, nil, err
return nil, err
}
err = d2near.Layout(ctx, g, constantNears)
if err != nil {
return nil, nil, err
return nil, err
}
}
diagram, err := d2exporter.Export(ctx, g, opts.ThemeID, opts.FontFamily)
return diagram, g, err
d, err := d2exporter.Export(ctx, g, opts.ThemeID, opts.FontFamily)
if err != nil {
return nil, err
}
for _, l := range g.Layers {
ld, err := compile(ctx, l, opts)
if err != nil {
return nil, err
}
ld.Type = "layer"
d.Layers = append(d.Layers, ld)
}
for _, l := range g.Scenarios {
ld, err := compile(ctx, l, opts)
if err != nil {
return nil, err
}
ld.Type = "scenario"
d.Scenarios = append(d.Scenarios, ld)
}
for _, l := range g.Steps {
ld, err := compile(ctx, l, opts)
if err != nil {
return nil, err
}
ld.Type = "step"
d.Steps = append(d.Steps, ld)
}
return d, nil
}
func getLayout(opts *CompileOptions) (func(context.Context, *d2graph.Graph) error, error) {

View file

@ -28,11 +28,16 @@ const (
type Diagram struct {
Name string `json:"name"`
Type string `json:"type"`
Description string `json:"description,omitempty"`
FontFamily *d2fonts.FontFamily `json:"fontFamily,omitempty"`
Shapes []Shape `json:"shapes"`
Connections []Connection `json:"connections"`
Layers []*Diagram `json:"layers"`
Scenarios []*Diagram `json:"scenarios"`
Steps []*Diagram `json:"steps"`
}
func (diagram Diagram) HashID() (string, error) {

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -45,5 +46,8 @@
"neutralAccentColor": "#676C7E"
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,10 +1,11 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "a",
"type": "",
"type": "rectangle",
"pos": {
"x": 0,
"y": 0
@ -42,5 +43,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -39,7 +39,7 @@ width="304" height="304" viewBox="-102 -102 304 304"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16);
}
});
]]></script><g id="a"><g class="shape" ><rect x="0" y="0" width="100" height="100" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g></g><mask id="1236167803" maskUnits="userSpaceOnUse" x="-100" y="-100" width="304" height="304">
]]></script><g id="a"><g class="shape" ><rect x="0" y="0" width="100" height="100" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g></g><mask id="677029166" maskUnits="userSpaceOnUse" x="-100" y="-100" width="304" height="304">
<rect x="-100" y="-100" width="304" height="304" fill="white"></rect>
</mask><style type="text/css"><![CDATA[]]></style></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -45,5 +46,8 @@
"neutralAccentColor": "#676C7E"
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -120,5 +121,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -120,5 +121,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -388,5 +389,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -377,5 +378,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -436,5 +437,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -400,5 +401,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -428,5 +429,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -417,5 +418,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -948,5 +949,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -876,5 +877,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -103,5 +104,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -103,5 +104,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -208,5 +209,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -171,5 +172,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -671,5 +672,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -635,5 +636,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -132,5 +133,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -123,5 +124,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -219,5 +220,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -201,5 +202,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -42,5 +43,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -42,5 +43,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -255,5 +256,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -237,5 +238,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -171,5 +172,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -162,5 +163,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -596,5 +597,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -584,5 +585,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -54,5 +55,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -54,5 +55,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -526,5 +527,8 @@
"icon": null,
"zIndex": 1
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -517,5 +518,8 @@
"icon": null,
"zIndex": 1
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -162,5 +163,8 @@
"icon": null,
"zIndex": 1
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -162,5 +163,8 @@
"icon": null,
"zIndex": 1
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -216,5 +217,8 @@
"icon": null,
"zIndex": 1
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -216,5 +217,8 @@
"icon": null,
"zIndex": 1
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -201,5 +202,8 @@
"neutralAccentColor": "#676C7E"
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -201,5 +202,8 @@
"neutralAccentColor": "#676C7E"
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -396,5 +397,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -378,5 +379,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -220,5 +221,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -210,5 +211,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -132,5 +133,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -123,5 +124,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -224,5 +225,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -203,5 +204,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -132,5 +133,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -123,5 +124,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,6 +1,10 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,6 +1,10 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -1212,5 +1213,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -1113,5 +1114,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -1212,5 +1213,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -1113,5 +1114,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -1212,5 +1213,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -1113,5 +1114,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -908,5 +909,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -860,5 +861,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -451,5 +452,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -390,5 +391,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -132,5 +133,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -123,5 +124,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -1276,5 +1277,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -1206,5 +1207,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -83,5 +84,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -83,5 +84,8 @@
"level": 1
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -300,5 +301,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -282,5 +283,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -1231,5 +1232,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -1134,5 +1135,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -371,5 +372,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -289,5 +290,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -260,5 +261,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -242,5 +243,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -316,5 +317,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -280,5 +281,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -77,5 +78,8 @@
"neutralAccentColor": "#676C7E"
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -77,5 +78,8 @@
"neutralAccentColor": "#676C7E"
}
],
"connections": []
"connections": [],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -219,5 +220,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -201,5 +202,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -416,5 +417,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -362,5 +363,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -452,5 +453,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -443,5 +444,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -496,5 +497,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -455,5 +456,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -615,5 +616,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -590,5 +591,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -564,5 +565,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

View file

@ -1,5 +1,6 @@
{
"name": "",
"type": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
@ -527,5 +528,8 @@
"icon": null,
"zIndex": 0
}
]
],
"layers": null,
"scenarios": null,
"steps": null
}

Some files were not shown because too many files have changed in this diff Show more