drawio_dsl 0.8.0 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/.data/shapes.json +581 -362
  3. data/.builders/.templates/basic/configuration_shapes.rb +3 -3
  4. data/.builders/.templates/basic/dom_builder_shapes.rb +2 -1
  5. data/.builders/.templates/basic/drawio_shapes.rb +2 -2
  6. data/.builders/blueprint/shapes.rb +147 -44
  7. data/.builders/generators/02-generate-app.rb +3 -1
  8. data/.builders/generators/{project_plans/drawio_dsl.rb → project-plan.rb} +24 -13
  9. data/.builders/generators/sample_diagrams/05-samples.rb +19 -6
  10. data/.builders/generators/sample_diagrams/30-html-shapes.rb +6 -6
  11. data/.builders/generators/sample_diagrams/35-ids-and-arrows.rb +30 -0
  12. data/CHANGELOG.md +21 -0
  13. data/docs/project-plan/project.drawio +152 -0
  14. data/docs/project-plan/project_done.svg +3 -0
  15. data/docs/project-plan/project_in_progress.svg +3 -0
  16. data/docs/project-plan/project_todo.svg +3 -0
  17. data/docs/project-plan.md +3 -3
  18. data/docs/samples/styles-glass.svg +1 -1
  19. data/docs/samples/styles-plain.svg +1 -1
  20. data/docs/samples/styles-rounded.svg +1 -1
  21. data/docs/samples/styles-shadow.svg +1 -1
  22. data/docs/samples/styles-sketch.svg +1 -1
  23. data/lib/drawio_dsl/configuration_shapes.rb +44 -42
  24. data/lib/drawio_dsl/dom_builder_shapes.rb +86 -40
  25. data/lib/drawio_dsl/drawio_shapes.rb +89 -83
  26. data/lib/drawio_dsl/formatters/interface_formatter.rb +5 -3
  27. data/lib/drawio_dsl/formatters/klass_formatter.rb +4 -2
  28. data/lib/drawio_dsl/schema/_.rb +1 -0
  29. data/lib/drawio_dsl/schema/shapes/line.rb +9 -0
  30. data/lib/drawio_dsl/schema/shapes/shape.rb +24 -5
  31. data/lib/drawio_dsl/version.rb +1 -1
  32. data/package-lock.json +2 -2
  33. data/package.json +1 -1
  34. metadata +9 -7
  35. data/.builders/generators/project_plans/k_doc.rb +0 -39
  36. data/docs/project_done.svg +0 -3
  37. data/docs/project_in_progress.svg +0 -3
  38. data/docs/project_todo.svg +0 -3
@@ -5,7 +5,7 @@ module DrawioDsl
5
5
  # :nocov:
6
6
  module DrawioShapes
7
7
  def random(**opts)
8
- case rand(40)
8
+ case rand(41)
9
9
  when 0
10
10
  h1(**opts)
11
11
  when 1
@@ -81,172 +81,178 @@ module DrawioDsl
81
81
  when 36
82
82
  triangle(**opts)
83
83
  when 37
84
- embed_row(**opts)
84
+ line(**opts)
85
85
  when 38
86
- embed_col50(**opts)
86
+ embed_row(**opts)
87
87
  when 39
88
+ embed_col50(**opts)
89
+ when 40
88
90
  embed_col200(**opts)
89
91
  end
90
92
  end
91
93
 
92
- def h1(**opts, &block)
93
- builder.add_h1(**opts, &block)
94
+ def h1(id = nil, **opts, &block)
95
+ builder.add_h1(id, **opts, &block)
96
+ end
97
+
98
+ def h2(id = nil, **opts, &block)
99
+ builder.add_h2(id, **opts, &block)
94
100
  end
95
101
 
96
- def h2(**opts, &block)
97
- builder.add_h2(**opts, &block)
102
+ def h3(id = nil, **opts, &block)
103
+ builder.add_h3(id, **opts, &block)
98
104
  end
99
105
 
100
- def h3(**opts, &block)
101
- builder.add_h3(**opts, &block)
106
+ def h4(id = nil, **opts, &block)
107
+ builder.add_h4(id, **opts, &block)
102
108
  end
103
109
 
104
- def h4(**opts, &block)
105
- builder.add_h4(**opts, &block)
110
+ def h5(id = nil, **opts, &block)
111
+ builder.add_h5(id, **opts, &block)
106
112
  end
107
113
 
