Merge pull request #1425 from gavin-ts/code-dimensions

improve code shape measurement and rendering
This commit is contained in:
gavin-ts 2023-06-19 19:52:31 -07:00 committed by GitHub
commit c896922c64
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
55 changed files with 6242 additions and 4282 deletions

View file

@ -7,6 +7,7 @@
- Display version on CLI help invocation [#1400](https://github.com/terrastruct/d2/pull/1400) - Display version on CLI help invocation [#1400](https://github.com/terrastruct/d2/pull/1400)
- Improved readability of connection labels when they overlap another connection. [#447](https://github.com/terrastruct/d2/pull/447) - Improved readability of connection labels when they overlap another connection. [#447](https://github.com/terrastruct/d2/pull/447)
- Error message when `shape` is given a composite [#1415](https://github.com/terrastruct/d2/pull/1415) - Error message when `shape` is given a composite [#1415](https://github.com/terrastruct/d2/pull/1415)
- Improved rendering and text measurement for code shapes. [#1425](https://github.com/terrastruct/d2/pull/1425)
#### Bugfixes ⛑️ #### Bugfixes ⛑️

View file

@ -903,16 +903,21 @@ func (obj *Object) GetLabelSize(mtexts []*d2target.MText, ruler *textmeasure.Rul
func (obj *Object) GetDefaultSize(mtexts []*d2target.MText, ruler *textmeasure.Ruler, fontFamily *d2fonts.FontFamily, labelDims d2target.TextDimensions, withLabelPadding bool) (*d2target.TextDimensions, error) { func (obj *Object) GetDefaultSize(mtexts []*d2target.MText, ruler *textmeasure.Ruler, fontFamily *d2fonts.FontFamily, labelDims d2target.TextDimensions, withLabelPadding bool) (*d2target.TextDimensions, error) {
dims := d2target.TextDimensions{} dims := d2target.TextDimensions{}
dslShape := strings.ToLower(obj.Shape.Value)
if withLabelPadding { if dslShape == d2target.ShapeCode {
fontSize := obj.Text().FontSize
// 0.5em padding on each side
labelDims.Width += fontSize
labelDims.Height += fontSize
} else if withLabelPadding {
labelDims.Width += INNER_LABEL_PADDING labelDims.Width += INNER_LABEL_PADDING
labelDims.Height += INNER_LABEL_PADDING labelDims.Height += INNER_LABEL_PADDING
} }
switch strings.ToLower(obj.Shape.Value) { switch dslShape {
default: default:
return d2target.NewTextDimensions(labelDims.Width, labelDims.Height), nil return d2target.NewTextDimensions(labelDims.Width, labelDims.Height), nil
case d2target.ShapeText: case d2target.ShapeText:
w := labelDims.Width w := labelDims.Width
if w < MIN_SHAPE_SIZE { if w < MIN_SHAPE_SIZE {
@ -1308,31 +1313,29 @@ func GetTextDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler, t *d2
var w int var w int
var h int var h int
if t.Language != "" { if t.Language != "" {
w, h = ruler.Measure(d2fonts.SourceCodePro.Font(t.FontSize, d2fonts.FONT_STYLE_REGULAR), t.Text) originalLineHeight := ruler.LineHeightFactor
ruler.LineHeightFactor = textmeasure.CODE_LINE_HEIGHT
w, h = ruler.MeasureMono(d2fonts.SourceCodePro.Font(t.FontSize, d2fonts.FONT_STYLE_REGULAR), t.Text)
ruler.LineHeightFactor = originalLineHeight
// count empty leading and trailing lines since ruler will not be able to measure it // count empty leading and trailing lines since ruler will not be able to measure it
lines := strings.Split(t.Text, "\n") lines := strings.Split(t.Text, "\n")
leadingLines := 0 hasLeading := false
for _, line := range lines { if len(lines) > 0 && strings.TrimSpace(lines[0]) == "" {
if strings.TrimSpace(line) == "" { hasLeading = true
leadingLines++
} else {
break
} }
} numTrailing := 0
trailingLines := 0
for i := len(lines) - 1; i >= 0; i-- { for i := len(lines) - 1; i >= 0; i-- {
if strings.TrimSpace(lines[i]) == "" { if strings.TrimSpace(lines[i]) == "" {
trailingLines++ numTrailing++
} else { } else {
break break
} }
} }
h += t.FontSize * (leadingLines + trailingLines) if hasLeading && numTrailing < len(lines) {
h += t.FontSize
// padding }
w += 12 h += int(math.Ceil(textmeasure.CODE_LINE_HEIGHT * float64(t.FontSize*numTrailing)))
h += 12
} else { } else {
style := d2fonts.FONT_STYLE_REGULAR style := d2fonts.FONT_STYLE_REGULAR
if t.IsBold { if t.IsBold {

View file

@ -199,6 +199,7 @@ func init() {
Family: SourceSansPro, Family: SourceSansPro,
Style: FONT_STYLE_REGULAR, Style: FONT_STYLE_REGULAR,
}] = b }] = b
b, err = fontFacesFS.ReadFile("ttf/SourceCodePro-Regular.ttf") b, err = fontFacesFS.ReadFile("ttf/SourceCodePro-Regular.ttf")
if err != nil { if err != nil {
panic(err) panic(err)
@ -207,6 +208,7 @@ func init() {
Family: SourceCodePro, Family: SourceCodePro,
Style: FONT_STYLE_REGULAR, Style: FONT_STYLE_REGULAR,
}] = b }] = b
b, err = fontFacesFS.ReadFile("ttf/SourceCodePro-Bold.ttf") b, err = fontFacesFS.ReadFile("ttf/SourceCodePro-Bold.ttf")
if err != nil { if err != nil {
panic(err) panic(err)
@ -215,6 +217,7 @@ func init() {
Family: SourceCodePro, Family: SourceCodePro,
Style: FONT_STYLE_BOLD, Style: FONT_STYLE_BOLD,
}] = b }] = b
b, err = fontFacesFS.ReadFile("ttf/SourceCodePro-Semibold.ttf") b, err = fontFacesFS.ReadFile("ttf/SourceCodePro-Semibold.ttf")
if err != nil { if err != nil {
panic(err) panic(err)
@ -223,6 +226,7 @@ func init() {
Family: SourceCodePro, Family: SourceCodePro,
Style: FONT_STYLE_SEMIBOLD, Style: FONT_STYLE_SEMIBOLD,
}] = b }] = b
b, err = fontFacesFS.ReadFile("ttf/SourceCodePro-Italic.ttf") b, err = fontFacesFS.ReadFile("ttf/SourceCodePro-Italic.ttf")
if err != nil { if err != nil {
panic(err) panic(err)
@ -231,6 +235,7 @@ func init() {
Family: SourceCodePro, Family: SourceCodePro,
Style: FONT_STYLE_ITALIC, Style: FONT_STYLE_ITALIC,
}] = b }] = b
b, err = fontFacesFS.ReadFile("ttf/SourceSansPro-Bold.ttf") b, err = fontFacesFS.ReadFile("ttf/SourceSansPro-Bold.ttf")
if err != nil { if err != nil {
panic(err) panic(err)
@ -239,6 +244,7 @@ func init() {
Family: SourceSansPro, Family: SourceSansPro,
Style: FONT_STYLE_BOLD, Style: FONT_STYLE_BOLD,
}] = b }] = b
b, err = fontFacesFS.ReadFile("ttf/SourceSansPro-Semibold.ttf") b, err = fontFacesFS.ReadFile("ttf/SourceSansPro-Semibold.ttf")
if err != nil { if err != nil {
panic(err) panic(err)
@ -247,6 +253,7 @@ func init() {
Family: SourceSansPro, Family: SourceSansPro,
Style: FONT_STYLE_SEMIBOLD, Style: FONT_STYLE_SEMIBOLD,
}] = b }] = b
b, err = fontFacesFS.ReadFile("ttf/SourceSansPro-Italic.ttf") b, err = fontFacesFS.ReadFile("ttf/SourceSansPro-Italic.ttf")
if err != nil { if err != nil {
panic(err) panic(err)
@ -255,6 +262,7 @@ func init() {
Family: SourceSansPro, Family: SourceSansPro,
Style: FONT_STYLE_ITALIC, Style: FONT_STYLE_ITALIC,
}] = b }] = b
b, err = fontFacesFS.ReadFile("ttf/ArchitectsDaughter-Regular.ttf") b, err = fontFacesFS.ReadFile("ttf/ArchitectsDaughter-Regular.ttf")
if err != nil { if err != nil {
panic(err) panic(err)
@ -267,6 +275,7 @@ func init() {
Family: HandDrawn, Family: HandDrawn,
Style: FONT_STYLE_ITALIC, Style: FONT_STYLE_ITALIC,
}] = b }] = b
b, err = fontFacesFS.ReadFile("ttf/FuzzyBubbles-Bold.ttf") b, err = fontFacesFS.ReadFile("ttf/FuzzyBubbles-Bold.ttf")
if err != nil { if err != nil {
panic(err) panic(err)

View file

@ -1263,14 +1263,18 @@ func drawShape(writer io.Writer, diagramHash string, targetShape d2target.Shape,
rectEl.Height = float64(targetShape.Height) rectEl.Height = float64(targetShape.Height)
rectEl.Stroke = targetShape.Stroke rectEl.Stroke = targetShape.Stroke
rectEl.ClassName = "shape" rectEl.ClassName = "shape"
rectEl.Style = fmt.Sprintf(`fill:%s`, style.Get(chroma.Background).Background.String()) rectEl.Style = fmt.Sprintf(`fill:%s;stroke-width:%d;`,
style.Get(chroma.Background).Background.String(),
targetShape.StrokeWidth,
)
fmt.Fprint(writer, rectEl.Render()) fmt.Fprint(writer, rectEl.Render())
// Padding // Padding = 0.5em
fmt.Fprint(writer, `<g transform="translate(6 6)">`) padding := float64(targetShape.FontSize) / 2.
fmt.Fprintf(writer, `<g transform="translate(%f %f)">`, padding, padding)
lineHeight := textmeasure.CODE_LINE_HEIGHT
for index, tokens := range chroma.SplitTokensIntoLines(iterator.Tokens()) { for index, tokens := range chroma.SplitTokensIntoLines(iterator.Tokens()) {
// TODO mono font looks better with 1.2 em (use px equivalent), but textmeasure needs to account for it. Not obvious how that should be done fmt.Fprintf(writer, "<text class=\"text-mono\" x=\"0\" y=\"%fem\">", 1+float64(index)*lineHeight)
fmt.Fprintf(writer, "<text class=\"text-mono\" x=\"0\" y=\"%fem\" xml:space=\"preserve\">", 1*float64(index+1))
for _, token := range tokens { for _, token := range tokens {
text := svgEscaper.Replace(token.String()) text := svgEscaper.Replace(token.String())
attr := styleAttr(svgStyles, token.Type) attr := styleAttr(svgStyles, token.Type)

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View file

@ -423,6 +423,108 @@ no leading: |python
print "world" print "world"
|
`,
},
{
name: "code_leading_newlines",
script: `
5 leading: |python
def hello():
print "world"
|
8 total: |python
# 1 leading
# 2 leading
# 3 leading
# 4 leading
# 5 leading
def hello():
print "world"
|
1 leading: |python
def hello():
print "world"
|
4 total: |python
# 1 leading
def hello():
print "world"
|
2 leading: |python
def hello():
print "world"
|
5 total: |python
# 1 leading
# 2 leading
def hello():
print "world"
|
`,
},
{
name: "code_trailing_newlines",
script: `
5 trailing: |python
def hello():
print "world"
|
8 total: |python
def hello():
print "world"
# 1 trailing
# 2 trailing
# 3 trailing
# 4 trailing
# 5 trailing
|
1 trailing: |python
def hello():
print "world"
|
4 total: |python
def hello():
print "world"
# 1 trailing
|
2 trailing: |python
def hello():
print "world"
|
5 total: |python
def hello():
print "world"
# 1 trailing
# 2 trailing
| |
`, `,
}, },

View file

@ -0,0 +1,288 @@
{
"name": "",
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "5 leading",
"type": "code",
"pos": {
"x": 0,
"y": 0
},
"width": 160,
"height": 182,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "\n\n\n\n\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 166,
"zIndex": 0,
"level": 1
},
{
"id": "8 total",
"type": "code",
"pos": {
"x": 220,
"y": 0
},
"width": 160,
"height": 182,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "# 1 leading\n# 2 leading\n# 3 leading\n# 4 leading\n# 5 leading\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 166,
"zIndex": 0,
"level": 1
},
{
"id": "1 leading",
"type": "code",
"pos": {
"x": 440,
"y": 42
},
"width": 160,
"height": 99,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 83,
"zIndex": 0,
"level": 1
},
{
"id": "4 total",
"type": "code",
"pos": {
"x": 660,
"y": 42
},
"width": 160,
"height": 99,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "# 1 leading\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 83,
"zIndex": 0,
"level": 1
},
{
"id": "2 leading",
"type": "code",
"pos": {
"x": 880,
"y": 31
},
"width": 160,
"height": 120,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "\n\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 104,
"zIndex": 0,
"level": 1
},
{
"id": "5 total",
"type": "code",
"pos": {
"x": 1100,
"y": 31
},
"width": 160,
"height": 120,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "# 1 leading\n# 2 leading\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 104,
"zIndex": 0,
"level": 1
}
],
"connections": [],
"root": {
"id": "",
"type": "",
"pos": {
"x": 0,
"y": 0
},
"width": 0,
"height": 0,
"opacity": 0,
"strokeDash": 0,
"strokeWidth": 0,
"borderRadius": 0,
"fill": "N7",
"stroke": "",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "",
"fontSize": 0,
"fontFamily": "",
"language": "",
"color": "",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 0,
"labelHeight": 0,
"zIndex": 0,
"level": 0
}
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -0,0 +1,288 @@
{
"name": "",
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "5 leading",
"type": "code",
"pos": {
"x": 12,
"y": 12
},
"width": 160,
"height": 182,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "\n\n\n\n\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 166,
"zIndex": 0,
"level": 1
},
{
"id": "8 total",
"type": "code",
"pos": {
"x": 192,
"y": 12
},
"width": 160,
"height": 182,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "# 1 leading\n# 2 leading\n# 3 leading\n# 4 leading\n# 5 leading\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 166,
"zIndex": 0,
"level": 1
},
{
"id": "1 leading",
"type": "code",
"pos": {
"x": 372,
"y": 53
},
"width": 160,
"height": 99,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 83,
"zIndex": 0,
"level": 1
},
{
"id": "4 total",
"type": "code",
"pos": {
"x": 552,
"y": 53
},
"width": 160,
"height": 99,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "# 1 leading\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 83,
"zIndex": 0,
"level": 1
},
{
"id": "2 leading",
"type": "code",
"pos": {
"x": 732,
"y": 43
},
"width": 160,
"height": 120,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "\n\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 104,
"zIndex": 0,
"level": 1
},
{
"id": "5 total",
"type": "code",
"pos": {
"x": 912,
"y": 43
},
"width": 160,
"height": 120,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "# 1 leading\n# 2 leading\ndef hello():\n\n print \"world\"",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 104,
"zIndex": 0,
"level": 1
}
],
"connections": [],
"root": {
"id": "",
"type": "",
"pos": {
"x": 0,
"y": 0
},
"width": 0,
"height": 0,
"opacity": 0,
"strokeDash": 0,
"strokeWidth": 0,
"borderRadius": 0,
"fill": "N7",
"stroke": "",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "",
"fontSize": 0,
"fontFamily": "",
"language": "",
"color": "",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 0,
"labelHeight": 0,
"zIndex": 0,
"level": 0
}
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -10,8 +10,8 @@
"x": 0, "x": 0,
"y": 0 "y": 0
}, },
"width": 239, "width": 238,
"height": 150, "height": 183,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -38,8 +38,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 234, "labelWidth": 222,
"labelHeight": 145, "labelHeight": 167,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -47,11 +47,11 @@
"id": "no trailing", "id": "no trailing",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 299, "x": 298,
"y": 16 "y": 21
}, },
"width": 160, "width": 160,
"height": 118, "height": 141,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -78,8 +78,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 155, "labelWidth": 144,
"labelHeight": 113, "labelHeight": 125,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -87,11 +87,11 @@
"id": "no leading", "id": "no leading",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 519, "x": 518,
"y": 16 "y": 21
}, },
"width": 160, "width": 160,
"height": 118, "height": 141,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -118,8 +118,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 155, "labelWidth": 144,
"labelHeight": 113, "labelHeight": 125,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
} }

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -10,8 +10,8 @@
"x": 12, "x": 12,
"y": 12 "y": 12
}, },
"width": 239, "width": 238,
"height": 150, "height": 183,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -38,8 +38,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 234, "labelWidth": 222,
"labelHeight": 145, "labelHeight": 167,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -47,11 +47,11 @@
"id": "no trailing", "id": "no trailing",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 271, "x": 270,
"y": 28 "y": 33
}, },
"width": 160, "width": 160,
"height": 118, "height": 141,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -78,8 +78,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 155, "labelWidth": 144,
"labelHeight": 113, "labelHeight": 125,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -87,11 +87,11 @@
"id": "no leading", "id": "no leading",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 451, "x": 450,
"y": 28 "y": 33
}, },
"width": 160, "width": 160,
"height": 118, "height": 141,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -118,8 +118,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 155, "labelWidth": 144,
"labelHeight": 113, "labelHeight": 125,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
} }

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1,288 @@
{
"name": "",
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "5 trailing",
"type": "code",
"pos": {
"x": 0,
"y": 0
},
"width": 160,
"height": 182,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n\n\n\n\n",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 166,
"zIndex": 0,
"level": 1
},
{
"id": "8 total",
"type": "code",
"pos": {
"x": 220,
"y": 0
},
"width": 160,
"height": 182,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n# 1 trailing\n# 2 trailing\n# 3 trailing\n# 4 trailing\n# 5 trailing",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 166,
"zIndex": 0,
"level": 1
},
{
"id": "1 trailing",
"type": "code",
"pos": {
"x": 440,
"y": 42
},
"width": 160,
"height": 99,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 83,
"zIndex": 0,
"level": 1
},
{
"id": "4 total",
"type": "code",
"pos": {
"x": 660,
"y": 42
},
"width": 160,
"height": 99,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n# 1 trailing",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 83,
"zIndex": 0,
"level": 1
},
{
"id": "2 trailing",
"type": "code",
"pos": {
"x": 880,
"y": 31
},
"width": 160,
"height": 120,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n\n",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 104,
"zIndex": 0,
"level": 1
},
{
"id": "5 total",
"type": "code",
"pos": {
"x": 1100,
"y": 31
},
"width": 160,
"height": 120,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n# 1 trailing\n# 2 trailing",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 104,
"zIndex": 0,
"level": 1
}
],
"connections": [],
"root": {
"id": "",
"type": "",
"pos": {
"x": 0,
"y": 0
},
"width": 0,
"height": 0,
"opacity": 0,
"strokeDash": 0,
"strokeWidth": 0,
"borderRadius": 0,
"fill": "N7",
"stroke": "",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "",
"fontSize": 0,
"fontFamily": "",
"language": "",
"color": "",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 0,
"labelHeight": 0,
"zIndex": 0,
"level": 0
}
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -0,0 +1,288 @@
{
"name": "",
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "5 trailing",
"type": "code",
"pos": {
"x": 12,
"y": 12
},
"width": 160,
"height": 182,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n\n\n\n\n",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 166,
"zIndex": 0,
"level": 1
},
{
"id": "8 total",
"type": "code",
"pos": {
"x": 192,
"y": 12
},
"width": 160,
"height": 182,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n# 1 trailing\n# 2 trailing\n# 3 trailing\n# 4 trailing\n# 5 trailing",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 166,
"zIndex": 0,
"level": 1
},
{
"id": "1 trailing",
"type": "code",
"pos": {
"x": 372,
"y": 53
},
"width": 160,
"height": 99,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 83,
"zIndex": 0,
"level": 1
},
{
"id": "4 total",
"type": "code",
"pos": {
"x": 552,
"y": 53
},
"width": 160,
"height": 99,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n# 1 trailing",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 83,
"zIndex": 0,
"level": 1
},
{
"id": "2 trailing",
"type": "code",
"pos": {
"x": 732,
"y": 43
},
"width": 160,
"height": 120,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n\n",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 104,
"zIndex": 0,
"level": 1
},
{
"id": "5 total",
"type": "code",
"pos": {
"x": 912,
"y": 43
},
"width": 160,
"height": 120,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "N7",
"stroke": "N1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "def hello():\n\n print \"world\"\n# 1 trailing\n# 2 trailing",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "python",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 144,
"labelHeight": 104,
"zIndex": 0,
"level": 1
}
],
"connections": [],
"root": {
"id": "",
"type": "",
"pos": {
"x": 0,
"y": 0
},
"width": 0,
"height": 0,
"opacity": 0,
"strokeDash": 0,
"strokeWidth": 0,
"borderRadius": 0,
"fill": "N7",
"stroke": "",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "",
"fontSize": 0,
"fontFamily": "",
"language": "",
"color": "",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 0,
"labelHeight": 0,
"zIndex": 0,
"level": 0
}
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -10,8 +10,8 @@
"x": 0, "x": 0,
"y": 0 "y": 0
}, },
"width": 73, "width": 74,
"height": 38, "height": 37,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -38,8 +38,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 68, "labelWidth": 58,
"labelHeight": 33, "labelHeight": 21,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
} }

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.5.1-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 75 40"><svg id="d2-svg" class="d2-1323269655" width="75" height="40" viewBox="-1 -1 75 40"><rect x="-1.000000" y="-1.000000" width="75.000000" height="40.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[ <?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.5.1-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 76 39"><svg id="d2-svg" class="d2-1328841925" width="76" height="39" viewBox="-1 -1 76 39"><rect x="-1.000000" y="-1.000000" width="76.000000" height="39.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-1323269655 .text-mono { .d2-1328841925 .text-mono {
font-family: "d2-1323269655-font-mono"; font-family: "d2-1328841925-font-mono";
} }
@font-face { @font-face {
font-family: d2-1323269655-font-mono; font-family: d2-1328841925-font-mono;
src: url("data:application/font-woff;base64,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"); src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape { }]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision; shape-rendering: geometricPrecision;
@ -18,78 +18,78 @@
opacity: 0.5; opacity: 0.5;
} }
.d2-1323269655 .fill-N1{fill:#0A0F25;} .d2-1328841925 .fill-N1{fill:#0A0F25;}
.d2-1323269655 .fill-N2{fill:#676C7E;} .d2-1328841925 .fill-N2{fill:#676C7E;}
.d2-1323269655 .fill-N3{fill:#9499AB;} .d2-1328841925 .fill-N3{fill:#9499AB;}
.d2-1323269655 .fill-N4{fill:#CFD2DD;} .d2-1328841925 .fill-N4{fill:#CFD2DD;}
.d2-1323269655 .fill-N5{fill:#DEE1EB;} .d2-1328841925 .fill-N5{fill:#DEE1EB;}
.d2-1323269655 .fill-N6{fill:#EEF1F8;} .d2-1328841925 .fill-N6{fill:#EEF1F8;}
.d2-1323269655 .fill-N7{fill:#FFFFFF;} .d2-1328841925 .fill-N7{fill:#FFFFFF;}
.d2-1323269655 .fill-B1{fill:#0D32B2;} .d2-1328841925 .fill-B1{fill:#0D32B2;}
.d2-1323269655 .fill-B2{fill:#0D32B2;} .d2-1328841925 .fill-B2{fill:#0D32B2;}
.d2-1323269655 .fill-B3{fill:#E3E9FD;} .d2-1328841925 .fill-B3{fill:#E3E9FD;}
.d2-1323269655 .fill-B4{fill:#E3E9FD;} .d2-1328841925 .fill-B4{fill:#E3E9FD;}
.d2-1323269655 .fill-B5{fill:#EDF0FD;} .d2-1328841925 .fill-B5{fill:#EDF0FD;}
.d2-1323269655 .fill-B6{fill:#F7F8FE;} .d2-1328841925 .fill-B6{fill:#F7F8FE;}
.d2-1323269655 .fill-AA2{fill:#4A6FF3;} .d2-1328841925 .fill-AA2{fill:#4A6FF3;}
.d2-1323269655 .fill-AA4{fill:#EDF0FD;} .d2-1328841925 .fill-AA4{fill:#EDF0FD;}
.d2-1323269655 .fill-AA5{fill:#F7F8FE;} .d2-1328841925 .fill-AA5{fill:#F7F8FE;}
.d2-1323269655 .fill-AB4{fill:#EDF0FD;} .d2-1328841925 .fill-AB4{fill:#EDF0FD;}
.d2-1323269655 .fill-AB5{fill:#F7F8FE;} .d2-1328841925 .fill-AB5{fill:#F7F8FE;}
.d2-1323269655 .stroke-N1{stroke:#0A0F25;} .d2-1328841925 .stroke-N1{stroke:#0A0F25;}
.d2-1323269655 .stroke-N2{stroke:#676C7E;} .d2-1328841925 .stroke-N2{stroke:#676C7E;}
.d2-1323269655 .stroke-N3{stroke:#9499AB;} .d2-1328841925 .stroke-N3{stroke:#9499AB;}
.d2-1323269655 .stroke-N4{stroke:#CFD2DD;} .d2-1328841925 .stroke-N4{stroke:#CFD2DD;}
.d2-1323269655 .stroke-N5{stroke:#DEE1EB;} .d2-1328841925 .stroke-N5{stroke:#DEE1EB;}
.d2-1323269655 .stroke-N6{stroke:#EEF1F8;} .d2-1328841925 .stroke-N6{stroke:#EEF1F8;}
.d2-1323269655 .stroke-N7{stroke:#FFFFFF;} .d2-1328841925 .stroke-N7{stroke:#FFFFFF;}
.d2-1323269655 .stroke-B1{stroke:#0D32B2;} .d2-1328841925 .stroke-B1{stroke:#0D32B2;}
.d2-1323269655 .stroke-B2{stroke:#0D32B2;} .d2-1328841925 .stroke-B2{stroke:#0D32B2;}
.d2-1323269655 .stroke-B3{stroke:#E3E9FD;} .d2-1328841925 .stroke-B3{stroke:#E3E9FD;}
.d2-1323269655 .stroke-B4{stroke:#E3E9FD;} .d2-1328841925 .stroke-B4{stroke:#E3E9FD;}
.d2-1323269655 .stroke-B5{stroke:#EDF0FD;} .d2-1328841925 .stroke-B5{stroke:#EDF0FD;}
.d2-1323269655 .stroke-B6{stroke:#F7F8FE;} .d2-1328841925 .stroke-B6{stroke:#F7F8FE;}
.d2-1323269655 .stroke-AA2{stroke:#4A6FF3;} .d2-1328841925 .stroke-AA2{stroke:#4A6FF3;}
.d2-1323269655 .stroke-AA4{stroke:#EDF0FD;} .d2-1328841925 .stroke-AA4{stroke:#EDF0FD;}
.d2-1323269655 .stroke-AA5{stroke:#F7F8FE;} .d2-1328841925 .stroke-AA5{stroke:#F7F8FE;}
.d2-1323269655 .stroke-AB4{stroke:#EDF0FD;} .d2-1328841925 .stroke-AB4{stroke:#EDF0FD;}
.d2-1323269655 .stroke-AB5{stroke:#F7F8FE;} .d2-1328841925 .stroke-AB5{stroke:#F7F8FE;}
.d2-1323269655 .background-color-N1{background-color:#0A0F25;} .d2-1328841925 .background-color-N1{background-color:#0A0F25;}
.d2-1323269655 .background-color-N2{background-color:#676C7E;} .d2-1328841925 .background-color-N2{background-color:#676C7E;}
.d2-1323269655 .background-color-N3{background-color:#9499AB;} .d2-1328841925 .background-color-N3{background-color:#9499AB;}
.d2-1323269655 .background-color-N4{background-color:#CFD2DD;} .d2-1328841925 .background-color-N4{background-color:#CFD2DD;}
.d2-1323269655 .background-color-N5{background-color:#DEE1EB;} .d2-1328841925 .background-color-N5{background-color:#DEE1EB;}
.d2-1323269655 .background-color-N6{background-color:#EEF1F8;} .d2-1328841925 .background-color-N6{background-color:#EEF1F8;}
.d2-1323269655 .background-color-N7{background-color:#FFFFFF;} .d2-1328841925 .background-color-N7{background-color:#FFFFFF;}
.d2-1323269655 .background-color-B1{background-color:#0D32B2;} .d2-1328841925 .background-color-B1{background-color:#0D32B2;}
.d2-1323269655 .background-color-B2{background-color:#0D32B2;} .d2-1328841925 .background-color-B2{background-color:#0D32B2;}
.d2-1323269655 .background-color-B3{background-color:#E3E9FD;} .d2-1328841925 .background-color-B3{background-color:#E3E9FD;}
.d2-1323269655 .background-color-B4{background-color:#E3E9FD;} .d2-1328841925 .background-color-B4{background-color:#E3E9FD;}
.d2-1323269655 .background-color-B5{background-color:#EDF0FD;} .d2-1328841925 .background-color-B5{background-color:#EDF0FD;}
.d2-1323269655 .background-color-B6{background-color:#F7F8FE;} .d2-1328841925 .background-color-B6{background-color:#F7F8FE;}
.d2-1323269655 .background-color-AA2{background-color:#4A6FF3;} .d2-1328841925 .background-color-AA2{background-color:#4A6FF3;}
.d2-1323269655 .background-color-AA4{background-color:#EDF0FD;} .d2-1328841925 .background-color-AA4{background-color:#EDF0FD;}
.d2-1323269655 .background-color-AA5{background-color:#F7F8FE;} .d2-1328841925 .background-color-AA5{background-color:#F7F8FE;}
.d2-1323269655 .background-color-AB4{background-color:#EDF0FD;} .d2-1328841925 .background-color-AB4{background-color:#EDF0FD;}
.d2-1323269655 .background-color-AB5{background-color:#F7F8FE;} .d2-1328841925 .background-color-AB5{background-color:#F7F8FE;}
.d2-1323269655 .color-N1{color:#0A0F25;} .d2-1328841925 .color-N1{color:#0A0F25;}
.d2-1323269655 .color-N2{color:#676C7E;} .d2-1328841925 .color-N2{color:#676C7E;}
.d2-1323269655 .color-N3{color:#9499AB;} .d2-1328841925 .color-N3{color:#9499AB;}
.d2-1323269655 .color-N4{color:#CFD2DD;} .d2-1328841925 .color-N4{color:#CFD2DD;}
.d2-1323269655 .color-N5{color:#DEE1EB;} .d2-1328841925 .color-N5{color:#DEE1EB;}
.d2-1323269655 .color-N6{color:#EEF1F8;} .d2-1328841925 .color-N6{color:#EEF1F8;}
.d2-1323269655 .color-N7{color:#FFFFFF;} .d2-1328841925 .color-N7{color:#FFFFFF;}
.d2-1323269655 .color-B1{color:#0D32B2;} .d2-1328841925 .color-B1{color:#0D32B2;}
.d2-1323269655 .color-B2{color:#0D32B2;} .d2-1328841925 .color-B2{color:#0D32B2;}
.d2-1323269655 .color-B3{color:#E3E9FD;} .d2-1328841925 .color-B3{color:#E3E9FD;}
.d2-1323269655 .color-B4{color:#E3E9FD;} .d2-1328841925 .color-B4{color:#E3E9FD;}
.d2-1323269655 .color-B5{color:#EDF0FD;} .d2-1328841925 .color-B5{color:#EDF0FD;}
.d2-1323269655 .color-B6{color:#F7F8FE;} .d2-1328841925 .color-B6{color:#F7F8FE;}
.d2-1323269655 .color-AA2{color:#4A6FF3;} .d2-1328841925 .color-AA2{color:#4A6FF3;}
.d2-1323269655 .color-AA4{color:#EDF0FD;} .d2-1328841925 .color-AA4{color:#EDF0FD;}
.d2-1323269655 .color-AA5{color:#F7F8FE;} .d2-1328841925 .color-AA5{color:#F7F8FE;}
.d2-1323269655 .color-AB4{color:#EDF0FD;} .d2-1328841925 .color-AB4{color:#EDF0FD;}
.d2-1323269655 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="x"><g class="shape" ></g><g transform="translate(0.000000 0.000000)" class="light-code"><rect width="73.000000" height="38.000000" class="shape stroke-N1" style="fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">x&#160;-&gt;&#160;y</text></g></g><g transform="translate(0.000000 0.000000)" class="dark-code"><rect width="73.000000" height="38.000000" class="shape stroke-N1" style="fill:#1e1e2e" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve"><tspan fill="#fab387">x&#160;-&gt;&#160;y</tspan></text></g></g></g><mask id="d2-1323269655" maskUnits="userSpaceOnUse" x="-1" y="-1" width="75" height="40"> .d2-1328841925 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="x"><g class="shape" ></g><g transform="translate(0.000000 0.000000)" class="light-code"><rect width="74.000000" height="37.000000" class="shape stroke-N1" style="fill:#ffffff;stroke-width:2;" /><g transform="translate(8.000000 8.000000)"><text class="text-mono" x="0" y="1.000000em">x&#160;-&gt;&#160;y</text></g></g><g transform="translate(0.000000 0.000000)" class="dark-code"><rect width="74.000000" height="37.000000" class="shape stroke-N1" style="fill:#1e1e2e;stroke-width:2;" /><g transform="translate(8.000000 8.000000)"><text class="text-mono" x="0" y="1.000000em"><tspan fill="#fab387">x&#160;-&gt;&#160;y</tspan></text></g></g></g><mask id="d2-1328841925" maskUnits="userSpaceOnUse" x="-1" y="-1" width="76" height="39">
<rect x="-1" y="-1" width="75" height="40" fill="white"></rect> <rect x="-1" y="-1" width="76" height="39" fill="white"></rect>
<rect x="0.000000" y="0.000000" width="68" height="33" fill="rgba(0,0,0,0.75)"></rect> <rect x="0.000000" y="0.000000" width="58" height="21" fill="rgba(0,0,0,0.75)"></rect>
</mask></svg></svg> </mask></svg></svg>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -10,8 +10,8 @@
"x": 12, "x": 12,
"y": 12 "y": 12
}, },
"width": 73, "width": 74,
"height": 38, "height": 37,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -38,8 +38,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 68, "labelWidth": 58,
"labelHeight": 33, "labelHeight": 21,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
} }

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.5.1-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 75 40"><svg id="d2-svg" class="d2-4118793327" width="75" height="40" viewBox="11 11 75 40"><rect x="11.000000" y="11.000000" width="75.000000" height="40.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[ <?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.5.1-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 76 39"><svg id="d2-svg" class="d2-943498989" width="76" height="39" viewBox="11 11 76 39"><rect x="11.000000" y="11.000000" width="76.000000" height="39.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-4118793327 .text-mono { .d2-943498989 .text-mono {
font-family: "d2-4118793327-font-mono"; font-family: "d2-943498989-font-mono";
} }
@font-face { @font-face {
font-family: d2-4118793327-font-mono; font-family: d2-943498989-font-mono;
src: url("data:application/font-woff;base64,d09GRgABAAAAAAqAAAoAAAAAFFAAAgm6AAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABgld/X+GNtYXAAAAFUAAAATQAAAFABEgB/Z2x5ZgAAAaQAAAFcAAABXM02OrFoZWFkAAADAAAAADYAAAA2GanOOmhoZWEAAAM4AAAAJAAAACQGMwCOaG10eAAAA1wAAAAcAAAAHBBoAcRsb2NhAAADeAAAABAAAAAQAU4Bum1heHAAAAOIAAAAIAAAACAAOwJhbmFtZQAAA6gAAAa4AAAQztydAx9wb3N0AAAKYAAAACAAAAAg/7gAMwADAlgBkAAFAAACigJYAAAASwKKAlgAAAFeADIBIwAAAgsFCQMEAwICBCAAAvcCADgDAAAAAAAAAABBREJPAEAAIP//Au7/BgAAA9gBEWAAAZ8AAAAAAeYClAAAACAAA3icNMs7DYNgAEbR8z+aNE1FYAALTIgCCxhDAjNKPhICd7rLQdEU/HUzfr6qajCarAnPL0nOHNmz3eKt6D6qxgUAAP//AQAA///a/A2IAAAAAAUAPgAAAhoClAADAAkADAASABUAADMRIRElIScnIwcHNycXMzc3Ix8CET4B3P6QAQFJNAQ2dYCAqwQxQutCYX8ClP1sOoRnZ1Dm6Lled3eN5gHOAAEAQAAAAhcB5gAZAAAzNyczFxYWFzM2Njc3MwcXIycmJicjBgYHB0C5q1tNDR0PBA4cDUlXrbpaVQ8hEAQPHg9Q/OprEysUFCwUafH1cBUuFRYrF3AAAAABADH/LwInAeYAGgAAFyInNxYWMzI2NzcDMxMWFhczNjY3EzMDDgKDJBwRChcLM0ASD+NTdw4fDwQNGwxqTtYSNk/RCkEDBDstJAHn/vMgSiMjSSEBDf3yMEwt//8AVQErAgMBaQIGAAYAAAABAGsAMAHgAmgABwAANzUlNSU1BRVrAS3+0wF1ME/LBMtP/T4AAAAAAQBVASsCAwFpAAMAABM1IRVVAa4BKz4+AAAAAAEAAAACCbrBApl5Xw889QADA+gAAAAA3B0N9wAAAADcHHNL/z/+OgMZBCQAAAADAAIAAAAAAAAAAQAAA9j+7wAAAlj/P/8/AxkAAQAAAAAAAAAAAAAAAAAAAAcCWAA+AlgAAAJYAEACWAAxAlgAVQJYAGsCWABVAAAAKgAqAFYAhACMAKAArgABAAAABwH4ACoAZQAGAAEAAAAAAAAAAAAAAAAAAwADeJyclktsk9kVx3/OuQG/eBlUDQhVVyOEpgiMnUnATSDgkAHCIEJJZtoKUdUkxrFI7Mh2YOhiFl1WXXVddTNdtBK0CiVqJoFCIKRqBarURTWrrrqouuiqmkVX1Xe+48RxEjqDkMjvPs7/nte9/oCLcgsh4qIRSIJxhCRJ4w4O8Y6xkOSUsSPJReNOkowabyPJD423k2LSOMphPjWOcZhfGsc5wp+NE5zgP8ZJBiNHjHfSG6kY7+Jg5FfGu+mKLBvvafEzxcHIl8Z7V3ViwEpHyjjCNzu+MO5gZ8eXxsJlccauZU8n43LVeBtH5JHxdp7J342jdLtfGMfodn81TtDVuc14h/jOnPFOuqPfCzkCu6M/NY6wO/pz4w4ORO8bC8noirEjFTX9SCep6D+Mt5GKWixB/mNR4yiHYgeMY/hYv3Gco7EfGCfIxH5inCQdWzDeQVfsn8Y7ycWbOrs4HL9mvJtT8U+M97T4nOLduOUqsrdFc9+q5v4IpOJ/M46QijfnO3g3/l9jYV/ioLHjQCJj3MmBxCXjbRxIjBtvZ1/iU+MomcTPjGO8l3huHOdo4l/GCbqT3zBOkks2NXdyKvlj411kkn8w3s3F5L+N97T4maJrxwnjvYGOzMozWZRXeAotXKKM5zCeSbw8ljm8zMqCLMmcPJZX8kTm5Ll8JvflsfweH7kkS/JA/iRP8PKwhedbeEU+kweyJA/lc1mQp3iXlQV5KUvyuSzKos6+MvtZ+aO8xnO94wtuBGfII3mgKqEvC3Jf5mVOlgMdrpPhhizLS3kmT+V3ar+ier/ByzOZldeyKLO689gWO5/Kc43xhSzLnCzJb+VFc5brHOGGvJDX8lgeylNZDE4NzpaXeHmkM7NqE85s7uOhLU6+j5c5eSKzmoUgy8vNefX3qJ7ekl+OqqdrdWvJd9taSccb895SFduxWkl+jaeLDFkyeI7ZqEtHecapcpMinhHuUadBkSnqeIaoMEaVGtP6f0HXxvG8xwQNGkzTy3GOc1f/pSmsqqXVcorjfCvwh7uUaTCB5xpF6hSpccfUzlOlQgPPFQpMBb74dxihygw1xij6/aRbx3jOUWVc6So1qqpaYoZJCtToIk2G98nRR55BBhimb51C0z60PtZmH1oNM8AHfKy+1imrl36d9gRVGhpphTt4srqWJkuWE/QxRYHbFHXXLYp8oh4HCj2kOUEPJ7QuX92z9Vkoa50KeBpan3GtXbDvNp4qt966wmWNNahYYPcRFa1fuDZCw3aGp1cY57jae410QjPmVXlGK1ujrLvTb+XNVQoav2eQNJ6Lphr01ahmN/g7o/0W+F2k8jX6s8E9pikyyoTlc60fRzSHDe5qTtcyPklZK1DRTg5yMqNZCONuZm2EIS7jGVb9yjrly+sUgkja+yyrfZTW2CY2PXet/ncoUNYOucmkrqzdt4Kem+c7yg168W3ZqTOmFZqmoTWqq1Zaa1DiOMOc53KbJ/8/R+P6N6z9TWZWuyeMLuia4JbnGdHKj/j9eAZ0PMSIZuS7DDHKRYb5iFEd57nGNfJcYZQhPlDbYa7pezDMFQbVYkg5XDuvN+AK38fzIUO6J9AuWn7CigU3c1q9r6vvYS+XmWJacx54ntZYixrh16+w55apNm3rajNGmVu602v9KnrXC5SsK6bVwynNZbM31m5d2BFTGktQ27X1ElV9X2t6cwNVzz17O4JuDX0KX4jGV6hq+q16pr6aw6L6vH5cst+Bsr6N4avT/EYZ0V+Csv5+janXgW0QUfB72T4zv2FmRWtV4yblsNdkhXPc09Mm7R55bmpsahF+mVDXKtS1RoFHP1KVavObxF6LKiV9n6Y1c2N6o+7pKOwC/SrZcm/BXr2aZv1283tkw9nBWzVp777X2EqmfogbFJg0lYq9lJ4KM/r7WdPV8K5pbGTf6E+7Ur31S2VDFY/q295ek/babrZLv2baK+Oy66q9md2KO+POun6XdwOu330b7zLtM5Tcx3iXw7u/4F0e7066jMu7HnfB9bqMO+VyLu8ySnnX63KBVeSScr9qndEdp92HwYo83HJlfsuVFT3vrMuuneCySmddzvW5PpdzF1yPrmbcMN71urMu4waCcbMH1e8LqtPrTrtzbiBUd6ddv+tzl5u96AZczp1x/e591RhsObPb9bjBwLNmL266N/TgpOtyPe6k63b9Yaaa/bilHyfdaZdxvXpOv0aVCVSbnbmFXz1WkVMaf7BnwPUEGWnttY11DvrhjTXakG+12NAdb9SZ36wz3mix8j8AAAD//wEAAP//m5W4BwADAAAAAAAA/7UAMgAAAAEAAAAAAAAAAAAAAAAAAAAA"); src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape { }]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision; shape-rendering: geometricPrecision;
@ -18,78 +18,78 @@
opacity: 0.5; opacity: 0.5;
} }
.d2-4118793327 .fill-N1{fill:#0A0F25;} .d2-943498989 .fill-N1{fill:#0A0F25;}
.d2-4118793327 .fill-N2{fill:#676C7E;} .d2-943498989 .fill-N2{fill:#676C7E;}
.d2-4118793327 .fill-N3{fill:#9499AB;} .d2-943498989 .fill-N3{fill:#9499AB;}
.d2-4118793327 .fill-N4{fill:#CFD2DD;} .d2-943498989 .fill-N4{fill:#CFD2DD;}
.d2-4118793327 .fill-N5{fill:#DEE1EB;} .d2-943498989 .fill-N5{fill:#DEE1EB;}
.d2-4118793327 .fill-N6{fill:#EEF1F8;} .d2-943498989 .fill-N6{fill:#EEF1F8;}
.d2-4118793327 .fill-N7{fill:#FFFFFF;} .d2-943498989 .fill-N7{fill:#FFFFFF;}
.d2-4118793327 .fill-B1{fill:#0D32B2;} .d2-943498989 .fill-B1{fill:#0D32B2;}
.d2-4118793327 .fill-B2{fill:#0D32B2;} .d2-943498989 .fill-B2{fill:#0D32B2;}
.d2-4118793327 .fill-B3{fill:#E3E9FD;} .d2-943498989 .fill-B3{fill:#E3E9FD;}
.d2-4118793327 .fill-B4{fill:#E3E9FD;} .d2-943498989 .fill-B4{fill:#E3E9FD;}
.d2-4118793327 .fill-B5{fill:#EDF0FD;} .d2-943498989 .fill-B5{fill:#EDF0FD;}
.d2-4118793327 .fill-B6{fill:#F7F8FE;} .d2-943498989 .fill-B6{fill:#F7F8FE;}
.d2-4118793327 .fill-AA2{fill:#4A6FF3;} .d2-943498989 .fill-AA2{fill:#4A6FF3;}
.d2-4118793327 .fill-AA4{fill:#EDF0FD;} .d2-943498989 .fill-AA4{fill:#EDF0FD;}
.d2-4118793327 .fill-AA5{fill:#F7F8FE;} .d2-943498989 .fill-AA5{fill:#F7F8FE;}
.d2-4118793327 .fill-AB4{fill:#EDF0FD;} .d2-943498989 .fill-AB4{fill:#EDF0FD;}
.d2-4118793327 .fill-AB5{fill:#F7F8FE;} .d2-943498989 .fill-AB5{fill:#F7F8FE;}
.d2-4118793327 .stroke-N1{stroke:#0A0F25;} .d2-943498989 .stroke-N1{stroke:#0A0F25;}
.d2-4118793327 .stroke-N2{stroke:#676C7E;} .d2-943498989 .stroke-N2{stroke:#676C7E;}
.d2-4118793327 .stroke-N3{stroke:#9499AB;} .d2-943498989 .stroke-N3{stroke:#9499AB;}
.d2-4118793327 .stroke-N4{stroke:#CFD2DD;} .d2-943498989 .stroke-N4{stroke:#CFD2DD;}
.d2-4118793327 .stroke-N5{stroke:#DEE1EB;} .d2-943498989 .stroke-N5{stroke:#DEE1EB;}
.d2-4118793327 .stroke-N6{stroke:#EEF1F8;} .d2-943498989 .stroke-N6{stroke:#EEF1F8;}
.d2-4118793327 .stroke-N7{stroke:#FFFFFF;} .d2-943498989 .stroke-N7{stroke:#FFFFFF;}
.d2-4118793327 .stroke-B1{stroke:#0D32B2;} .d2-943498989 .stroke-B1{stroke:#0D32B2;}
.d2-4118793327 .stroke-B2{stroke:#0D32B2;} .d2-943498989 .stroke-B2{stroke:#0D32B2;}
.d2-4118793327 .stroke-B3{stroke:#E3E9FD;} .d2-943498989 .stroke-B3{stroke:#E3E9FD;}
.d2-4118793327 .stroke-B4{stroke:#E3E9FD;} .d2-943498989 .stroke-B4{stroke:#E3E9FD;}
.d2-4118793327 .stroke-B5{stroke:#EDF0FD;} .d2-943498989 .stroke-B5{stroke:#EDF0FD;}
.d2-4118793327 .stroke-B6{stroke:#F7F8FE;} .d2-943498989 .stroke-B6{stroke:#F7F8FE;}
.d2-4118793327 .stroke-AA2{stroke:#4A6FF3;} .d2-943498989 .stroke-AA2{stroke:#4A6FF3;}
.d2-4118793327 .stroke-AA4{stroke:#EDF0FD;} .d2-943498989 .stroke-AA4{stroke:#EDF0FD;}
.d2-4118793327 .stroke-AA5{stroke:#F7F8FE;} .d2-943498989 .stroke-AA5{stroke:#F7F8FE;}
.d2-4118793327 .stroke-AB4{stroke:#EDF0FD;} .d2-943498989 .stroke-AB4{stroke:#EDF0FD;}
.d2-4118793327 .stroke-AB5{stroke:#F7F8FE;} .d2-943498989 .stroke-AB5{stroke:#F7F8FE;}
.d2-4118793327 .background-color-N1{background-color:#0A0F25;} .d2-943498989 .background-color-N1{background-color:#0A0F25;}
.d2-4118793327 .background-color-N2{background-color:#676C7E;} .d2-943498989 .background-color-N2{background-color:#676C7E;}
.d2-4118793327 .background-color-N3{background-color:#9499AB;} .d2-943498989 .background-color-N3{background-color:#9499AB;}
.d2-4118793327 .background-color-N4{background-color:#CFD2DD;} .d2-943498989 .background-color-N4{background-color:#CFD2DD;}
.d2-4118793327 .background-color-N5{background-color:#DEE1EB;} .d2-943498989 .background-color-N5{background-color:#DEE1EB;}
.d2-4118793327 .background-color-N6{background-color:#EEF1F8;} .d2-943498989 .background-color-N6{background-color:#EEF1F8;}
.d2-4118793327 .background-color-N7{background-color:#FFFFFF;} .d2-943498989 .background-color-N7{background-color:#FFFFFF;}
.d2-4118793327 .background-color-B1{background-color:#0D32B2;} .d2-943498989 .background-color-B1{background-color:#0D32B2;}
.d2-4118793327 .background-color-B2{background-color:#0D32B2;} .d2-943498989 .background-color-B2{background-color:#0D32B2;}
.d2-4118793327 .background-color-B3{background-color:#E3E9FD;} .d2-943498989 .background-color-B3{background-color:#E3E9FD;}
.d2-4118793327 .background-color-B4{background-color:#E3E9FD;} .d2-943498989 .background-color-B4{background-color:#E3E9FD;}
.d2-4118793327 .background-color-B5{background-color:#EDF0FD;} .d2-943498989 .background-color-B5{background-color:#EDF0FD;}
.d2-4118793327 .background-color-B6{background-color:#F7F8FE;} .d2-943498989 .background-color-B6{background-color:#F7F8FE;}
.d2-4118793327 .background-color-AA2{background-color:#4A6FF3;} .d2-943498989 .background-color-AA2{background-color:#4A6FF3;}
.d2-4118793327 .background-color-AA4{background-color:#EDF0FD;} .d2-943498989 .background-color-AA4{background-color:#EDF0FD;}
.d2-4118793327 .background-color-AA5{background-color:#F7F8FE;} .d2-943498989 .background-color-AA5{background-color:#F7F8FE;}
.d2-4118793327 .background-color-AB4{background-color:#EDF0FD;} .d2-943498989 .background-color-AB4{background-color:#EDF0FD;}
.d2-4118793327 .background-color-AB5{background-color:#F7F8FE;} .d2-943498989 .background-color-AB5{background-color:#F7F8FE;}
.d2-4118793327 .color-N1{color:#0A0F25;} .d2-943498989 .color-N1{color:#0A0F25;}
.d2-4118793327 .color-N2{color:#676C7E;} .d2-943498989 .color-N2{color:#676C7E;}
.d2-4118793327 .color-N3{color:#9499AB;} .d2-943498989 .color-N3{color:#9499AB;}
.d2-4118793327 .color-N4{color:#CFD2DD;} .d2-943498989 .color-N4{color:#CFD2DD;}
.d2-4118793327 .color-N5{color:#DEE1EB;} .d2-943498989 .color-N5{color:#DEE1EB;}
.d2-4118793327 .color-N6{color:#EEF1F8;} .d2-943498989 .color-N6{color:#EEF1F8;}
.d2-4118793327 .color-N7{color:#FFFFFF;} .d2-943498989 .color-N7{color:#FFFFFF;}
.d2-4118793327 .color-B1{color:#0D32B2;} .d2-943498989 .color-B1{color:#0D32B2;}
.d2-4118793327 .color-B2{color:#0D32B2;} .d2-943498989 .color-B2{color:#0D32B2;}
.d2-4118793327 .color-B3{color:#E3E9FD;} .d2-943498989 .color-B3{color:#E3E9FD;}
.d2-4118793327 .color-B4{color:#E3E9FD;} .d2-943498989 .color-B4{color:#E3E9FD;}
.d2-4118793327 .color-B5{color:#EDF0FD;} .d2-943498989 .color-B5{color:#EDF0FD;}
.d2-4118793327 .color-B6{color:#F7F8FE;} .d2-943498989 .color-B6{color:#F7F8FE;}
.d2-4118793327 .color-AA2{color:#4A6FF3;} .d2-943498989 .color-AA2{color:#4A6FF3;}
.d2-4118793327 .color-AA4{color:#EDF0FD;} .d2-943498989 .color-AA4{color:#EDF0FD;}
.d2-4118793327 .color-AA5{color:#F7F8FE;} .d2-943498989 .color-AA5{color:#F7F8FE;}
.d2-4118793327 .color-AB4{color:#EDF0FD;} .d2-943498989 .color-AB4{color:#EDF0FD;}
.d2-4118793327 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="x"><g class="shape" ></g><g transform="translate(12.000000 12.000000)" class="light-code"><rect width="73.000000" height="38.000000" class="shape stroke-N1" style="fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">x&#160;-&gt;&#160;y</text></g></g><g transform="translate(12.000000 12.000000)" class="dark-code"><rect width="73.000000" height="38.000000" class="shape stroke-N1" style="fill:#1e1e2e" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve"><tspan fill="#fab387">x&#160;-&gt;&#160;y</tspan></text></g></g></g><mask id="d2-4118793327" maskUnits="userSpaceOnUse" x="11" y="11" width="75" height="40"> .d2-943498989 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="x"><g class="shape" ></g><g transform="translate(12.000000 12.000000)" class="light-code"><rect width="74.000000" height="37.000000" class="shape stroke-N1" style="fill:#ffffff;stroke-width:2;" /><g transform="translate(8.000000 8.000000)"><text class="text-mono" x="0" y="1.000000em">x&#160;-&gt;&#160;y</text></g></g><g transform="translate(12.000000 12.000000)" class="dark-code"><rect width="74.000000" height="37.000000" class="shape stroke-N1" style="fill:#1e1e2e;stroke-width:2;" /><g transform="translate(8.000000 8.000000)"><text class="text-mono" x="0" y="1.000000em"><tspan fill="#fab387">x&#160;-&gt;&#160;y</tspan></text></g></g></g><mask id="d2-943498989" maskUnits="userSpaceOnUse" x="11" y="11" width="76" height="39">
<rect x="11" y="11" width="75" height="40" fill="white"></rect> <rect x="11" y="11" width="76" height="39" fill="white"></rect>
<rect x="12.000000" y="12.000000" width="68" height="33" fill="rgba(0,0,0,0.75)"></rect> <rect x="12.000000" y="12.000000" width="58" height="21" fill="rgba(0,0,0,0.75)"></rect>
</mask></svg></svg> </mask></svg></svg>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -266,11 +266,11 @@
"id": "code", "id": "code",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 113, "x": 112,
"y": 754 "y": 754
}, },
"width": 196, "width": 199,
"height": 70, "height": 78,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -297,8 +297,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
} }

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View file

@ -266,11 +266,11 @@
"id": "code", "id": "code",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 125, "x": 123,
"y": 706 "y": 706
}, },
"width": 196, "width": 199,
"height": 70, "height": 78,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -297,8 +297,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
} }

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View file

@ -11,7 +11,7 @@
"y": 166 "y": 166
}, },
"width": 755, "width": 755,
"height": 166, "height": 203,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -38,8 +38,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 750, "labelWidth": 739,
"labelHeight": 161, "labelHeight": 187,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -89,7 +89,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 351, "x": 351,
"y": 432 "y": 469
}, },
"width": 54, "width": 54,
"height": 66, "height": 66,
@ -200,19 +200,19 @@
"route": [ "route": [
{ {
"x": 377.5, "x": 377.5,
"y": 332 "y": 369
}, },
{ {
"x": 377.5, "x": 377.5,
"y": 372 "y": 409
}, },
{ {
"x": 377.5, "x": 377.5,
"y": 392 "y": 429
}, },
{ {
"x": 377.5, "x": 377.5,
"y": 432 "y": 469
} }
], ],
"isCurve": true, "isCurve": true,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View file

@ -11,7 +11,7 @@
"y": 148 "y": 148
}, },
"width": 755, "width": 755,
"height": 166, "height": 203,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -38,8 +38,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 750, "labelWidth": 739,
"labelHeight": 161, "labelHeight": 187,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -89,7 +89,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 362, "x": 362,
"y": 384 "y": 421
}, },
"width": 54, "width": 54,
"height": 66, "height": 66,
@ -191,11 +191,11 @@
"route": [ "route": [
{ {
"x": 389.5, "x": 389.5,
"y": 314 "y": 351
}, },
{ {
"x": 389.5, "x": 389.5,
"y": 384 "y": 421
} }
], ],
"animated": false, "animated": false,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View file

@ -186,10 +186,10 @@
"type": "code", "type": "code",
"pos": { "pos": {
"x": 922, "x": 922,
"y": 166 "y": 158
}, },
"width": 196, "width": 199,
"height": 70, "height": 78,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -216,8 +216,8 @@
"italic": false, "italic": false,
"bold": false, "bold": false,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"labelPosition": "INSIDE_MIDDLE_CENTER", "labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
@ -226,7 +226,7 @@
"id": "f", "id": "f",
"type": "cylinder", "type": "cylinder",
"pos": { "pos": {
"x": 1140, "x": 1143,
"y": 118 "y": 118
}, },
"width": 100, "width": 100,
@ -267,7 +267,7 @@
"id": "g", "id": "g",
"type": "diamond", "type": "diamond",
"pos": { "pos": {
"x": 1290, "x": 1293,
"y": 144 "y": 144
}, },
"width": 100, "width": 100,
@ -308,7 +308,7 @@
"id": "h", "id": "h",
"type": "document", "type": "document",
"pos": { "pos": {
"x": 1440, "x": 1443,
"y": 160 "y": 160
}, },
"width": 100, "width": 100,
@ -349,7 +349,7 @@
"id": "i", "id": "i",
"type": "hexagon", "type": "hexagon",
"pos": { "pos": {
"x": 1580, "x": 1583,
"y": 167 "y": 167
}, },
"width": 146, "width": 146,
@ -390,7 +390,7 @@
"id": "j", "id": "j",
"type": "image", "type": "image",
"pos": { "pos": {
"x": 1766, "x": 1769,
"y": 87 "y": 87
}, },
"width": 128, "width": 128,
@ -443,7 +443,7 @@
"id": "k", "id": "k",
"type": "oval", "type": "oval",
"pos": { "pos": {
"x": 1932, "x": 1935,
"y": 163 "y": 163
}, },
"width": 100, "width": 100,
@ -484,7 +484,7 @@
"id": "l", "id": "l",
"type": "package", "type": "package",
"pos": { "pos": {
"x": 2082, "x": 2085,
"y": 163 "y": 163
}, },
"width": 100, "width": 100,
@ -525,7 +525,7 @@
"id": "m", "id": "m",
"type": "page", "type": "page",
"pos": { "pos": {
"x": 2226, "x": 2229,
"y": 149 "y": 149
}, },
"width": 113, "width": 113,
@ -566,7 +566,7 @@
"id": "n", "id": "n",
"type": "parallelogram", "type": "parallelogram",
"pos": { "pos": {
"x": 2379, "x": 2382,
"y": 154 "y": 154
}, },
"width": 169, "width": 169,
@ -607,7 +607,7 @@
"id": "o", "id": "o",
"type": "person", "type": "person",
"pos": { "pos": {
"x": 2568, "x": 2571,
"y": 64 "y": 64
}, },
"width": 100, "width": 100,
@ -648,7 +648,7 @@
"id": "p", "id": "p",
"type": "queue", "type": "queue",
"pos": { "pos": {
"x": 2708, "x": 2711,
"y": 170 "y": 170
}, },
"width": 151, "width": 151,
@ -689,7 +689,7 @@
"id": "q", "id": "q",
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 2899, "x": 2902,
"y": 133 "y": 133
}, },
"width": 103, "width": 103,
@ -730,7 +730,7 @@
"id": "r", "id": "r",
"type": "step", "type": "step",
"pos": { "pos": {
"x": 3042, "x": 3045,
"y": 135 "y": 135
}, },
"width": 187, "width": 187,
@ -771,7 +771,7 @@
"id": "s", "id": "s",
"type": "stored_data", "type": "stored_data",
"pos": { "pos": {
"x": 3267, "x": 3270,
"y": 170 "y": 170
}, },
"width": 100, "width": 100,
@ -812,7 +812,7 @@
"id": "t", "id": "t",
"type": "sql_table", "type": "sql_table",
"pos": { "pos": {
"x": 3407, "x": 3410,
"y": 128 "y": 128
}, },
"width": 161, "width": 161,
@ -1078,7 +1078,7 @@
"y": 516 "y": 516
}, },
{ {
"x": 1020, "x": 1021.5,
"y": 516 "y": 516
} }
], ],
@ -1112,11 +1112,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1020, "x": 1021.5,
"y": 586 "y": 586
}, },
{ {
"x": 1190, "x": 1193,
"y": 586 "y": 586
} }
], ],
@ -1150,11 +1150,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1190, "x": 1193,
"y": 656 "y": 656
}, },
{ {
"x": 1340, "x": 1343,
"y": 656 "y": 656
} }
], ],
@ -1188,11 +1188,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1340, "x": 1343,
"y": 726 "y": 726
}, },
{ {
"x": 1490, "x": 1493,
"y": 726 "y": 726
} }
], ],
@ -1226,11 +1226,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1490, "x": 1493,
"y": 796 "y": 796
}, },
{ {
"x": 1653, "x": 1656,
"y": 796 "y": 796
} }
], ],
@ -1264,11 +1264,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1653, "x": 1656,
"y": 866 "y": 866
}, },
{ {
"x": 1830, "x": 1833,
"y": 866 "y": 866
} }
], ],
@ -1302,11 +1302,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1830, "x": 1833,
"y": 936 "y": 936
}, },
{ {
"x": 1982, "x": 1985,
"y": 936 "y": 936
} }
], ],
@ -1340,11 +1340,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1982, "x": 1985,
"y": 1006 "y": 1006
}, },
{ {
"x": 2132, "x": 2135,
"y": 1006 "y": 1006
} }
], ],
@ -1378,11 +1378,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2132, "x": 2135,
"y": 1076 "y": 1076
}, },
{ {
"x": 2282.5, "x": 2285.5,
"y": 1076 "y": 1076
} }
], ],
@ -1416,11 +1416,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2282.5, "x": 2285.5,
"y": 1146 "y": 1146
}, },
{ {
"x": 2463.5, "x": 2466.5,
"y": 1146 "y": 1146
} }
], ],
@ -1454,11 +1454,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2463.5, "x": 2466.5,
"y": 1216 "y": 1216
}, },
{ {
"x": 2618, "x": 2621,
"y": 1216 "y": 1216
} }
], ],
@ -1492,11 +1492,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2618, "x": 2621,
"y": 1286 "y": 1286
}, },
{ {
"x": 2783.5, "x": 2786.5,
"y": 1286 "y": 1286
} }
], ],
@ -1530,11 +1530,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2783.5, "x": 2786.5,
"y": 1356 "y": 1356
}, },
{ {
"x": 2950.5, "x": 2953.5,
"y": 1356 "y": 1356
} }
], ],
@ -1568,11 +1568,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2950.5, "x": 2953.5,
"y": 1426 "y": 1426
}, },
{ {
"x": 3135.5, "x": 3138.5,
"y": 1426 "y": 1426
} }
], ],
@ -1606,11 +1606,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 3135.5, "x": 3138.5,
"y": 1496 "y": 1496
}, },
{ {
"x": 3317, "x": 3320,
"y": 1496 "y": 1496
} }
], ],
@ -1644,11 +1644,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 3317, "x": 3320,
"y": 1566 "y": 1566
}, },
{ {
"x": 3487.5, "x": 3490.5,
"y": 1566 "y": 1566
} }
], ],
@ -1834,11 +1834,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1020, "x": 1021.5,
"y": 236 "y": 236
}, },
{ {
"x": 1020, "x": 1021.5,
"y": 1636 "y": 1636
} }
], ],
@ -1872,11 +1872,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1190, "x": 1193,
"y": 236 "y": 236
}, },
{ {
"x": 1190, "x": 1193,
"y": 1636 "y": 1636
} }
], ],
@ -1910,11 +1910,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1340, "x": 1343,
"y": 236 "y": 236
}, },
{ {
"x": 1340, "x": 1343,
"y": 1636 "y": 1636
} }
], ],
@ -1948,11 +1948,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1490, "x": 1493,
"y": 236 "y": 236
}, },
{ {
"x": 1490, "x": 1493,
"y": 1636 "y": 1636
} }
], ],
@ -1986,11 +1986,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1653, "x": 1656,
"y": 236 "y": 236
}, },
{ {
"x": 1653, "x": 1656,
"y": 1636 "y": 1636
} }
], ],
@ -2024,11 +2024,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1830, "x": 1833,
"y": 241 "y": 241
}, },
{ {
"x": 1830, "x": 1833,
"y": 1636 "y": 1636
} }
], ],
@ -2062,11 +2062,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1982, "x": 1985,
"y": 236 "y": 236
}, },
{ {
"x": 1982, "x": 1985,
"y": 1636 "y": 1636
} }
], ],
@ -2100,11 +2100,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2132, "x": 2135,
"y": 236 "y": 236
}, },
{ {
"x": 2132, "x": 2135,
"y": 1636 "y": 1636
} }
], ],
@ -2138,11 +2138,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2282.5, "x": 2285.5,
"y": 236 "y": 236
}, },
{ {
"x": 2282.5, "x": 2285.5,
"y": 1636 "y": 1636
} }
], ],
@ -2176,11 +2176,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2463.5, "x": 2466.5,
"y": 236 "y": 236
}, },
{ {
"x": 2463.5, "x": 2466.5,
"y": 1636 "y": 1636
} }
], ],
@ -2214,11 +2214,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2618, "x": 2621,
"y": 241 "y": 241
}, },
{ {
"x": 2618, "x": 2621,
"y": 1636 "y": 1636
} }
], ],
@ -2252,11 +2252,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2783.5, "x": 2786.5,
"y": 236 "y": 236
}, },
{ {
"x": 2783.5, "x": 2786.5,
"y": 1636 "y": 1636
} }
], ],
@ -2290,11 +2290,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2950.5, "x": 2953.5,
"y": 236 "y": 236
}, },
{ {
"x": 2950.5, "x": 2953.5,
"y": 1636 "y": 1636
} }
], ],
@ -2328,11 +2328,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 3135.5, "x": 3138.5,
"y": 236 "y": 236
}, },
{ {
"x": 3135.5, "x": 3138.5,
"y": 1636 "y": 1636
} }
], ],
@ -2366,11 +2366,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 3317, "x": 3320,
"y": 236 "y": 236
}, },
{ {
"x": 3317, "x": 3320,
"y": 1636 "y": 1636
} }
], ],
@ -2404,11 +2404,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 3487.5, "x": 3490.5,
"y": 236 "y": 236
}, },
{ {
"x": 3487.5, "x": 3490.5,
"y": 1636 "y": 1636
} }
], ],

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View file

