drawio_dsl 0.8.3 → 0.8.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/.data/shapes.json +27 -0
  3. data/.builders/.templates/basic/drawio_extensions.rb +2 -1
  4. data/.builders/.templates/basic/drawio_shapes.rb +1 -1
  5. data/.builders/blueprint/shapes.rb +3 -0
  6. data/.builders/generators/20-drawio-extensions.rb +1 -1
  7. data/.builders/generators/domain_diagram.rb +473 -0
  8. data/.builders/generators/parking-map.png +0 -0
  9. data/.builders/generators/parking_app.rb +110 -0
  10. data/.builders/generators/printspeak-architecture-generator.rb +45 -0
  11. data/.builders/generators/project-plan.rb +6 -5
  12. data/.builders/generators/sample_diagrams/20-styles.rb +2 -2
  13. data/.builders/generators/sample_diagrams/35-ids-and-arrows.rb +0 -2
  14. data/CHANGELOG.md +22 -0
  15. data/README.md +5 -3
  16. data/docs/domain-modal/domain_model.drawio +265 -0
  17. data/docs/domain-modal/domain_model.svg +3 -0
  18. data/docs/domain-modal/domain_model_custom.drawio +408 -0
  19. data/docs/domain-modal/domain_model_custom.svg +1 -0
  20. data/docs/domain-modal.md +9 -0
  21. data/docs/parking_app.drawio +25 -0
  22. data/docs/parking_app.svg +3 -0
  23. data/docs/printspeak-architecture-generator.drawio +31 -0
  24. data/docs/printspeak-architecture-generator.svg +3 -0
  25. data/docs/project-plan/project.drawio +60 -54
  26. data/docs/project-plan/project_done.svg +1 -1
  27. data/docs/project-plan/project_in_progress.svg +1 -1
  28. data/docs/project-plan/project_todo.svg +1 -1
  29. data/docs/samples/styles-glass.svg +1 -1
  30. data/docs/samples/styles-plain.svg +1 -1
  31. data/docs/samples/styles-rounded.svg +1 -1
  32. data/docs/samples/styles-shadow.svg +1 -1
  33. data/docs/samples/styles-sketch.svg +1 -1
  34. data/lib/drawio_dsl/configuration_shapes.rb +8 -2
  35. data/lib/drawio_dsl/dom_builder.rb +1 -1
  36. data/lib/drawio_dsl/dom_builder_shapes.rb +24 -6
  37. data/lib/drawio_dsl/drawio.rb +0 -19
  38. data/lib/drawio_dsl/drawio_extensions.rb +3 -2
  39. data/lib/drawio_dsl/drawio_extensions_active.rb +1 -1
  40. data/lib/drawio_dsl/drawio_page.rb +22 -0
  41. data/lib/drawio_dsl/drawio_shapes.rb +64 -46
  42. data/lib/drawio_dsl/formatters/base_formatter.rb +1 -1
  43. data/lib/drawio_dsl/formatters/html_builder.rb +1 -1
  44. data/lib/drawio_dsl/formatters/interface_formatter.rb +1 -1
  45. data/lib/drawio_dsl/formatters/klass_formatter.rb +1 -1
  46. data/lib/drawio_dsl/formatters/style_builder.rb +1 -1
  47. data/lib/drawio_dsl/schema/_.rb +4 -1
  48. data/lib/drawio_dsl/schema/shapes/database.rb +9 -0
  49. data/lib/drawio_dsl/schema/shapes/db_json.rb +9 -0
  50. data/lib/drawio_dsl/schema/shapes/group.rb +9 -0
  51. data/lib/drawio_dsl/schema/shapes/shape.rb +2 -2
  52. data/lib/drawio_dsl/version.rb +1 -1
  53. data/lib/drawio_dsl/xml_builder.rb +1 -1
  54. data/lib/drawio_dsl.rb +1 -0
  55. data/package-lock.json +2 -2
  56. data/package.json +1 -1
  57. metadata +19 -2