108
- def h5(**opts, &block)
109
- builder.add_h5(**opts, &block)
114
+ def h6(id = nil, **opts, &block)
115
+ builder.add_h6(id, **opts, &block)
110
116
  end
111
117
 
112
- def h6(**opts, &block)
113
- builder.add_h6(**opts, &block)
118
+ def p(id = nil, **opts, &block)
119
+ builder.add_p(id, **opts, &block)
114
120
  end
115
121
 
116
- def p(**opts, &block)
117
- builder.add_p(**opts, &block)
122
+ def actor(id = nil, **opts, &block)
123
+ builder.add_actor(id, **opts, &block)
118
124
  end
119
125
 
120
- def actor(**opts, &block)
121
- builder.add_actor(**opts, &block)
126
+ def actor2(id = nil, **opts, &block)
127
+ builder.add_actor2(id, **opts, &block)
122
128
  end
123
129
 
124
- def actor2(**opts, &block)
125
- builder.add_actor2(**opts, &block)
130
+ def callout(id = nil, **opts, &block)
131
+ builder.add_callout(id, **opts, &block)
126
132
  end
127
133
 
128
- def callout(**opts, &block)
129
- builder.add_callout(**opts, &block)
134
+ def callout2(id = nil, **opts, &block)
135
+ builder.add_callout2(id, **opts, &block)
130
136
  end
131
137
 
132
- def callout2(**opts, &block)
133
- builder.add_callout2(**opts, &block)
138
+ def callout3(id = nil, **opts, &block)
139
+ builder.add_callout3(id, **opts, &block)
134
140
  end
135
141
 
136
- def callout3(**opts, &block)
137
- builder.add_callout3(**opts, &block)
142
+ def callout4(id = nil, **opts, &block)
143
+ builder.add_callout4(id, **opts, &block)
138
144
  end
139
145
 
140
- def callout4(**opts, &block)
141
- builder.add_callout4(**opts, &block)
146
+ def circle(id = nil, **opts, &block)
147
+ builder.add_circle(id, **opts, &block)
142
148
  end
143
149
 
144
- def circle(**opts, &block)
145
- builder.add_circle(**opts, &block)
150
+ def cloud(id = nil, **opts, &block)
151
+ builder.add_cloud(id, **opts, &block)
146
152
  end
147
153
 
148
- def cloud(**opts, &block)
149
- builder.add_cloud(**opts, &block)
154
+ def container(id = nil, **opts, &block)
155
+ builder.add_container(id, **opts, &block)
150
156
  end
151
157
 
152
- def container(**opts, &block)
153
- builder.add_container(**opts, &block)
158
+ def container2(id = nil, **opts, &block)
159
+ builder.add_container2(id, **opts, &block)
154
160
  end
155
161
 
156
- def container2(**opts, &block)
157
- builder.add_container2(**opts, &block)
162
+ def container3(id = nil, **opts, &block)
163
+ builder.add_container3(id, **opts, &block)
158
164
  end
159
165
 
160
- def container3(**opts, &block)
161
- builder.add_container3(**opts, &block)
166
+ def container4(id = nil, **opts, &block)
167
+ builder.add_container4(id, **opts, &block)
162
168
  end
163
169
 
164
- def container4(**opts, &block)
165
- builder.add_container4(**opts, &block)
170
+ def cross(id = nil, **opts, &block)
171
+ builder.add_cross(id, **opts, &block)
166
172
  end
167
173
 
168
- def cross(**opts, &block)
169
- builder.add_cross(**opts, &block)
174
+ def envelop(id = nil, **opts, &block)
175
+ builder.add_envelop(id, **opts, &block)
170
176
  end
171
177
 
172
- def envelop(**opts, &block)
173
- builder.add_envelop(**opts, &block)
178
+ def diamond(id = nil, **opts, &block)
179
+ builder.add_diamond(id, **opts, &block)
174
180
  end
175
181
 
176
- def diamond(**opts, &block)
177
- builder.add_diamond(**opts, &block)
182
+ def document(id = nil, **opts, &block)
183
+ builder.add_document(id, **opts, &block)
178
184
  end
179
185
 
180
- def document(**opts, &block)
181
- builder.add_document(**opts, &block)
186
+ def ellipse(id = nil, **opts, &block)
187
+ builder.add_ellipse(id, **opts, &block)
182
188
  end
183
189
 
184
- def ellipse(**opts, &block)
185
- builder.add_ellipse(**opts, &block)
190
+ def hexagon(id = nil, **opts, &block)
191
+ builder.add_hexagon(id, **opts, &block)
186
192
  end
187
193
 