@ -186,10 +186,10 @@
"type": "code", "type": "code",
"pos": { "pos": {
"x": 922, "x": 922,
"y": 166 "y": 158
}, },
"width": 196, "width": 199,
"height": 70, "height": 78,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -216,8 +216,8 @@
"italic": false, "italic": false,
"bold": false, "bold": false,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"labelPosition": "INSIDE_MIDDLE_CENTER", "labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
@ -226,7 +226,7 @@
"id": "f", "id": "f",
"type": "cylinder", "type": "cylinder",
"pos": { "pos": {
"x": 1140, "x": 1143,
"y": 118 "y": 118
}, },
"width": 100, "width": 100,
@ -267,7 +267,7 @@
"id": "g", "id": "g",
"type": "diamond", "type": "diamond",
"pos": { "pos": {
"x": 1290, "x": 1293,
"y": 144 "y": 144
}, },
"width": 100, "width": 100,
@ -308,7 +308,7 @@
"id": "h", "id": "h",
"type": "document", "type": "document",
"pos": { "pos": {
"x": 1440, "x": 1443,
"y": 160 "y": 160
}, },
"width": 100, "width": 100,
@ -349,7 +349,7 @@
"id": "i", "id": "i",
"type": "hexagon", "type": "hexagon",
"pos": { "pos": {
"x": 1580, "x": 1583,
"y": 167 "y": 167
}, },
"width": 146, "width": 146,
@ -390,7 +390,7 @@
"id": "j", "id": "j",
"type": "image", "type": "image",
"pos": { "pos": {
"x": 1766, "x": 1769,
"y": 87 "y": 87
}, },
"width": 128, "width": 128,
@ -443,7 +443,7 @@
"id": "k", "id": "k",
"type": "oval", "type": "oval",
"pos": { "pos": {
"x": 1932, "x": 1935,
"y": 163 "y": 163
}, },
"width": 100, "width": 100,
@ -484,7 +484,7 @@
"id": "l", "id": "l",
"type": "package", "type": "package",
"pos": { "pos": {
"x": 2082, "x": 2085,
"y": 163 "y": 163
}, },
"width": 100, "width": 100,
@ -525,7 +525,7 @@
"id": "m", "id": "m",
"type": "page", "type": "page",
"pos": { "pos": {
"x": 2226, "x": 2229,
"y": 149 "y": 149
}, },
"width": 113, "width": 113,
@ -566,7 +566,7 @@
"id": "n", "id": "n",
"type": "parallelogram", "type": "parallelogram",
"pos": { "pos": {
"x": 2379, "x": 2382,
"y": 154 "y": 154
}, },
"width": 169, "width": 169,
@ -607,7 +607,7 @@
"id": "o", "id": "o",
"type": "person", "type": "person",
"pos": { "pos": {
"x": 2568, "x": 2571,
"y": 64 "y": 64
}, },
"width": 100, "width": 100,
@ -648,7 +648,7 @@
"id": "p", "id": "p",
"type": "queue", "type": "queue",
"pos": { "pos": {
"x": 2708, "x": 2711,
"y": 170 "y": 170
}, },
"width": 151, "width": 151,
@ -689,7 +689,7 @@
"id": "q", "id": "q",
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 2899, "x": 2902,
"y": 133 "y": 133
}, },
"width": 103, "width": 103,
@ -730,7 +730,7 @@
"id": "r", "id": "r",
"type": "step", "type": "step",
"pos": { "pos": {
"x": 3042, "x": 3045,
"y": 135 "y": 135
}, },
"width": 187, "width": 187,
@ -771,7 +771,7 @@
"id": "s", "id": "s",
"type": "stored_data", "type": "stored_data",
"pos": { "pos": {
"x": 3267, "x": 3270,
"y": 170 "y": 170
}, },
"width": 100, "width": 100,
@ -812,7 +812,7 @@
"id": "t", "id": "t",
"type": "sql_table", "type": "sql_table",
"pos": { "pos": {
"x": 3407, "x": 3410,
"y": 128 "y": 128
}, },
"width": 161, "width": 161,
@ -1078,7 +1078,7 @@
"y": 516 "y": 516
}, },
{ {
"x": 1020, "x": 1021.5,
"y": 516 "y": 516
} }
], ],
@ -1112,11 +1112,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1020, "x": 1021.5,
"y": 586 "y": 586
}, },
{ {
"x": 1190, "x": 1193,
"y": 586 "y": 586
} }
], ],
@ -1150,11 +1150,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1190, "x": 1193,
"y": 656 "y": 656
}, },
{ {
"x": 1340, "x": 1343,
"y": 656 "y": 656
} }
], ],
@ -1188,11 +1188,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1340, "x": 1343,
"y": 726 "y": 726
}, },
{ {
"x": 1490, "x": 1493,
"y": 726 "y": 726
} }
], ],
@ -1226,11 +1226,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1490, "x": 1493,
"y": 796 "y": 796
}, },
{ {
"x": 1653, "x": 1656,
"y": 796 "y": 796
} }
], ],
@ -1264,11 +1264,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1653, "x": 1656,
"y": 866 "y": 866
}, },
{ {
"x": 1830, "x": 1833,
"y": 866 "y": 866
} }
], ],
@ -1302,11 +1302,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1830, "x": 1833,
"y": 936 "y": 936
}, },
{ {
"x": 1982, "x": 1985,
"y": 936 "y": 936
} }
], ],
@ -1340,11 +1340,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1982, "x": 1985,
"y": 1006 "y": 1006
}, },
{ {
"x": 2132, "x": 2135,
"y": 1006 "y": 1006
} }
], ],
@ -1378,11 +1378,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2132, "x": 2135,
"y": 1076 "y": 1076
}, },
{ {
"x": 2282.5, "x": 2285.5,
"y": 1076 "y": 1076
} }
], ],
@ -1416,11 +1416,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2282.5, "x": 2285.5,
"y": 1146 "y": 1146
}, },
{ {
"x": 2463.5, "x": 2466.5,
"y": 1146 "y": 1146
} }
], ],
@ -1454,11 +1454,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2463.5, "x": 2466.5,
"y": 1216 "y": 1216
}, },
{ {
"x": 2618, "x": 2621,
"y": 1216 "y": 1216
} }
], ],
@ -1492,11 +1492,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2618, "x": 2621,
"y": 1286 "y": 1286
}, },
{ {
"x": 2783.5, "x": 2786.5,
"y": 1286 "y": 1286
} }
], ],
@ -1530,11 +1530,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2783.5, "x": 2786.5,
"y": 1356 "y": 1356
}, },
{ {
"x": 2950.5, "x": 2953.5,
"y": 1356 "y": 1356
} }
], ],
@ -1568,11 +1568,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2950.5, "x": 2953.5,
"y": 1426 "y": 1426
}, },
{ {
"x": 3135.5, "x": 3138.5,
"y": 1426 "y": 1426
} }
], ],
@ -1606,11 +1606,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 3135.5, "x": 3138.5,
"y": 1496 "y": 1496
}, },
{ {
"x": 3317, "x": 3320,
"y": 1496 "y": 1496
} }
], ],
@ -1644,11 +1644,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 3317, "x": 3320,
"y": 1566 "y": 1566
}, },
{ {
"x": 3487.5, "x": 3490.5,
"y": 1566 "y": 1566
} }
], ],
@ -1834,11 +1834,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1020, "x": 1021.5,
"y": 236 "y": 236
}, },
{ {
"x": 1020, "x": 1021.5,
"y": 1636 "y": 1636
} }
], ],
@ -1872,11 +1872,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1190, "x": 1193,
"y": 236 "y": 236
}, },
{ {
"x": 1190, "x": 1193,
"y": 1636 "y": 1636
} }
], ],
@ -1910,11 +1910,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1340, "x": 1343,
"y": 236 "y": 236
}, },
{ {
"x": 1340, "x": 1343,
"y": 1636 "y": 1636
} }
], ],
@ -1948,11 +1948,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1490, "x": 1493,
"y": 236 "y": 236
}, },
{ {
"x": 1490, "x": 1493,
"y": 1636 "y": 1636
} }
], ],
@ -1986,11 +1986,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1653, "x": 1656,
"y": 236 "y": 236
}, },
{ {
"x": 1653, "x": 1656,
"y": 1636 "y": 1636
} }
], ],
@ -2024,11 +2024,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1830, "x": 1833,
"y": 241 "y": 241
}, },
{ {
"x": 1830, "x": 1833,
"y": 1636 "y": 1636
} }
], ],
@ -2062,11 +2062,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 1982, "x": 1985,
"y": 236 "y": 236
}, },
{ {
"x": 1982, "x": 1985,
"y": 1636 "y": 1636
} }
], ],
@ -2100,11 +2100,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2132, "x": 2135,
"y": 236 "y": 236
}, },
{ {
"x": 2132, "x": 2135,
"y": 1636 "y": 1636
} }
], ],
@ -2138,11 +2138,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2282.5, "x": 2285.5,
"y": 236 "y": 236
}, },
{ {
"x": 2282.5, "x": 2285.5,
"y": 1636 "y": 1636
} }
], ],
@ -2176,11 +2176,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2463.5, "x": 2466.5,
"y": 236 "y": 236
}, },
{ {
"x": 2463.5, "x": 2466.5,
"y": 1636 "y": 1636
} }
], ],
@ -2214,11 +2214,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2618, "x": 2621,
"y": 241 "y": 241
}, },
{ {
"x": 2618, "x": 2621,
"y": 1636 "y": 1636
} }
], ],
@ -2252,11 +2252,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2783.5, "x": 2786.5,
"y": 236 "y": 236
}, },
{ {
"x": 2783.5, "x": 2786.5,
"y": 1636 "y": 1636
} }
], ],
@ -2290,11 +2290,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 2950.5, "x": 2953.5,
"y": 236 "y": 236
}, },
{ {
"x": 2950.5, "x": 2953.5,
"y": 1636 "y": 1636
} }
], ],
@ -2328,11 +2328,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 3135.5, "x": 3138.5,
"y": 236 "y": 236
}, },
{ {
"x": 3135.5, "x": 3138.5,
"y": 1636 "y": 1636
} }
], ],
@ -2366,11 +2366,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 3317, "x": 3320,
"y": 236 "y": 236
}, },
{ {
"x": 3317, "x": 3320,
"y": 1636 "y": 1636
} }
], ],
@ -2404,11 +2404,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 3487.5, "x": 3490.5,
"y": 236 "y": 236
}, },
{ {
"x": 3487.5, "x": 3490.5,
"y": 1636 "y": 1636
} }
], ],

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View file