@@ -0,0 +1,45 @@
1
+ KManager.action :printspeak_architecture_generator do
2
+ action do
3
+
4
+ DrawioDsl::Drawio
5
+ .init(k_builder, on_exist: :write, on_action: :execute)
6
+ .diagram(theme: :style_04)
7
+ .page('Style-Plain', margin_left: 0, margin_top: 0, rounded: 0, background: '#fafafa') do
8
+ grid_layout(wrap_at: 6)
9
+
10
+ square(title: 'Data Documents', theme: :style_01)
11
+
12
+ klass do
13
+ format
14
+ .header('Container', description: '')
15
+ end
16
+
17
+ db_json(title: 'db_schema.json', description: 'A model of the database schema based on schema.rb')
18
+ db_json(title: 'domain_model.json', description: 'A model of domain based db_schema.json and annotated with model and controller code')
19
+ db_json(title: 'sql_count.json', description: 'Latest SQL counts from production, normalized into a JSON file across regions')
20
+ db_json(title: 'rubocop.json', description: 'Takes a rubo_cop.txt file parse it so that you can see what issues are in the ruby application')
21
+ db_json(title: 'data_context.json', description: 'A model of the data context based on domain_model.json and data_context.json')
22
+ db_json(title: 'routes.json', description: 'Run rails routes and build up a model of what we use')
23
+
24
+ interface(theme: :style_02) do
25
+ format
26
+ .header('Block Processor', interface_type: 'Subsystems', description: '')
27
+ .field(:block, type: :proc)
28
+ .field(:block_state, type: :symbol)
29
+ .method(:depend_on)
30
+ end
31
+ end
32
+ .cd(:docs)
33
+ .save('printspeak-architecture-generator.drawio')
34
+ .export_svg('printspeak-architecture-generator', page: 1)
35
+ end
36
+ end
37
+
38
+ KManager.opts.app_name = 'domain_diagram'
39
+ KManager.opts.sleep = 2
40
+ KManager.opts.reboot_on_kill = 0
41
+ KManager.opts.reboot_sleep = 4
42
+ KManager.opts.exception_style = :short
43
+ KManager.opts.show.time_taken = true
44
+ KManager.opts.show.finished = true
45
+ KManager.opts.show.finished_message = 'FINISHED :)'
@@ -9,13 +9,14 @@ KManager.action :project_plan do
9
9
  # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
10
10
  # p(x: 350, y: 40, w: 400, h: 80, title: 'Project plan - In progress')
11
11
 