188
- def hexagon(**opts, &block)
189
- builder.add_hexagon(**opts, &block)
194
+ def interface(id = nil, **opts, &block)
195
+ builder.add_interface(id, **opts, &block)
190
196
  end
191
197
 
192
- def interface(**opts, &block)
193
- builder.add_interface(**opts, &block)
198
+ def klass(id = nil, **opts, &block)
199
+ builder.add_klass(id, **opts, &block)
194
200
  end
195
201
 
196
- def klass(**opts, &block)
197
- builder.add_klass(**opts, &block)
202
+ def note(id = nil, **opts, &block)
203
+ builder.add_note(id, **opts, &block)
198
204
  end
199
205
 
200
- def note(**opts, &block)
201
- builder.add_note(**opts, &block)
206
+ def process(id = nil, **opts, &block)
207
+ builder.add_process(id, **opts, &block)
202
208
  end
203
209
 
204
- def process(**opts, &block)
205
- builder.add_process(**opts, &block)
210
+ def rectangle(id = nil, **opts, &block)
211
+ builder.add_rectangle(id, **opts, &block)
206
212
  end
207
213
 
208
- def rectangle(**opts, &block)
209
- builder.add_rectangle(**opts, &block)
214
+ def rectangle2(id = nil, **opts, &block)
215
+ builder.add_rectangle2(id, **opts, &block)
210
216
  end
211
217
 
212
- def rectangle2(**opts, &block)
213
- builder.add_rectangle2(**opts, &block)
218
+ def square(id = nil, **opts, &block)
219
+ builder.add_square(id, **opts, &block)
214
220
  end
215
221
 
216
- def square(**opts, &block)
217
- builder.add_square(**opts, &block)
222
+ def step(id = nil, **opts, &block)
223
+ builder.add_step(id, **opts, &block)
218
224
  end
219
225
 
220
- def step(**opts, &block)
221
- builder.add_step(**opts, &block)
226
+ def tick(id = nil, **opts, &block)
227
+ builder.add_tick(id, **opts, &block)
222
228
  end
223
229
 
224
- def tick(**opts, &block)
225
- builder.add_tick(**opts, &block)
230
+ def todo(id = nil, **opts, &block)
231
+ builder.add_todo(id, **opts, &block)
226
232
  end
227
233
 
228
- def todo(**opts, &block)
229
- builder.add_todo(**opts, &block)
234
+ def face(id = nil, **opts, &block)
235
+ builder.add_face(id, **opts, &block)
230
236
  end
231
237
 
232
- def face(**opts, &block)
233
- builder.add_face(**opts, &block)
238
+ def triangle(id = nil, **opts, &block)
239
+ builder.add_triangle(id, **opts, &block)
234
240
  end
235
241
 
236
- def triangle(**opts, &block)
237
- builder.add_triangle(**opts, &block)
242
+ def line(id = nil, **opts, &block)
243
+ builder.add_line(id, **opts, &block)
238
244
  end
239
245
 
240
- def embed_row(**opts, &block)
241
- builder.add_embed_row(**opts, &block)
246
+ def embed_row(id = nil, **opts, &block)
247
+ builder.add_embed_row(id, **opts, &block)
242
248
  end
243
249
 
244
- def embed_col50(**opts, &block)
245
- builder.add_embed_col50(**opts, &block)
250
+ def embed_col50(id = nil, **opts, &block)
251
+ builder.add_embed_col50(id, **opts, &block)
246
252
  end
247
253
 
248
- def embed_col200(**opts, &block)
249
- builder.add_embed_col200(**opts, &block)
254
+ def embed_col200(id = nil, **opts, &block)
255
+ builder.add_embed_col200(id, **opts, &block)
250
256
  end
251
257
  end
252
258
  # :nocov:
@@ -10,11 +10,13 @@ module DrawioDsl
10
10
  super({ p: { margin: '0px', margin_left: '4px', margin_top: '4px' } })
11
11
  end
12
12
 
13
- def header(value)
14
- html.p('<i>Interface</i>', text_align: :center)
15
- html.p("<b>#{value}</b>", text_align: :center)
13
+ def header(name, description: nil, interface_type: 'Interface')
14
+ html.p("<i>&lt;&lt; #{interface_type} &gt;&gt;</i>", text_align: :center)
15
+ html.p("<b>#{name}</b>", text_align: :center)
16
16
  html.hr
17
17
 
18
+ html.group(:description).p(description) if description
19
+
18
20
  self
19
21
  end
20
22
 