@ -266,10 +266,10 @@
"id": "code", "id": "code",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 116, "x": 112,
"y": 1224 "y": 1224
}, },
"width": 191, "width": 199,
"height": 512, "height": 512,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -297,8 +297,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -266,10 +266,10 @@
"id": "code", "id": "code",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 127, "x": 123,
"y": 1176 "y": 1176
}, },
"width": 191, "width": 199,
"height": 512, "height": 512,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -297,8 +297,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -270,7 +270,7 @@
"y": 754 "y": 754
}, },
"width": 512, "width": 512,
"height": 65, "height": 78,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -297,8 +297,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -307,7 +307,7 @@
"type": "package", "type": "package",
"pos": { "pos": {
"x": 0, "x": 0,
"y": 919 "y": 932
}, },
"width": 512, "width": 512,
"height": 100, "height": 100,
@ -347,7 +347,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 206, "x": 206,
"y": 1119 "y": 1132
}, },
"width": 100, "width": 100,
"height": 100, "height": 100,
@ -504,19 +504,19 @@
"route": [ "route": [
{ {
"x": 256, "x": 256,
"y": 819 "y": 832
}, },
{ {
"x": 256, "x": 256,
"y": 859 "y": 872
}, },
{ {
"x": 256, "x": 256,
"y": 883 "y": 896
}, },
{ {
"x": 256, "x": 256,
"y": 939 "y": 952
} }
], ],
"isCurve": true, "isCurve": true,
@ -551,19 +551,19 @@
"route": [ "route": [
{ {
"x": 256, "x": 256,
"y": 1019 "y": 1032
}, },
{ {
"x": 256, "x": 256,
"y": 1059 "y": 1072
}, },
{ {
"x": 256, "x": 256,
"y": 1079 "y": 1092
}, },
{ {
"x": 256, "x": 256,
"y": 1119 "y": 1132
} }
], ],
"isCurve": true, "isCurve": true,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -270,7 +270,7 @@
"y": 706 "y": 706
}, },
"width": 512, "width": 512,
"height": 65, "height": 78,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -297,8 +297,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -307,7 +307,7 @@
"type": "package", "type": "package",
"pos": { "pos": {
"x": 12, "x": 12,
"y": 841 "y": 854
}, },
"width": 512, "width": 512,
"height": 100, "height": 100,
@ -347,7 +347,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 218, "x": 218,
"y": 1011 "y": 1024
}, },
"width": 100, "width": 100,
"height": 100, "height": 100,
@ -486,11 +486,11 @@
"route": [ "route": [
{ {
"x": 268, "x": 268,
"y": 771 "y": 784
}, },
{ {
"x": 268, "x": 268,
"y": 861 "y": 874
} }
], ],
"animated": false, "animated": false,
@ -524,11 +524,11 @@
"route": [ "route": [
{ {
"x": 268, "x": 268,
"y": 941 "y": 954
}, },
{ {
"x": 268, "x": 268,
"y": 1011 "y": 1024
} }
], ],
"animated": false, "animated": false,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -10,8 +10,8 @@
"x": 0, "x": 0,
"y": 438 "y": 438
}, },
"width": 451, "width": 450,
"height": 1585, "height": 1694,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -52,7 +52,7 @@
"y": 503 "y": 503
}, },
"width": 336, "width": 336,
"height": 657, "height": 766,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -90,7 +90,7 @@
"type": "stored_data", "type": "stored_data",
"pos": { "pos": {
"x": 140, "x": 140,
"y": 710 "y": 765
}, },
"width": 130, "width": 130,
"height": 66, "height": 66,
@ -131,7 +131,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 203, "x": 203,
"y": 1062 "y": 1171
}, },
"width": 146, "width": 146,
"height": 66, "height": 66,
@ -172,7 +172,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 20, "x": 20,
"y": 1832 "y": 1941
}, },
"width": 147, "width": 147,
"height": 161, "height": 161,
@ -213,7 +213,7 @@
"type": "hexagon", "type": "hexagon",
"pos": { "pos": {
"x": 67, "x": 67,
"y": 1878 "y": 1987
}, },
"width": 59, "width": 59,
"height": 69, "height": 69,
@ -253,8 +253,8 @@
"id": "network.data processor", "id": "network.data processor",
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 182, "x": 181,
"y": 1317 "y": 1426
}, },
"width": 189, "width": 189,
"height": 192, "height": 192,
@ -294,8 +294,8 @@
"id": "network.data processor.storage", "id": "network.data processor.storage",
"type": "cylinder", "type": "cylinder",
"pos": { "pos": {
"x": 222, "x": 221,
"y": 1359 "y": 1468
}, },
"width": 99, "width": 99,
"height": 118, "height": 118,
@ -376,8 +376,8 @@
"id": "api server", "id": "api server",
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 491, "x": 490,
"y": 1589 "y": 1698
}, },
"width": 116, "width": 116,
"height": 66, "height": 66,
@ -418,7 +418,7 @@
"type": "page", "type": "page",
"pos": { "pos": {
"x": 507, "x": 507,
"y": 1836 "y": 1945
}, },
"width": 73, "width": 73,
"height": 87, "height": 87,
@ -458,7 +458,7 @@
"id": "users", "id": "users",
"type": "sql_table", "type": "sql_table",
"pos": { "pos": {
"x": 306, "x": 307,
"y": 30 "y": 30
}, },
"width": 208, "width": 208,
@ -642,7 +642,7 @@
"id": "products", "id": "products",
"type": "class", "type": "class",
"pos": { "pos": {
"x": 574, "x": 575,
"y": 0 "y": 0
}, },
"width": 242, "width": 242,
@ -706,7 +706,7 @@
"id": "markdown", "id": "markdown",
"type": "text", "type": "text",
"pos": { "pos": {
"x": 876, "x": 877,
"y": 79 "y": 79
}, },
"width": 97, "width": 97,
@ -746,11 +746,11 @@
"id": "code", "id": "code",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 491, "x": 490,
"y": 497 "y": 497
}, },
"width": 868, "width": 870,
"height": 406, "height": 515,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -777,8 +777,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 863, "labelWidth": 854,
"labelHeight": 401, "labelHeight": 499,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -787,7 +787,7 @@
"type": "text", "type": "text",
"pos": { "pos": {
"x": 723, "x": 723,
"y": 1031 "y": 1140
}, },
"width": 404, "width": 404,
"height": 52, "height": 52,
@ -849,20 +849,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 204, "x": 205,
"y": 777 "y": 832
}, },
{ {
"x": 179.1999969482422, "x": 179.39999389648438,
"y": 957 "y": 1055.199951171875
}, },
{ {
"x": 186.39999389648438, "x": 186.1999969482422,
"y": 1014.2000122070312 "y": 1123.199951171875
}, },
{ {
"x": 240, "x": 239,
"y": 1063 "y": 1172
} }
], ],
"isCurve": true, "isCurve": true,
@ -896,20 +896,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 215, "x": 214,
"y": 777 "y": 832
}, },
{ {
"x": 239.8000030517578, "x": 239.60000610351562,
"y": 957 "y": 1055.199951171875
}, },
{ {
"x": 249.8000030517578, "x": 249.8000030517578,
"y": 1014.2000122070312 "y": 1123.199951171875
}, },
{ {
"x": 265, "x": 265,
"y": 1063 "y": 1172
} }
], ],
"isCurve": true, "isCurve": true,
@ -943,20 +943,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 230, "x": 226,
"y": 777 "y": 832
}, },
{ {
"x": 326.6000061035156, "x": 325.3999938964844,
"y": 957 "y": 1055.199951171875
}, },
{ {
"x": 341.1499938964844, "x": 340.6499938964844,
"y": 1014.2000122070312 "y": 1123.199951171875
}, },
{ {
"x": 302.75, "x": 302.25,
"y": 1063 "y": 1172
} }
], ],
"isCurve": true, "isCurve": true,
@ -990,32 +990,32 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 276, "x": 275.5,
"y": 1128.5 "y": 1237.5
},
{
"x": 275.5,
"y": 1263.0999755859375
},
{
"x": 275.5,
"y": 1281.5999755859375
},
{
"x": 275.5,
"y": 1299.75
},
{
"x": 275.5,
"y": 1317.9000244140625
},
{
"x": 275.6000061035156,
"y": 1404.199951171875
}, },
{ {
"x": 276, "x": 276,
"y": 1154.0999755859375 "y": 1459
},
{
"x": 276,
"y": 1172.5999755859375
},
{
"x": 276,
"y": 1190.75
},
{
"x": 276,
"y": 1208.9000244140625
},
{
"x": 276,
"y": 1295.199951171875
},
{
"x": 276,
"y": 1350
} }
], ],
"isCurve": true, "isCurve": true,
@ -1129,143 +1129,143 @@
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 497.6000061035156 "y": 508.5
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 573.5 "y": 600.75
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 649.4000244140625 "y": 693
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 752.7000122070312 "y": 818.0999755859375
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 831.75 "y": 913.5
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 910.7999877929688 "y": 1008.9000244140625
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 982.2000122070312 "y": 1091.199951171875
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1010.25 "y": 1119.25
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1038.300048828125 "y": 1147.300048828125
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1073.5999755859375 "y": 1182.5999755859375
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1098.5 "y": 1207.5
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1123.4000244140625 "y": 1232.4000244140625
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1152.0999755859375 "y": 1261.0999755859375
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1170.25 "y": 1279.25
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1188.4000244140625 "y": 1297.4000244140625
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1212.5999755859375 "y": 1321.5999755859375
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1230.75 "y": 1339.75
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1248.9000244140625 "y": 1357.9000244140625
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1283.800048828125 "y": 1392.800048828125
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1318 "y": 1427
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1352.199951171875 "y": 1461.199951171875
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1397.800048828125 "y": 1506.800048828125
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1432 "y": 1541
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1466.199951171875 "y": 1575.199951171875
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1499 "y": 1608
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1514 "y": 1623
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1529 "y": 1638
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1555.5999755859375 "y": 1664.5999755859375
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1580.5 "y": 1689.5
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1605.4000244140625 "y": 1714.4000244140625
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1640.699951171875 "y": 1749.699951171875
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1668.75 "y": 1777.75
}, },
{ {
"x": 74.75, "x": 74.75,
"y": 1696.800048828125 "y": 1805.800048828125
}, },
{ {
"x": 77.5999984741211, "x": 77.5999984741211,
"y": 1796.5999755859375 "y": 1905.5999755859375
}, },
{ {
"x": 89, "x": 89,
"y": 1879 "y": 1988
} }
], ],
"isCurve": true, "isCurve": true,
@ -1299,20 +1299,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 490.5, "x": 490,
"y": 1634.699951171875 "y": 1743.7149658203125
}, },
{ {
"x": 195.3000030517578, "x": 195.1999969482422,
"y": 1699.3399658203125 "y": 1808.343017578125
}, },
{ {
"x": 118.19999694824219, "x": 118.19999694824219,
"y": 1796.5999755859375 "y": 1905.5999755859375
}, },
{ {
"x": 105, "x": 105,
"y": 1879 "y": 1988
} }
], ],
"isCurve": true, "isCurve": true,
@ -1346,20 +1346,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 548.5, "x": 548,
"y": 1655 "y": 1764
}, },
{ {
"x": 548.5, "x": 548,
"y": 1703.4000244140625 "y": 1812.4000244140625
}, },
{ {
"x": 548.5999755859375, "x": 548,
"y": 1786 "y": 1895
}, },
{ {
"x": 549, "x": 548,
"y": 1826 "y": 1935
} }
], ],
"isCurve": true, "isCurve": true,
@ -1393,20 +1393,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 276, "x": 275.5,
"y": 1509.5 "y": 1618.5
}, },
{ {
"x": 276, "x": 275.5,
"y": 1533.0999755859375 "y": 1642.0999755859375
}, },
{ {
"x": 318.8999938964844, "x": 318.5,
"y": 1552.0660400390625 "y": 1661
}, },
{ {
"x": 490.5, "x": 490.5,
"y": 1604.3330078125 "y": 1713
} }
], ],
"isCurve": true, "isCurve": true,
@ -1440,31 +1440,31 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 924.5, "x": 925,
"y": 198.5 "y": 198.5
}, },
{ {
"x": 924.5, "x": 925,
"y": 308.8999938964844 "y": 308.8999938964844
}, },
{ {
"x": 924.5, "x": 925,
"y": 348.6000061035156 "y": 348.6000061035156
}, },
{ {
"x": 924.5, "x": 925,
"y": 366.75 "y": 366.75
}, },
{ {
"x": 924.5, "x": 925,
"y": 384.8999938964844 "y": 384.8999938964844
}, },
{ {
"x": 924.5, "x": 925,
"y": 457 "y": 457
}, },
{ {
"x": 924.5, "x": 925,
"y": 497 "y": 497
} }
], ],
@ -1499,20 +1499,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 924.5, "x": 925,
"y": 903 "y": 1012
}, },
{ {
"x": 924.5, "x": 925,
"y": 951.4000244140625 "y": 1060.4000244140625
}, },
{ {
"x": 924.5, "x": 925,
"y": 977.0999755859375 "y": 1086.0999755859375
}, },
{ {
"x": 924.5, "x": 925,
"y": 1031.5 "y": 1140.5
} }
], ],
"isCurve": true, "isCurve": true,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 109 KiB