12
- grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
12
+ grid_layout(y: 90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
13
13
 
14
- todo(title: 'build a class diagram')
14
+ todo(title: 'class html builder to support include/extend modules, class methods and regular html nodes such as p, h1.. ul, li')
15
15
  todo(title: 'add new shapes related to line connectors')
16
16
  todo(title: 'line connector aliases gives a simple way to use predefined line configurations')
17
17
  todo(title: 'line connectors need to support autolinking using ids')
18
18
  todo(title: 'line connectors should not effect the grid positioning systems')
19
+ todo(title: 'export diagram json for use with a different DSL builder')
19
20
  end
20
21
  .page('To Do', theme: :style_02, margin_left: 0, margin_top: 0) do
21
22
 
@@ -27,10 +28,9 @@ KManager.action :project_plan do
27
28
  todo(title: 'add page background to theme, use it whenever the theme is set at a diagram/page level')
28
29
  todo(title: 'move DrawioDsl::Formatters::Factory::FORMATTERS to resource file')
29
30
  todo(title: 'move DrawioDsl::Formatters::StyleBuilder::MAPPINGS to resource file')
30
- todo(title: 'need to setup new project plans')
31
31
  todo(title: 'settings style attributes need to de-duplicate, might be best to utilize the new StyleBuilder class')
32
32
  todo(title: 'write SVG directly into other projects')
33
- todo(title: 'add :shape, :line and :text to random shape generator')
33
+ todo(title: 'add :shape, :line and :text to random shape generator, note: you can see the issue in the samples/20-styled-shapes.rb where the text is not rendered')
34
34
  todo(title: 'Nodes need to support child nodes')
35
35
  todo(title: 'Grid layout does not position itself in relation to the last element')
36
36
  todo(title: 'Dynamic sized shapes that expand to the size of their text')
@@ -46,6 +46,8 @@ KManager.action :project_plan do
46
46
 
47
47
  grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
48
48
 
49
+ todo(title: 'group box, like a regular box but with a top aligned h1 style title')
50
+ todo(title: 'build a domain (class) diagram')
49
51
  todo(title: 'build configuration for line strokes %i[dashed dotted dashdot dashdotdot dotdotdot longdash)')
50
52
  todo(title: 'build configuration for line compass %i[n ne e se s sw w nw]')
51
53
  todo(title: 'build configuration for line shape %i[style1 style2 style3 style4]')
@@ -69,7 +71,6 @@ KManager.action :project_plan do
69
71
  todo(title: 'add export as .PNG, needs to take a page number as the PNG will not support multiple pages')
70
72
  todo(title: 'add export as .SVG, needs to take a page number as the SVG will not support multiple pages')
71
73
  todo(title: 'add save as .drawio')
72
-
73
74
  end
74
75
  .cd(:docs)
75
76
  .save('project-plan/project.drawio')
@@ -1,4 +1,4 @@
1
- KManager.action :bootstrap do
1
+ KManager.action :styled_shapes do
2
2
  action do
3
3
 
4
4
  DrawioDsl::Drawio
@@ -50,7 +50,7 @@ KManager.action :bootstrap do
50
50
  end
51
51
  end
52
52
  .cd(:spec)
53
- .save('.samples/20-styles.drawio')
53
+ .osave('.samples/20-styled-shapes.drawio')
54
54
  .cd(:docs)
55
55
  .export_svg('samples/styles-plain', page: 1)
56
56
  .export_svg('samples/styles-shadow', page: 2)
@@ -24,7 +24,5 @@ KManager.action :bootstrap do
24
24
  end
25
25
  .cd(:spec)
26
26
  .save('.samples/35-ids-and-arrows.drawio')
27
- # .cd(:docs)
28
- # .export_svg('samples/styles-plain', page: 1)
29
27
  end
30
28
  end
data/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## [0.8.5](https://github.com/klueless-io/drawio_dsl/compare/v0.8.4...v0.8.5) (2022-03-20)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * build a domain (class) diagram ([673cbba](https://github.com/klueless-io/drawio_dsl/commit/673cbba2e84bac025f43b64f93547d1547dc6d63))
7
+
8
+ ## [0.8.4](https://github.com/klueless-io/drawio_dsl/compare/v0.8.3...v0.8.4) (2022-03-17)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * add database shape ([abd80d8](https://github.com/klueless-io/drawio_dsl/commit/abd80d80e268484e6298c0e7a299cbbba3de4768))
14
+
15
+ ## [0.8.3](https://github.com/klueless-io/drawio_dsl/compare/v0.8.2...v0.8.3) (2022-03-17)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * add line configuration definitions ([a1e0f50](https://github.com/klueless-io/drawio_dsl/commit/a1e0f509f309096013fa0db2d03a61fe78816948))
21
+ * add line configuration definitions ([6864470](https://github.com/klueless-io/drawio_dsl/commit/6864470d00f1ffaa2d7dc572fa0d857f5d40256b))
22
+
1
23
  ## [0.8.2](https://github.com/klueless-io/drawio_dsl/compare/v0.8.1...v0.8.2) (2022-03-17)
2
24
 
3
25
 
data/README.md CHANGED
@@ -40,11 +40,13 @@ See all [samples](./docs/samples/samples.md)
40
40
 
41
41
  ![](docs/samples/samples.svg)
42
42
 
43
- ## Usage
43
+ ## Architecture
44
44
 
45
- See all [usage examples](./USAGE.md)
45
+ ### Domain
46
46
 
47
- ## Development
47
+ Domain modal and class diagram can be found [here](docs/domain-modal.md)
48
+
49
+ ### Development
48
50
 
49
51
  Checkout the repo
50
52
 
@@ -0,0 +1,265 @@
1
+ <mxfile host="7Nw">
2
+ <diagram id="bLn" name="Domain Modal">
3
+ <mxGraphModel dx="0" dy="0" background="#fafafa" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
4
+ <root>
5
+ <mxCell id="page_root_bLn" parent="bLn"/>
6
+ <mxCell id="node_root_bLn" parent="page_root_bLn"/>
7
+ <mxCell id="bLn-2" value="Configuration" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333" vertex="1" parent="node_root_bLn">
8
+ <mxGeometry x="10" y="10" width="160" height="160" as="geometry"/>
9
+ </mxCell>
10
+ <mxCell id="bLn-3" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;ShapeDefaults&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;type: symbol&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;category: symbol&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;x: integer&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;y: integer&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;w: integer&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;h: integer&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;style_modifiers: string&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
11
+ <mxGeometry x="190" y="10" width="160" height="160" as="geometry"/>
12
+ </mxCell>
13
+ <mxCell id="bLn-4" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;ShapeThemeStyle&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;theme: symbol&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;fill_color: string&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;stroke_color: string&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;font_color: string&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
14
+ <mxGeometry x="370" y="10" width="160" height="160" as="geometry"/>
15
+ </mxCell>
16
+ <mxCell id="bLn-5" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;Configuration&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;base_style: Struct&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;shapes: Hash&amp;lt;Struct&amp;gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;themes: Hash&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;+ &amp;lt;ConfigurationThemes&amp;gt;()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;+ &amp;lt;ConfigurationShapes&amp;gt;()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
17
+ <mxGeometry x="550" y="10" width="160" height="160" as="geometry"/>
18
+ </mxCell>
19
+ <mxCell id="bLn-6" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt; MixIn &amp;gt;&amp;gt;&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;ConfigurationExtension&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;drawio: Configuration&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
20
+ <mxGeometry x="730" y="10" width="160" height="160" as="geometry"/>
21
+ </mxCell>
22
+ <mxCell id="bLn-7" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt; MixIn &amp;gt;&amp;gt;&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;ConfigurationShapes&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_shapes()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
23
+ <mxGeometry x="910" y="10" width="160" height="160" as="geometry"/>
24
+ </mxCell>
25
+ <mxCell id="bLn-8" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt; MixIn &amp;gt;&amp;gt;&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;ConfigurationThemes&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_theme()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_themes()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
26
+ <mxGeometry x="10" y="190" width="160" height="160" as="geometry"/>
27
+ </mxCell>
28
+ <mxCell id="bLn-9" value="DOM Builder" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333" vertex="1" parent="node_root_bLn">
29
+ <mxGeometry x="190" y="190" width="160" height="160" as="geometry"/>
30
+ </mxCell>
31
+ <mxCell id="bLn-10" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;DomBuilder&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;actions: Array&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;last_action: Hash&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;focus_node: Anchor&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;current_page: Page&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;dom&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;reset()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;queue_action()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;set_diagram()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;diagram()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_page()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_grid_layout()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_flex_layout()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_layout()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_shape()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;+ &amp;lt;DomBuilderShapes&amp;gt;()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
32
+ <mxGeometry x="370" y="190" width="160" height="160" as="geometry"/>
33
+ </mxCell>
34
+ <mxCell id="bLn-11" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt; MixIn &amp;gt;&amp;gt;&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;DomBuilderShapes&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_* (for each shape)()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
35
+ <mxGeometry x="550" y="190" width="160" height="160" as="geometry"/>
36
+ </mxCell>
37
+ <mxCell id="bLn-12" value="DrawIO DSL" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333" vertex="1" parent="node_root_bLn">
38
+ <mxGeometry x="730" y="190" width="160" height="160" as="geometry"/>
39
+ </mxCell>
40
+ <mxCell id="bLn-13" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;Drawio&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;diagram()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;page()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;save()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;osave()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;export_svg()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;export_png()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
41
+ <mxGeometry x="910" y="190" width="160" height="160" as="geometry"/>
42
+ </mxCell>
43
+ <mxCell id="bLn-14" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;DrawioPage&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;grid_layout()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;flex_layout()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;+ &amp;lt;DrawioShapes&amp;gt;()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
44
+ <mxGeometry x="10" y="370" width="160" height="160" as="geometry"/>
45
+ </mxCell>
46
+ <mxCell id="bLn-15" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt; MixIn &amp;gt;&amp;gt;&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;DrawioShapes&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;random()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;* (for each shape)()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
47
+ <mxGeometry x="190" y="370" width="160" height="160" as="geometry"/>
48
+ </mxCell>
49
+ <mxCell id="bLn-16" value="1000 Extension Shapes" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333" vertex="1" parent="node_root_bLn">
50
+ <mxGeometry x="370" y="370" width="160" height="160" as="geometry"/>
51
+ </mxCell>
52
+ <mxCell id="bLn-17" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;DrawioExtensions&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;sections: Array&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;current_section: Hash&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;section()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;shape()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;build_extensions()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;configure_extensions()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;+ &amp;lt;DrawioExtensionsActive&amp;gt;()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
53
+ <mxGeometry x="550" y="370" width="160" height="160" as="geometry"/>
54
+ </mxCell>
55
+ <mxCell id="bLn-18" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt; MixIn &amp;gt;&amp;gt;&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;DrawioExtensionsActive&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;apply_active_flags()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;check_if_active()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
56
+ <mxGeometry x="730" y="370" width="160" height="160" as="geometry"/>
57
+ </mxCell>
58
+ <mxCell id="bLn-19" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;LayoutEngine&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;page: Page&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;current_page: Page&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;current_layout: Layout&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;call()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;traverse_node()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;process_node()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
59
+ <mxGeometry x="910" y="370" width="160" height="160" as="geometry"/>
60
+ </mxCell>
61
+ <mxCell id="bLn-20" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;XmlBuilder&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;diagram&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;build()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
62
+ <mxGeometry x="10" y="550" width="160" height="160" as="geometry"/>
63
+ </mxCell>
64
+ <mxCell id="bLn-21" value="Formatters" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333" vertex="1" parent="node_root_bLn">
65
+ <mxGeometry x="190" y="550" width="160" height="160" as="geometry"/>
66
+ </mxCell>
67
+ <mxCell id="bLn-22" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;HtmlBuilder&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;element_style_defaults: Hash&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;default_for()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;style_for()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;empty?()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;exist?()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;as_html()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;hr()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;b()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;p()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_line()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_placeholder()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;group()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;build_lines()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;lines()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;groups()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
68
+ <mxGeometry x="370" y="550" width="160" height="160" as="geometry"/>
69
+ </mxCell>
70
+ <mxCell id="bLn-23" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt; MixIn &amp;gt;&amp;gt;&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;Factory&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;formatter()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;format_instance()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
71
+ <mxGeometry x="550" y="550" width="160" height="160" as="geometry"/>
72
+ </mxCell>
73
+ <mxCell id="bLn-24" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;BaseFormatter&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;html: String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;empty?()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;as_html()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
74
+ <mxGeometry x="730" y="550" width="160" height="160" as="geometry"/>
75
+ </mxCell>
76
+ <mxCell id="bLn-25" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;InterfaceFormatter&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;header()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;field()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;method()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;as_html()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
77
+ <mxGeometry x="910" y="550" width="160" height="160" as="geometry"/>
78
+ </mxCell>
79
+ <mxCell id="bLn-26" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;KlassFormatter&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;header()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;field()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;method()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;as_html()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
80
+ <mxGeometry x="10" y="730" width="160" height="160" as="geometry"/>
81
+ </mxCell>
82
+ <mxCell id="bLn-27" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;StyleBuilder&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;defaults: Hash&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;custom: Hash&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;customize()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;style()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;style_attribute()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;build()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
83
+ <mxGeometry x="190" y="730" width="160" height="160" as="geometry"/>
84
+ </mxCell>
85
+ <mxCell id="bLn-28" value="Schema" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333" vertex="1" parent="node_root_bLn">
86
+ <mxGeometry x="370" y="730" width="160" height="160" as="geometry"/>
87
+ </mxCell>
88
+ <mxCell id="bLn-29" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;Shape&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;category: Symbol&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;theme: Symbol&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;title: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;value: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;white_space: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;html: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;rounded: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;shadow: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;glass: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;sketch: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;fill_color: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;stroke_color: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;font_color: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;gradient: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;x: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;y: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;w: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;h: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;style_modifiers: Hash&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;source: Symbol (id)&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;target: Symbol (id)&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;&amp;gt; configure_shape()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;initialize()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;shape_defaults()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;apply_defaults()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;format()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;style()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;as_xml()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;draw_element()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;draw_line()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
89
+ <mxGeometry x="550" y="730" width="160" height="160" as="geometry"/>
90
+ </mxCell>
91
+ <mxCell id="bLn-30" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;CommonStyle&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;white_space: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;html: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;rounded: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;shadow: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;glass: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;sketch: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
92
+ <mxGeometry x="730" y="730" width="160" height="160" as="geometry"/>
93
+ </mxCell>
94
+ <mxCell id="bLn-31" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;DefaultPalette&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;fill_color: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;stroke_color: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;font_color: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;gradient: String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
95
+ <mxGeometry x="910" y="730" width="160" height="160" as="geometry"/>
96
+ </mxCell>
97
+ <mxCell id="bLn-32" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;Diagram&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;host: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;theme: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;style: CommonStyle&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;palette: DefaultPalette&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;pages: Array&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
98
+ <mxGeometry x="10" y="910" width="160" height="160" as="geometry"/>
99
+ </mxCell>
100
+ <mxCell id="bLn-33" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;Node&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;id: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;page: Page&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;parent: Node&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;classification: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;type: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;nodes: Array&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;initialize()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;root?()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_node()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
101
+ <mxGeometry x="190" y="910" width="160" height="160" as="geometry"/>
102
+ </mxCell>
103
+ <mxCell id="bLn-34" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;NodeList&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;nodes: Array&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;all()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;shapes()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;layouts()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;length()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;empty?()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;any?()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;first()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;as_xml()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
104
+ <mxGeometry x="370" y="910" width="160" height="160" as="geometry"/>
105
+ </mxCell>
106
+ <mxCell id="bLn-35" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;Page&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;diagram: Diagram&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;position_x: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;position_y: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;id: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;active: bool&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;name: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;theme: Symbol&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;style: CommonStyle&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;palette: DefaultPalette&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;margin_left: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;margin_top: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;nodes: Array&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;grid: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;grid_size: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;guides: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;tooltips: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;connect: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;arrows: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;fold: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;page_no: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;page_scale: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;page_width: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;page_height: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;background: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;page_shadow: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;math: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;active?: Boolean&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;add_node()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;as_xml()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;settings()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
107
+ <mxGeometry x="550" y="910" width="160" height="160" as="geometry"/>
108
+ </mxCell>
109
+ <mxCell id="bLn-36" value="Schema/Layouts" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333" vertex="1" parent="node_root_bLn">
110
+ <mxGeometry x="730" y="910" width="160" height="160" as="geometry"/>
111
+ </mxCell>
112
+ <mxCell id="bLn-37" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;FlexLayout&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;direction: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;wrap_at: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;gap: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;perpendicular_max: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;position_shape()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
113
+ <mxGeometry x="910" y="910" width="160" height="160" as="geometry"/>
114
+ </mxCell>
115
+ <mxCell id="bLn-38" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;GridLayout&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;direction: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;wrap_at: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;grid_size: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;grid_w: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;grid_h: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;cell_no: int&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;h_align: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;v_align: String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;position_shape()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
116
+ <mxGeometry x="10" y="1090" width="160" height="160" as="geometry"/>
117
+ </mxCell>
118
+ <mxCell id="bLn-39" value="&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px;text-align:center&quot;&gt;&lt;b&gt;Layout&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;anchor_x: String&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;anchor_y: String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;fire_after_init()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;after_init()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;margin-top:4px&quot;&gt;to_h()&lt;/p&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" vertex="1" parent="node_root_bLn">
119
+ <mxGeometry x="190" y="1090" width="160" height="160" as="geometry"/>
120
+ </mxCell>
121
+ <mxCell id="bLn-40" value="Schema/virtual" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333" vertex="1" parent="node_root_bLn">
122
+ <mxGeometry x="370" y="1090" width="160" height="160" as="geometry"/>
123
+ </mxCell>
124
+ <mxCell id="bLn-41" value="anchor" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
125
+ <mxGeometry x="592" y="1145" width="75" height="50" as="geometry"/>
126
+ </mxCell>
127
+ <mxCell id="bLn-42" value="Schema/shapes" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333" vertex="1" parent="node_root_bLn">
128
+ <mxGeometry x="730" y="1090" width="160" height="160" as="geometry"/>
129
+ </mxCell>
130
+ <mxCell id="bLn-44" value="actor" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
131
+ <mxGeometry x="907" y="1090" width="75" height="50" as="geometry"/>
132
+ </mxCell>
133
+ <mxCell id="bLn-45" value="actor2" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
134
+ <mxGeometry x="997" y="1090" width="75" height="50" as="geometry"/>
135
+ </mxCell>
136
+ <mxCell id="bLn-46" value="callout" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
137
+ <mxGeometry x="1087" y="1090" width="75" height="50" as="geometry"/>
138
+ </mxCell>
139
+ <mxCell id="bLn-47" value="callout2" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
140
+ <mxGeometry x="1177" y="1090" width="75" height="50" as="geometry"/>
141
+ </mxCell>
142
+ <mxCell id="bLn-48" value="callout3" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
143
+ <mxGeometry x="1267" y="1090" width="75" height="50" as="geometry"/>
144
+ </mxCell>
145
+ <mxCell id="bLn-49" value="callout4" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
146
+ <mxGeometry x="1357" y="1090" width="75" height="50" as="geometry"/>
147
+ </mxCell>
148
+ <mxCell id="bLn-50" value="circle" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
149
+ <mxGeometry x="1447" y="1090" width="75" height="50" as="geometry"/>
150
+ </mxCell>
151
+ <mxCell id="bLn-51" value="cloud" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
152
+ <mxGeometry x="1537" y="1090" width="75" height="50" as="geometry"/>
153
+ </mxCell>
154
+ <mxCell id="bLn-52" value="container" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
155
+ <mxGeometry x="1627" y="1090" width="75" height="50" as="geometry"/>
156
+ </mxCell>
157
+ <mxCell id="bLn-53" value="container2" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
158
+ <mxGeometry x="1717" y="1090" width="75" height="50" as="geometry"/>
159
+ </mxCell>
160
+ <mxCell id="bLn-54" value="container3" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
161
+ <mxGeometry x="1807" y="1090" width="75" height="50" as="geometry"/>
162
+ </mxCell>
163
+ <mxCell id="bLn-55" value="container4" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
164
+ <mxGeometry x="1897" y="1090" width="75" height="50" as="geometry"/>
165
+ </mxCell>
166
+ <mxCell id="bLn-56" value="cross" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
167
+ <mxGeometry x="907" y="1160" width="75" height="50" as="geometry"/>
168
+ </mxCell>
169
+ <mxCell id="bLn-57" value="database" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
170
+ <mxGeometry x="997" y="1160" width="75" height="50" as="geometry"/>
171
+ </mxCell>
172
+ <mxCell id="bLn-58" value="db_json" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
173
+ <mxGeometry x="1087" y="1160" width="75" height="50" as="geometry"/>
174
+ </mxCell>
175
+ <mxCell id="bLn-59" value="diamond" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
176
+ <mxGeometry x="1177" y="1160" width="75" height="50" as="geometry"/>
177
+ </mxCell>
178
+ <mxCell id="bLn-60" value="document" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
179
+ <mxGeometry x="1267" y="1160" width="75" height="50" as="geometry"/>
180
+ </mxCell>
181
+ <mxCell id="bLn-61" value="ellipse" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
182
+ <mxGeometry x="1357" y="1160" width="75" height="50" as="geometry"/>
183
+ </mxCell>
184
+ <mxCell id="bLn-62" value="embed_col200" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
185
+ <mxGeometry x="1447" y="1160" width="75" height="50" as="geometry"/>
186
+ </mxCell>
187
+ <mxCell id="bLn-63" value="embed_col50" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
188
+ <mxGeometry x="1537" y="1160" width="75" height="50" as="geometry"/>
189
+ </mxCell>
190
+ <mxCell id="bLn-64" value="embed_row" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
191
+ <mxGeometry x="1627" y="1160" width="75" height="50" as="geometry"/>
192
+ </mxCell>
193
+ <mxCell id="bLn-65" value="envelop" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
194
+ <mxGeometry x="1717" y="1160" width="75" height="50" as="geometry"/>
195
+ </mxCell>
196
+ <mxCell id="bLn-66" value="face" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
197
+ <mxGeometry x="1807" y="1160" width="75" height="50" as="geometry"/>
198
+ </mxCell>
199
+ <mxCell id="bLn-67" value="h1" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
200
+ <mxGeometry x="1897" y="1160" width="75" height="50" as="geometry"/>
201
+ </mxCell>
202
+ <mxCell id="bLn-68" value="h2" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
203
+ <mxGeometry x="907" y="1230" width="75" height="50" as="geometry"/>
204
+ </mxCell>
205
+ <mxCell id="bLn-69" value="h3" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
206
+ <mxGeometry x="997" y="1230" width="75" height="50" as="geometry"/>
207
+ </mxCell>
208
+ <mxCell id="bLn-70" value="h4" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
209
+ <mxGeometry x="1087" y="1230" width="75" height="50" as="geometry"/>
210
+ </mxCell>
211
+ <mxCell id="bLn-71" value="h5" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
212
+ <mxGeometry x="1177" y="1230" width="75" height="50" as="geometry"/>
213
+ </mxCell>
214
+ <mxCell id="bLn-72" value="h6" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
215
+ <mxGeometry x="1267" y="1230" width="75" height="50" as="geometry"/>
216
+ </mxCell>
217
+ <mxCell id="bLn-73" value="hexagon" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
218
+ <mxGeometry x="1357" y="1230" width="75" height="50" as="geometry"/>
219
+ </mxCell>
220
+ <mxCell id="bLn-74" value="interface" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
221
+ <mxGeometry x="1447" y="1230" width="75" height="50" as="geometry"/>
222
+ </mxCell>
223
+ <mxCell id="bLn-75" value="klass" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
224
+ <mxGeometry x="1537" y="1230" width="75" height="50" as="geometry"/>
225
+ </mxCell>
226
+ <mxCell id="bLn-76" value="line" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
227
+ <mxGeometry x="1627" y="1230" width="75" height="50" as="geometry"/>
228
+ </mxCell>
229
+ <mxCell id="bLn-77" value="note" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
230
+ <mxGeometry x="1717" y="1230" width="75" height="50" as="geometry"/>
231
+ </mxCell>
232
+ <mxCell id="bLn-78" value="p" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
233
+ <mxGeometry x="1807" y="1230" width="75" height="50" as="geometry"/>
234
+ </mxCell>
235
+ <mxCell id="bLn-79" value="process" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
236
+ <mxGeometry x="1897" y="1230" width="75" height="50" as="geometry"/>
237
+ </mxCell>
238
+ <mxCell id="bLn-80" value="rectangle" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
239
+ <mxGeometry x="907" y="1300" width="75" height="50" as="geometry"/>
240
+ </mxCell>
241
+ <mxCell id="bLn-81" value="rectangle2" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
242
+ <mxGeometry x="997" y="1300" width="75" height="50" as="geometry"/>
243
+ </mxCell>
244
+ <mxCell id="bLn-82" value="shape" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
245
+ <mxGeometry x="1087" y="1300" width="75" height="50" as="geometry"/>
246
+ </mxCell>
247
+ <mxCell id="bLn-83" value="square" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
248
+ <mxGeometry x="1177" y="1300" width="75" height="50" as="geometry"/>
249
+ </mxCell>
250
+ <mxCell id="bLn-84" value="step" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
251
+ <mxGeometry x="1267" y="1300" width="75" height="50" as="geometry"/>
252
+ </mxCell>
253
+ <mxCell id="bLn-85" value="tick" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
254
+ <mxGeometry x="1357" y="1300" width="75" height="50" as="geometry"/>
255
+ </mxCell>
256
+ <mxCell id="bLn-86" value="todo" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
257
+ <mxGeometry x="1447" y="1300" width="75" height="50" as="geometry"/>
258
+ </mxCell>
259
+ <mxCell id="bLn-87" value="triangle" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;shape=mxgraph.basic.cloud_rect" vertex="1" parent="node_root_bLn">
260
+ <mxGeometry x="1537" y="1300" width="75" height="50" as="geometry"/>
261
+ </mxCell>
262
+ </root>
263
+ </mxGraphModel>
264
+ </diagram>
265
+ </mxfile>