@@ -10,10 +10,12 @@ module DrawioDsl
10
10
  super({ p: { margin: '0px', margin_left: '4px', margin_top: '4px' } })
11
11
  end
12
12
 
13
- def header(value)
14
- html.p("<b>#{value}</b>", text_align: :center)
13
+ def header(name, description: nil)
14
+ html.p("<b>#{name}</b>", text_align: :center)
15
15
  html.hr
16
16
 
17
+ html.group(:description).p(description) if description
18
+
17
19
  self
18
20
  end
19
21
 
@@ -49,6 +49,7 @@ require_relative 'shapes/tick'
49
49
  require_relative 'shapes/todo'
50
50
  require_relative 'shapes/face'
51
51
  require_relative 'shapes/triangle'
52
+ require_relative 'shapes/line'
52
53
  require_relative 'shapes/embed_row'
53
54
  require_relative 'shapes/embed_col50'
54
55
  require_relative 'shapes/embed_col200'
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Line < Shape
6
+ configure_shape(:line)
7
+ end
8
+ end
9
+ end
@@ -23,6 +23,7 @@ module DrawioDsl
23
23
 
24
24
  configure_shape(:shape)
25
25
 
26
+ attr_accessor :category
26
27
  attr_accessor :theme
27
28
  attr_accessor :title
28
29
  attr_accessor :value
@@ -40,13 +41,15 @@ module DrawioDsl
40
41
  attr_accessor :font_color
41
42
  attr_accessor :gradient
42
43
 
43
- attr_accessor :text_only
44
44
  attr_accessor :x
45
45
  attr_accessor :y
46
46
  attr_accessor :w
47
47
  attr_accessor :h
48
48
  attr_accessor :style_modifiers
49
49
 
50
+ attr_accessor :source
51
+ attr_accessor :target
52
+
50
53
  def initialize(page, **args, &block)
51
54
  args[:classification] = :shape
52
55
  super(page, **args)
@@ -76,16 +79,19 @@ module DrawioDsl
76
79
  @glass = args[:glass] || page.style.glass
77
80
 
78
81
  @type = args[:type] || shape_defaults.type
79
- @text_only = args[:text_only] || shape_defaults.text_only
82
+ @category = args[:category] || shape_defaults.category
80
83
  @x = args[:x] || shape_defaults.x
81
84
  @y = args[:y] || shape_defaults.y
82
85
  @w = args[:w] || shape_defaults.w
83
86
  @h = args[:h] || shape_defaults.h
84
87
  @style_modifiers = args[:style_modifiers] || shape_defaults.style_modifiers
85
88
 
86
- @fill_color = args[:fill_color] || (text_only ? nil : theme_palette.fill_color)
87
- @stroke_color = args[:stroke_color] || (text_only ? nil : theme_palette.stroke_color)
88
- @gradient = args[:gradient] || (text_only ? nil : theme_palette.gradient)
89
+ @source = args[:source]
90
+ @target = args[:target]
91
+
92
+ @fill_color = args[:fill_color] || (category == :text ? nil : theme_palette.fill_color)
93
+ @stroke_color = args[:stroke_color] || (category == :text ? nil : theme_palette.stroke_color)
94
+ @gradient = args[:gradient] || (category == :text ? nil : theme_palette.gradient)
89
95
  @font_color = args[:font_color] || theme_palette.font_color
90
96
  end
91
97
 
@@ -113,11 +119,24 @@ module DrawioDsl
113
119
  # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
114
120
 
115
121
  def as_xml(xml)
122
+ log.error category
123
+ log.error type
124
+ draw_element(xml) if category == :element
125
+ draw_line(xml) if category == :line
126
+ end
127
+
128
+ def draw_element(xml)
116
129
  xml.mxCell(id: id, value: value, style: style, vertex: 1, parent: parent&.id) do
117
130
  xml.mxGeometry(x: x, y: y, width: w, height: h, as: 'geometry')
118
131
  end
119
132
  end
120
133
 
134
+ def draw_line(xml)
135
+ xml.mxCell(id: id, value: value, style: style, parent: parent&.id, source: source, target: target, edge: 1) do
136
+ xml.mxGeometry(relative: 1, as: 'geometry')
137
+ end
138
+ end
139
+
121
140
  def to_h