View file

@ -8,7 +8,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 12, "x": 12,
"y": 859 "y": 968
}, },
"width": 546, "width": 546,
"height": 922, "height": 922,
@ -49,7 +49,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 62, "x": 62,
"y": 909 "y": 1018
}, },
"width": 246, "width": 246,
"height": 423, "height": 423,
@ -90,7 +90,7 @@
"type": "stored_data", "type": "stored_data",
"pos": { "pos": {
"x": 115, "x": 115,
"y": 969 "y": 1078
}, },
"width": 130, "width": 130,
"height": 66, "height": 66,
@ -131,7 +131,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 112, "x": 112,
"y": 1216 "y": 1325
}, },
"width": 146, "width": 146,
"height": 66, "height": 66,
@ -172,7 +172,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 328, "x": 328,
"y": 914 "y": 1023
}, },
"width": 180, "width": 180,
"height": 169, "height": 169,
@ -213,7 +213,7 @@
"type": "hexagon", "type": "hexagon",
"pos": { "pos": {
"x": 378, "x": 378,
"y": 964 "y": 1073
}, },
"width": 80, "width": 80,
"height": 69, "height": 69,
@ -254,7 +254,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 80, "x": 80,
"y": 1503 "y": 1612
}, },
"width": 209, "width": 209,
"height": 228, "height": 228,
@ -295,7 +295,7 @@
"type": "cylinder", "type": "cylinder",
"pos": { "pos": {
"x": 130, "x": 130,
"y": 1563 "y": 1672
}, },
"width": 99, "width": 99,
"height": 118, "height": 118,
@ -377,7 +377,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 387, "x": 387,
"y": 1936 "y": 2045
}, },
"width": 116, "width": 116,
"height": 66, "height": 66,
@ -418,7 +418,7 @@
"type": "page", "type": "page",
"pos": { "pos": {
"x": 403, "x": 403,
"y": 2173 "y": 2282
}, },
"width": 73, "width": 73,
"height": 87, "height": 87,
@ -746,11 +746,11 @@
"id": "code", "id": "code",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 493, "x": 492,
"y": 368 "y": 368
}, },
"width": 868, "width": 870,
"height": 406, "height": 515,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -777,8 +777,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 863, "labelWidth": 854,
"labelHeight": 401, "labelHeight": 499,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -787,7 +787,7 @@
"type": "text", "type": "text",
"pos": { "pos": {
"x": 725, "x": 725,
"y": 859 "y": 968
}, },
"width": 404, "width": 404,
"height": 52, "height": 52,
@ -850,11 +850,11 @@
"route": [ "route": [
{ {
"x": 141, "x": 141,
"y": 1035 "y": 1144
}, },
{ {
"x": 141, "x": 141,
"y": 1216 "y": 1325
} }
], ],
"animated": false, "animated": false,
@ -888,11 +888,11 @@
"route": [ "route": [
{ {
"x": 185, "x": 185,
"y": 1035 "y": 1144
}, },
{ {
"x": 185, "x": 185,
"y": 1216 "y": 1325
} }
], ],
"animated": false, "animated": false,
@ -926,11 +926,11 @@
"route": [ "route": [
{ {
"x": 229, "x": 229,
"y": 1035 "y": 1144
}, },
{ {
"x": 229, "x": 229,
"y": 1216 "y": 1325
} }
], ],
"animated": false, "animated": false,
@ -964,11 +964,11 @@
"route": [ "route": [
{ {
"x": 185, "x": 185,
"y": 1282 "y": 1391
}, },
{ {
"x": 185, "x": 185,
"y": 1553 "y": 1662
} }
], ],
"animated": false, "animated": false,
@ -1014,7 +1014,7 @@
}, },
{ {
"x": 190.75, "x": 190.75,
"y": 909 "y": 1018
} }
], ],
"animated": false, "animated": false,
@ -1052,15 +1052,15 @@
}, },
{ {
"x": 280, "x": 280,
"y": 814 "y": 923
}, },
{ {
"x": 404.6659851074219, "x": 404.6659851074219,
"y": 814 "y": 923
}, },
{ {
"x": 405, "x": 405,
"y": 964 "y": 1073
} }
], ],
"animated": false, "animated": false,
@ -1094,27 +1094,27 @@
"route": [ "route": [
{ {
"x": 464.3330078125, "x": 464.3330078125,
"y": 1936 "y": 2045
}, },
{ {
"x": 464.3330078125, "x": 464.3330078125,
"y": 1896 "y": 2005
}, },
{ {
"x": 680.75, "x": 680.75,
"y": 1896 "y": 2005
}, },
{ {
"x": 680.75, "x": 680.75,
"y": 814 "y": 923
}, },
{ {
"x": 431.3330078125, "x": 431.3330078125,
"y": 814 "y": 923
}, },
{ {
"x": 431, "x": 431,
"y": 964 "y": 1073
} }
], ],
"animated": false, "animated": false,
@ -1148,11 +1148,11 @@
"route": [ "route": [
{ {
"x": 445, "x": 445,
"y": 2002 "y": 2111
}, },
{ {
"x": 445, "x": 445,
"y": 2163 "y": 2272
} }
], ],
"animated": false, "animated": false,
@ -1186,19 +1186,19 @@
"route": [ "route": [
{ {
"x": 130.5, "x": 130.5,
"y": 1731 "y": 1840
}, },
{ {
"x": 130.5, "x": 130.5,
"y": 1896 "y": 2005
}, },
{ {
"x": 425.6659851074219, "x": 425.6659851074219,
"y": 1896 "y": 2005
}, },
{ {
"x": 425.6659851074219, "x": 425.6659851074219,
"y": 1936 "y": 2045
} }
], ],
"animated": false, "animated": false,
@ -1270,11 +1270,11 @@
"route": [ "route": [
{ {
"x": 927.75, "x": 927.75,
"y": 774 "y": 883
}, },
{ {
"x": 927.75, "x": 927.75,
"y": 859 "y": 968
} }
], ],
"animated": false, "animated": false,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View file

