drawio_dsl 0.8.0 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
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>