122
141
  result = {
123
142
  id: id,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DrawioDsl
4
- VERSION = '0.8.0'
4
+ VERSION = '0.8.3'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.8.0",
3
+ "version": "0.8.3",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "drawio_dsl",
9
- "version": "0.8.0",
9
+ "version": "0.8.3",
10
10
  "devDependencies": {
11
11
  "@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
12
12
  "@semantic-release/changelog": "^6.0.1",
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.8.0",
3
+ "version": "0.8.3",
4
4
  "description": "DrawIO DSL can build DrawIO diagrams using a Domain Specific Language",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drawio_dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-15 00:00:00.000000000 Z
11
+ date: 2022-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: k_config
@@ -88,8 +88,7 @@ files:
88
88
  - ".builders/generators/02-generate-app.rb"
89
89
  - ".builders/generators/10-transform-drawio-js.rb"
90
90
  - ".builders/generators/20-drawio-extensions.rb"
91
- - ".builders/generators/project_plans/drawio_dsl.rb"
92
- - ".builders/generators/project_plans/k_doc.rb"
91
+ - ".builders/generators/project-plan.rb"
93
92
  - ".builders/generators/sample_diagrams/05-samples.rb"
94
93
  - ".builders/generators/sample_diagrams/10-page-margin.rb"
95
94
  - ".builders/generators/sample_diagrams/15-grid-direction.rb"
@@ -97,6 +96,7 @@ files:
97
96
  - ".builders/generators/sample_diagrams/20-styles.rb"
98
97
  - ".builders/generators/sample_diagrams/25-themes.rb"
99
98
  - ".builders/generators/sample_diagrams/30-html-shapes.rb"
99
+ - ".builders/generators/sample_diagrams/35-ids-and-arrows.rb"
100
100
  - ".builders/generators/sample_diagrams/50-willoughby-council.rb"
101
101
  - ".releaserc.json"
102
102
  - ".rspec"
@@ -266,9 +266,10 @@ files:
266
266
  - docs/extensions/venn_plain.svg
267
267
  - docs/extensions/vessels.svg
268
268
  - docs/project-plan.md
269
- - docs/project_done.svg
270
- - docs/project_in_progress.svg
271
- - docs/project_todo.svg
269
+ - docs/project-plan/project.drawio
270
+ - docs/project-plan/project_done.svg
271
+ - docs/project-plan/project_in_progress.svg
272
+ - docs/project-plan/project_todo.svg
272
273
  - docs/samples/grid-alignment-center.svg
273
274
  - docs/samples/grid-alignment.svg
274
275
  - docs/samples/grid-direction-horizontal.svg
@@ -345,6 +346,7 @@ files:
345
346
  - lib/drawio_dsl/schema/shapes/hexagon.rb
346
347
  - lib/drawio_dsl/schema/shapes/interface.rb
347
348
  - lib/drawio_dsl/schema/shapes/klass.rb
349
+ - lib/drawio_dsl/schema/shapes/line.rb
348
350
  - lib/drawio_dsl/schema/shapes/note.rb
349
351
  - lib/drawio_dsl/schema/shapes/p.rb
350
352
  - lib/drawio_dsl/schema/shapes/process.rb
@@ -1,39 +0,0 @@
1
- KManager.action :todo_drawio_dsl do
2
- action do
3
-
4
- DrawioDsl::Drawio
5
- .init(k_builder, on_exist: :write, on_action: :execute)
6
- .diagram(rounded: 1, glass: 1)
7
- .page('In progress', theme: :style_03, margin_left: 0, margin_top: 0) do
8
-
9
- # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
10
- # p(x: 350, y: 40, w: 400, h: 80, title: 'Project plan - In progress')
11
-
12
- grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
13
-
14
- square(w: 300, h: 60, title: '')
15
- end
16
- .page('To Do', theme: :style_02, margin_left: 0, margin_top: 0) do
17
-
18
- # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
19
- # p(x: 350, y: 40, w: 400, h: 80, title: 'Project plan')
20
-
21
- grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
22
-
23
- end
24
- .page('Done', theme: :style_06, margin_left: 0, margin_top: 0) do
25
-
26
- # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
27
- # p(x: 350, y: 40, w: 400, h: 80, title: 'Done')
28
-
29
- grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
30
-
31
- end
32
- .cd(:spec)
33
- .save('project-plans/k_doc.drawio')
34
- # .cd(:k_doc_docs)
35
- # .export_svg('project_in_progress', page: 1)
36
- # .export_svg('project_todo' , page: 2)
37
- # .export_svg('project_done' , page: 3)
38
- end
39
- end
@@ -1,3 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="382px" viewBox="-0.5 -0.5 942 382"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">alter configure_shape so it sets the default shape key and use that for selecting the default HTML formatter</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">alter configure_shape so it sets the default shape...</text></switch></g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Add todo shape to simplify project plan drawing</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Add todo shape to simplify project plan drawing</text></switch></g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">introduce .value property to shape and let it use either formatted HTML or plain text title</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">introduce .value property to shape and let it use...</text></switch></g><rect x="0" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 79 Q -1 79 -1 90.15 L -1 104 Q 150 122 301 104 L 301 90.15 Q 301 79 289.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">formatter DSL that can render HTML directly into the value property</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">formatter DSL that can render HTML directly into t...</text></switch></g><rect x="320" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 79 Q 319 79 319 90.15 L 319 104 Q 470 122 621 104 L 621 90.15 Q 621 79 609.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">formatter DSL for class and interface generation</div></div></div></foreignObject><text x="470" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">formatter DSL for class and interface generation</text></switch></g><rect x="640" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 79 Q 639 79 639 90.15 L 639 104 Q 790 122 941 104 L 941 90.15 Q 941 79 929.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">generate extension based graphics based on drawio extensions.js</div></div></div></foreignObject><text x="790" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">generate extension based graphics based on drawio...</text></switch></g><rect x="0" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 159 Q -1 159 -1 170.15 L -1 184 Q 150 202 301 184 L 301 170.15 Q 301 159 289.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">active? flag on page defaulting to true. set to false to exclude page from diagram.</div></div></div></foreignObject><text x="150" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">active? flag on page defaulting to true. set to fa...</text></switch></g><rect x="320" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 159 Q 319 159 319 170.15 L 319 184 Q 470 202 621 184 L 621 170.15 Q 621 159 609.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">first level child nodes need to hang of node 1</div></div></div></foreignObject><text x="470" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">first level child nodes need to hang of node 1</text></switch></g><rect x="640" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 159 Q 639 159 639 170.15 L 639 184 Q 790 202 941 184 L 941 170.15 Q 941 159 929.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">node has child nodes and add_node will set a nodes parent</div></div></div></foreignObject><text x="790" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">node has child nodes and add_node will set a nodes...</text></switch></g><rect x="0" y="240" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 239 Q -1 239 -1 250.15 L -1 264 Q 150 282 301 264 L 301 250.15 Q 301 239 289.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">nodes can belong to a parent node, the top level node responds with truthy to root?</div></div></div></foreignObject><text x="150" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">nodes can belong to a parent node, the top level n...</text></switch></g><rect x="320" y="240" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 239 Q 319 239 319 250.15 L 319 264 Q 470 282 621 264 L 621 250.15 Q 621 239 609.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add sample diagram for the github readme file</div></div></div></foreignObject><text x="470" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add sample diagram for the github readme file</text></switch></g><rect x="640" y="240" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 239 Q 639 239 639 250.15 L 639 264 Q 790 282 941 264 L 941 250.15 Q 941 239 929.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">write samples into docs folder and display in readme</div></div></div></foreignObject><text x="790" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">write samples into docs folder and display in read...</text></switch></g><rect x="0" y="320" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 319 Q -1 319 -1 330.15 L -1 344 Q 150 362 301 344 L 301 330.15 Q 301 319 289.85 319 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 350px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add export as .PNG, needs to take a page number as the PNG will not support multiple pages</div></div></div></foreignObject><text x="150" y="354" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add export as .PNG, needs to take a page number as...</text></switch></g><rect x="320" y="320" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 319 Q 319 319 319 330.15 L 319 344 Q 470 362 621 344 L 621 330.15 Q 621 319 609.85 319 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 350px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add export as .SVG, needs to take a page number as the SVG will not support multiple pages</div></div></div></foreignObject><text x="470" y="354" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add export as .SVG, needs to take a page number as...</text></switch></g><rect x="640" y="320" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 319 Q 639 319 639 330.15 L 639 344 Q 790 362 941 344 L 941 330.15 Q 941 319 929.85 319 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 350px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add save as .drawio</div></div></div></foreignObject><text x="790" y="354" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add save as .drawio</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
@@ -1,3 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="622px" height="62px" viewBox="-0.5 -0.5 622 62"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">move DrawioDsl::Formatters::Factory::FORMATTERS to resource file</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">move DrawioDsl::Formatters::Factory::FORMATTERS to...</text></switch></g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">move DrawioDsl::Formatters::StyleBuilder::MAPPINGS to resource file</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">move DrawioDsl::Formatters::StyleBuilder::MAPPINGS...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>