@ -10,8 +10,8 @@
"x": 0, "x": 0,
"y": 438 "y": 438
}, },
"width": 501, "width": 500,
"height": 1585, "height": 1694,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -53,7 +53,7 @@
"y": 503 "y": 503
}, },
"width": 384, "width": 384,
"height": 657, "height": 766,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -92,7 +92,7 @@
"type": "stored_data", "type": "stored_data",
"pos": { "pos": {
"x": 138, "x": 138,
"y": 710 "y": 765
}, },
"width": 161, "width": 161,
"height": 66, "height": 66,
@ -132,8 +132,8 @@
"id": "network.cell tower.transmitter", "id": "network.cell tower.transmitter",
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 244, "x": 243,
"y": 1062 "y": 1171
}, },
"width": 151, "width": 151,
"height": 66, "height": 66,
@ -174,7 +174,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 20, "x": 20,
"y": 1832 "y": 1941
}, },
"width": 157, "width": 157,
"height": 161, "height": 161,
@ -216,7 +216,7 @@
"type": "hexagon", "type": "hexagon",
"pos": { "pos": {
"x": 71, "x": 71,
"y": 1878 "y": 1987
}, },
"width": 65, "width": 65,
"height": 69, "height": 69,
@ -257,7 +257,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 218, "x": 218,
"y": 1317 "y": 1426
}, },
"width": 202, "width": 202,
"height": 192, "height": 192,
@ -299,7 +299,7 @@
"type": "cylinder", "type": "cylinder",
"pos": { "pos": {
"x": 258, "x": 258,
"y": 1359 "y": 1468
}, },
"width": 112, "width": 112,
"height": 118, "height": 118,
@ -381,7 +381,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 540, "x": 540,
"y": 1589 "y": 1698
}, },
"width": 142, "width": 142,
"height": 66, "height": 66,
@ -422,7 +422,7 @@
"type": "page", "type": "page",
"pos": { "pos": {
"x": 565, "x": 565,
"y": 1836 "y": 1945
}, },
"width": 82, "width": 82,
"height": 87, "height": 87,
@ -462,7 +462,7 @@
"id": "users", "id": "users",
"type": "sql_table", "type": "sql_table",
"pos": { "pos": {
"x": 286, "x": 287,
"y": 30 "y": 30
}, },
"width": 262, "width": 262,
@ -646,7 +646,7 @@
"id": "products", "id": "products",
"type": "class", "type": "class",
"pos": { "pos": {
"x": 608, "x": 609,
"y": 0 "y": 0
}, },
"width": 242, "width": 242,
@ -710,7 +710,7 @@
"id": "markdown", "id": "markdown",
"type": "text", "type": "text",
"pos": { "pos": {
"x": 910, "x": 911,
"y": 79 "y": 79
}, },
"width": 128, "width": 128,
@ -753,8 +753,8 @@
"x": 540, "x": 540,
"y": 497 "y": 497
}, },
"width": 868, "width": 870,
"height": 406, "height": 515,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -781,8 +781,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 863, "labelWidth": 854,
"labelHeight": 401, "labelHeight": 499,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -790,8 +790,8 @@
"id": "ex", "id": "ex",
"type": "text", "type": "text",
"pos": { "pos": {
"x": 772, "x": 773,
"y": 1031 "y": 1140
}, },
"width": 404, "width": 404,
"height": 52, "height": 52,
@ -852,20 +852,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 217, "x": 218,
"y": 777 "y": 832
}, },
{ {
"x": 186.39999389648438, "x": 186.60000610351562,
"y": 957 "y": 1055.199951171875
}, },
{ {
"x": 196.9499969482422, "x": 196.75,
"y": 1014.2000122070312 "y": 1123.199951171875
}, },
{ {
"x": 269.75, "x": 268.75,
"y": 1063 "y": 1172
} }
], ],
"isCurve": true, "isCurve": true,
@ -898,20 +898,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 228, "x": 227,
"y": 777 "y": 832
}, },
{ {
"x": 251.39999389648438, "x": 251.1999969482422,
"y": 957 "y": 1055.199951171875
}, },
{ {
"x": 265.25, "x": 265.25,
"y": 1014.2000122070312 "y": 1123.199951171875
}, },
{ {
"x": 297.25, "x": 297.25,
"y": 1063 "y": 1172
} }
], ],
"isCurve": true, "isCurve": true,
@ -944,20 +944,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 249, "x": 244,
"y": 777 "y": 832
}, },
{ {
"x": 368.20001220703125, "x": 366.79998779296875,
"y": 957 "y": 1055.199951171875
}, },
{ {
"x": 387.79998779296875, "x": 387.29998779296875,
"y": 1014.2000122070312 "y": 1123.199951171875
}, },
{ {
"x": 347, "x": 346.5,
"y": 1063 "y": 1172
} }
], ],
"isCurve": true, "isCurve": true,
@ -990,32 +990,32 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 319, "x": 318.5,
"y": 1128.5 "y": 1237.5
},
{
"x": 318.5,
"y": 1263.0999755859375
},
{
"x": 318.5,
"y": 1281.5999755859375
},
{
"x": 318.5,
"y": 1299.75
},
{
"x": 318.5,
"y": 1317.9000244140625
},
{
"x": 318.6000061035156,
"y": 1404.199951171875
}, },
{ {
"x": 319, "x": 319,
"y": 1154.0999755859375 "y": 1459
},
{
"x": 319,
"y": 1172.5999755859375
},
{
"x": 319,
"y": 1190.75
},
{
"x": 319,
"y": 1208.9000244140625
},
{
"x": 319,
"y": 1295.199951171875
},
{
"x": 319,
"y": 1350
} }
], ],
"isCurve": true, "isCurve": true,
@ -1127,143 +1127,143 @@
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 497.6000061035156 "y": 508.5
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 573.5 "y": 600.75
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 649.4000244140625 "y": 693
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 752.7000122070312 "y": 818.0999755859375
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 831.75 "y": 913.5
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 910.7999877929688 "y": 1008.9000244140625
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 982.2000122070312 "y": 1091.199951171875
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1010.25 "y": 1119.25
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1038.300048828125 "y": 1147.300048828125
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1073.5999755859375 "y": 1182.5999755859375
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1098.5 "y": 1207.5
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1123.4000244140625 "y": 1232.4000244140625
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1152.0999755859375 "y": 1261.0999755859375
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1170.25 "y": 1279.25
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1188.4000244140625 "y": 1297.4000244140625
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1212.5999755859375 "y": 1321.5999755859375
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1230.75 "y": 1339.75
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1248.9000244140625 "y": 1357.9000244140625
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1283.800048828125 "y": 1392.800048828125
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1318 "y": 1427
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1352.199951171875 "y": 1461.199951171875
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1397.800048828125 "y": 1506.800048828125
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1432 "y": 1541
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1466.199951171875 "y": 1575.199951171875
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1499 "y": 1608
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1514 "y": 1623
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1529 "y": 1638
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1555.5999755859375 "y": 1664.5999755859375
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1580.5 "y": 1689.5
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1605.4000244140625 "y": 1714.4000244140625
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1640.699951171875 "y": 1749.699951171875
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1668.75 "y": 1777.75
}, },
{ {
"x": 76.25, "x": 76.25,
"y": 1696.800048828125 "y": 1805.800048828125
}, },
{ {
"x": 79.80000305175781, "x": 79.80000305175781,
"y": 1796.5999755859375 "y": 1905.5999755859375
}, },
{ {
"x": 94, "x": 94,
"y": 1879 "y": 1988
} }
], ],
"isCurve": true, "isCurve": true,
@ -1296,20 +1296,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 540.25, "x": 539.75,
"y": 1635.81494140625 "y": 1744.8299560546875
}, },
{ {
"x": 212.6490020751953, "x": 212.5489959716797,
"y": 1699.56298828125 "y": 1808.5660400390625
}, },
{ {
"x": 127.19999694824219, "x": 127.19999694824219,
"y": 1796.5999755859375 "y": 1905.5999755859375
}, },
{ {
"x": 113, "x": 113,
"y": 1879 "y": 1988
} }
], ],
"isCurve": true, "isCurve": true,
@ -1342,20 +1342,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 611.25, "x": 610.75,
"y": 1655 "y": 1764
}, },
{ {
"x": 611.25, "x": 610.75,
"y": 1703.4000244140625 "y": 1812.4000244140625
}, },
{ {
"x": 611.2000122070312, "x": 610.7999877929688,
"y": 1786 "y": 1895
}, },
{ {
"x": 611, "x": 611,
"y": 1826 "y": 1935
} }
], ],
"isCurve": true, "isCurve": true,
@ -1388,20 +1388,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 319, "x": 318.5,
"y": 1509.5 "y": 1618.5
}, },
{ {
"x": 319, "x": 318.5,
"y": 1533.0999755859375 "y": 1642.0999755859375
}, },
{ {
"x": 363.20001220703125, "x": 362.75,
"y": 1551.5999755859375 "y": 1660.5670166015625
}, },
{ {
"x": 540, "x": 539.75,
"y": 1602 "y": 1710.8349609375
} }
], ],
"isCurve": true, "isCurve": true,
@ -1434,31 +1434,31 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 974.25, "x": 974.75,
"y": 198.5 "y": 198.5
}, },
{ {
"x": 974.25, "x": 974.75,
"y": 308.8999938964844 "y": 308.8999938964844
}, },
{ {
"x": 974.25, "x": 974.75,
"y": 348.6000061035156 "y": 348.6000061035156
}, },
{ {
"x": 974.25, "x": 974.75,
"y": 366.75 "y": 366.75
}, },
{ {
"x": 974.25, "x": 974.75,
"y": 384.8999938964844 "y": 384.8999938964844
}, },
{ {
"x": 974.25, "x": 974.75,
"y": 457 "y": 457
}, },
{ {
"x": 974.25, "x": 974.75,
"y": 497 "y": 497
} }
], ],
@ -1492,20 +1492,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 974.25, "x": 974.75,
"y": 903 "y": 1012
}, },
{ {
"x": 974.25, "x": 974.75,
"y": 951.4000244140625 "y": 1060.4000244140625
}, },
{ {
"x": 974.25, "x": 974.75,
"y": 977.0999755859375 "y": 1086.0999755859375
}, },
{ {
"x": 974.25, "x": 974.75,
"y": 1031.5 "y": 1140.5
} }
], ],
"isCurve": true, "isCurve": true,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 111 KiB

View file

@ -8,7 +8,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 12, "x": 12,
"y": 859 "y": 968
}, },
"width": 621, "width": 621,
"height": 922, "height": 922,
@ -50,7 +50,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 62, "x": 62,
"y": 909 "y": 1018
}, },
"width": 271, "width": 271,
"height": 423, "height": 423,
@ -92,7 +92,7 @@
"type": "stored_data", "type": "stored_data",
"pos": { "pos": {
"x": 112, "x": 112,
"y": 969 "y": 1078
}, },
"width": 161, "width": 161,
"height": 66, "height": 66,
@ -133,7 +133,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 122, "x": 122,
"y": 1216 "y": 1325
}, },
"width": 151, "width": 151,
"height": 66, "height": 66,
@ -174,7 +174,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 353, "x": 353,
"y": 914 "y": 1023
}, },
"width": 230, "width": 230,
"height": 169, "height": 169,
@ -216,7 +216,7 @@
"type": "hexagon", "type": "hexagon",
"pos": { "pos": {
"x": 428, "x": 428,
"y": 964 "y": 1073
}, },
"width": 80, "width": 80,
"height": 69, "height": 69,
@ -257,7 +257,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 75, "x": 75,
"y": 1503 "y": 1612
}, },
"width": 245, "width": 245,
"height": 228, "height": 228,
@ -299,7 +299,7 @@
"type": "cylinder", "type": "cylinder",
"pos": { "pos": {
"x": 136, "x": 136,
"y": 1563 "y": 1672
}, },
"width": 112, "width": 112,
"height": 118, "height": 118,
@ -381,7 +381,7 @@
"type": "rectangle", "type": "rectangle",
"pos": { "pos": {
"x": 431, "x": 431,
"y": 1936 "y": 2045
}, },
"width": 142, "width": 142,
"height": 66, "height": 66,
@ -422,7 +422,7 @@
"type": "page", "type": "page",
"pos": { "pos": {
"x": 456, "x": 456,
"y": 2173 "y": 2282
}, },
"width": 82, "width": 82,
"height": 87, "height": 87,
@ -750,11 +750,11 @@
"id": "code", "id": "code",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 601, "x": 600,
"y": 368 "y": 368
}, },
"width": 868, "width": 870,
"height": 406, "height": 515,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -781,8 +781,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 863, "labelWidth": 854,
"labelHeight": 401, "labelHeight": 499,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -791,7 +791,7 @@
"type": "text", "type": "text",
"pos": { "pos": {
"x": 833, "x": 833,
"y": 859 "y": 968
}, },
"width": 404, "width": 404,
"height": 52, "height": 52,
@ -853,11 +853,11 @@
"route": [ "route": [
{ {
"x": 148, "x": 148,
"y": 1035 "y": 1144
}, },
{ {
"x": 148.25, "x": 148.25,
"y": 1216 "y": 1325
} }
], ],
"animated": false, "animated": false,
@ -890,11 +890,11 @@
"route": [ "route": [
{ {
"x": 198, "x": 198,
"y": 1035 "y": 1144
}, },
{ {
"x": 197.75, "x": 197.75,
"y": 1216 "y": 1325
} }
], ],
"animated": false, "animated": false,
@ -927,11 +927,11 @@
"route": [ "route": [
{ {
"x": 247, "x": 247,
"y": 1035 "y": 1144
}, },
{ {
"x": 246.75, "x": 246.75,
"y": 1216 "y": 1325
} }
], ],
"animated": false, "animated": false,
@ -964,11 +964,11 @@
"route": [ "route": [
{ {
"x": 197.75, "x": 197.75,
"y": 1282 "y": 1391
}, },
{ {
"x": 198, "x": 198,
"y": 1553 "y": 1662
} }
], ],
"animated": false, "animated": false,
@ -1013,7 +1013,7 @@
}, },
{ {
"x": 202.5, "x": 202.5,
"y": 909 "y": 1018
} }
], ],
"animated": false, "animated": false,
@ -1050,15 +1050,15 @@
}, },
{ {
"x": 305, "x": 305,
"y": 814 "y": 923
}, },
{ {
"x": 454.6659851074219, "x": 454.6659851074219,
"y": 814 "y": 923
}, },
{ {
"x": 455, "x": 455,
"y": 964 "y": 1073
} }
], ],
"animated": false, "animated": false,
@ -1091,27 +1091,27 @@
"route": [ "route": [
{ {
"x": 526.291015625, "x": 526.291015625,
"y": 1936 "y": 2045
}, },
{ {
"x": 526.291015625, "x": 526.291015625,
"y": 1896 "y": 2005
}, },
{ {
"x": 778, "x": 778,
"y": 1896 "y": 2005
}, },
{ {
"x": 778, "x": 778,
"y": 814 "y": 923
}, },
{ {
"x": 481.3330078125, "x": 481.3330078125,
"y": 814 "y": 923
}, },
{ {
"x": 481, "x": 481,
"y": 964 "y": 1073
} }
], ],
"animated": false, "animated": false,
@ -1144,11 +1144,11 @@
"route": [ "route": [
{ {
"x": 502.625, "x": 502.625,
"y": 2002 "y": 2111
}, },
{ {
"x": 503, "x": 503,
"y": 2163 "y": 2272
} }
], ],
"animated": false, "animated": false,
@ -1181,19 +1181,19 @@
"route": [ "route": [
{ {
"x": 136.75, "x": 136.75,
"y": 1731 "y": 1840
}, },
{ {
"x": 136.75, "x": 136.75,
"y": 1896 "y": 2005
}, },
{ {
"x": 478.9580078125, "x": 478.9580078125,
"y": 1896 "y": 2005
}, },
{ {
"x": 478.9580078125, "x": 478.9580078125,
"y": 1936 "y": 2045
} }
], ],
"animated": false, "animated": false,
@ -1263,11 +1263,11 @@
"route": [ "route": [
{ {
"x": 1035.5, "x": 1035.5,
"y": 774 "y": 883
}, },
{ {
"x": 1035.5, "x": 1035.5,
"y": 859 "y": 968
} }
], ],
"animated": false, "animated": false,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 110 KiB

View file

@ -829,8 +829,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -838,11 +838,11 @@
"id": "small code", "id": "small code",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 1793, "x": 1789,
"y": 2236 "y": 2229
}, },
"width": 191, "width": 199,
"height": 65, "height": 78,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -869,8 +869,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
} }
@ -1169,11 +1169,11 @@
}, },
{ {
"x": 1888, "x": 1888,
"y": 2061.5 "y": 2060.198974609375
}, },
{ {
"x": 1888, "x": 1888,
"y": 2235.5 "y": 2229
} }
], ],
"isCurve": true, "isCurve": true,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 69 KiB

View file

@ -829,8 +829,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
}, },
@ -838,11 +838,11 @@
"id": "small code", "id": "small code",
"type": "code", "type": "code",
"pos": { "pos": {
"x": 2200, "x": 2196,
"y": 1972 "y": 1972
}, },
"width": 191, "width": 199,
"height": 65, "height": 78,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
"strokeWidth": 2, "strokeWidth": 2,
@ -869,8 +869,8 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 191, "labelWidth": 183,
"labelHeight": 65, "labelHeight": 62,
"zIndex": 0, "zIndex": 0,
"level": 1 "level": 1
} }

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 69 KiB

View file

@ -18,6 +18,7 @@ import (
const TAB_SIZE = 4 const TAB_SIZE = 4
const SIZELESS_FONT_SIZE = 0 const SIZELESS_FONT_SIZE = 0
const CODE_LINE_HEIGHT = 1.3
// ASCII is a set of all ASCII runes. These runes are codepoints from 32 to 127 inclusive. // ASCII is a set of all ASCII runes. These runes are codepoints from 32 to 127 inclusive.
var ASCII []rune var ASCII []rune
@ -214,6 +215,14 @@ func (t *Ruler) scaleUnicode(w float64, font d2fonts.Font, s string) float64 {
return w return w
} }
func (t *Ruler) MeasureMono(font d2fonts.Font, s string) (width, height int) {
originalBoundsWithDot := t.boundsWithDot
t.boundsWithDot = true
width, height = t.Measure(font, s)
t.boundsWithDot = originalBoundsWithDot
return width, height
}
func (t *Ruler) Measure(font d2fonts.Font, s string) (width, height int) { func (t *Ruler) Measure(font d2fonts.Font, s string) (width, height int) {
w, h := t.MeasurePrecise(font, s) w, h := t.MeasurePrecise(font, s)
w = t.scaleUnicode(w, font, s) w = t.scaleUnicode(w, font, s)