drawio_dsl 0.5.7 → 0.6.0

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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/.templates/basic/drawio_extensions.rb +57 -0
  3. data/.builders/blueprint/shapes.rb +3 -1
  4. data/.builders/generators/10-transform-drawio-js.rb +195 -0
  5. data/.builders/generators/20-drawio-extensions.rb +41 -0
  6. data/.builders/generators/project_plans/drawio_dsl.rb +5 -2
  7. data/.builders/generators/sample_diagrams/15-grid-direction.rb +0 -8
  8. data/.builders/generators/sample_diagrams/20-styles.rb +1 -2
  9. data/.rubocop.yml +1 -0
  10. data/CHANGELOG.md +7 -0
  11. data/docs/extensions/analyti_cs.svg +3 -0
  12. data/docs/extensions/android_inputs.svg +3 -0
  13. data/docs/extensions/app_services.svg +3 -0
  14. data/docs/extensions/appliances.svg +3 -0
  15. data/docs/extensions/arrows.svg +3 -0
  16. data/docs/extensions/aws_17___analyti_cs.svg +3 -0
  17. data/docs/extensions/aws_17___application_services.svg +3 -0
  18. data/docs/extensions/aws_17___artificial_intelligence.svg +3 -0
  19. data/docs/extensions/aws_17___business_productivity.svg +3 -0
  20. data/docs/extensions/aws_17___compute.svg +3 -0
  21. data/docs/extensions/aws_17___contact_center.svg +3 -0
  22. data/docs/extensions/aws_17___containers.svg +3 -0
  23. data/docs/extensions/aws_17___database.svg +3 -0
  24. data/docs/extensions/aws_17___desktop_app_straning.svg +3 -0
  25. data/docs/extensions/aws_17___developer_tools.svg +3 -0
  26. data/docs/extensions/aws_17___game_development.svg +3 -0
  27. data/docs/extensions/aws_17___general.svg +3 -0
  28. data/docs/extensions/aws_17___io_t.svg +3 -0
  29. data/docs/extensions/aws_17___management.svg +3 -0
  30. data/docs/extensions/aws_17___messaging.svg +3 -0
  31. data/docs/extensions/aws_17___migration.svg +3 -0
  32. data/docs/extensions/aws_17___mobile_services.svg +3 -0
  33. data/docs/extensions/aws_17___networking_content_delivery.svg +3 -0
  34. data/docs/extensions/aws_17___on_demand_workforce.svg +3 -0
  35. data/docs/extensions/aws_17___sdks.svg +3 -0
  36. data/docs/extensions/aws_17___serurity_identity_and_compliance.svg +3 -0
  37. data/docs/extensions/aws_17___storage.svg +3 -0
  38. data/docs/extensions/aws_19___application_integration.svg +3 -0
  39. data/docs/extensions/aws_19___ar_vr.svg +3 -0
  40. data/docs/extensions/aws_19___blockchain.svg +3 -0
  41. data/docs/extensions/aws_19___business_applications.svg +3 -0
  42. data/docs/extensions/aws_19___compute.svg +3 -0
  43. data/docs/extensions/aws_19___cost_management.svg +3 -0
  44. data/docs/extensions/aws_19___customer_engagement.svg +3 -0
  45. data/docs/extensions/aws_19___database.svg +3 -0
  46. data/docs/extensions/aws_19___desktop_app_streaming.svg +3 -0
  47. data/docs/extensions/aws_19___developer_tools.svg +3 -0
  48. data/docs/extensions/aws_19___ec2_instance_types.svg +3 -0
  49. data/docs/extensions/aws_19___game_tech.svg +3 -0
  50. data/docs/extensions/aws_19___general.svg +3 -0
  51. data/docs/extensions/aws_19___groups_note_repeated_below_without_v2.svg +3 -0
  52. data/docs/extensions/aws_19___internet_of_things.svg +3 -0
  53. data/docs/extensions/aws_19___machine_learning.svg +3 -0
  54. data/docs/extensions/aws_19___management_governance.svg +3 -0
  55. data/docs/extensions/aws_19___media_services.svg +3 -0
  56. data/docs/extensions/aws_19___migration_transfer.svg +3 -0
  57. data/docs/extensions/aws_19___mobile.svg +3 -0
  58. data/docs/extensions/aws_19___networking_content_delivery.svg +3 -0
  59. data/docs/extensions/aws_19___roboti_cs.svg +3 -0
  60. data/docs/extensions/aws_19___satellite.svg +3 -0
  61. data/docs/extensions/aws_19___security_identity_compliance.svg +3 -0
  62. data/docs/extensions/aws_19___storage.svg +3 -0
  63. data/docs/extensions/aws_19_analyti_cs.svg +3 -0
  64. data/docs/extensions/aws_general.svg +3 -0
  65. data/docs/extensions/azure2019.svg +3 -0
  66. data/docs/extensions/azure_cloud.svg +3 -0
  67. data/docs/extensions/azure_enterprise.svg +3 -0
  68. data/docs/extensions/azure_vms.svg +3 -0
  69. data/docs/extensions/basic_network_shapes.svg +3 -0
  70. data/docs/extensions/beds.svg +3 -0
  71. data/docs/extensions/bpmn_2_0.svg +3 -0
  72. data/docs/extensions/cisco_basic.svg +3 -0
  73. data/docs/extensions/cisco_extended.svg +3 -0
  74. data/docs/extensions/common_elements.svg +3 -0
  75. data/docs/extensions/computers_and_monitors.svg +3 -0
  76. data/docs/extensions/containers.svg +3 -0
  77. data/docs/extensions/content_delivery.svg +3 -0
  78. data/docs/extensions/couches.svg +3 -0
  79. data/docs/extensions/cubicle_walls.svg +3 -0
  80. data/docs/extensions/data_flow.svg +3 -0
  81. data/docs/extensions/database.svg +3 -0
  82. data/docs/extensions/deployment.svg +3 -0
  83. data/docs/extensions/desks.svg +3 -0
  84. data/docs/extensions/detailed_network_diagrams.svg +3 -0
  85. data/docs/extensions/developer_tools.svg +3 -0
  86. data/docs/extensions/doors_windows.svg +3 -0
  87. data/docs/extensions/ec2.svg +3 -0
  88. data/docs/extensions/electrical.svg +3 -0
  89. data/docs/extensions/electroni_cs.svg +3 -0
  90. data/docs/extensions/enterprise_application.svg +3 -0
  91. data/docs/extensions/equipment.svg +3 -0
  92. data/docs/extensions/ext_shapes.svg +3 -0
  93. data/docs/extensions/flowchart.svg +3 -0
  94. data/docs/extensions/geometric_shapes.svg +3 -0
  95. data/docs/extensions/google_cloud_platform.svg +3 -0
  96. data/docs/extensions/heat_exchangers.svg +3 -0
  97. data/docs/extensions/i_os_6_i_pad_controls.svg +3 -0
  98. data/docs/extensions/i_os_6_i_pad_elements.svg +3 -0
  99. data/docs/extensions/i_os_6_i_pad_icons.svg +3 -0
  100. data/docs/extensions/i_os_6_i_phone_controls.svg +3 -0
  101. data/docs/extensions/i_os_6_i_phone_elements.svg +3 -0
  102. data/docs/extensions/i_os_6_i_phone_icons.svg +3 -0
  103. data/docs/extensions/i_os_devices.svg +3 -0
  104. data/docs/extensions/i_os_icons.svg +3 -0
  105. data/docs/extensions/i_os_mockups.svg +3 -0
  106. data/docs/extensions/i_os_ui_components.svg +3 -0
  107. data/docs/extensions/i_pad_elements.svg +3 -0
  108. data/docs/extensions/i_phone_elements.svg +3 -0
  109. data/docs/extensions/information.svg +3 -0
  110. data/docs/extensions/instruments.svg +3 -0
  111. data/docs/extensions/internet_of_things.svg +3 -0
  112. data/docs/extensions/kanban.svg +3 -0
  113. data/docs/extensions/kitchen.svg +3 -0
  114. data/docs/extensions/kubernetes_icons.svg +3 -0
  115. data/docs/extensions/logic_gates.svg +3 -0
  116. data/docs/extensions/materials.svg +3 -0
  117. data/docs/extensions/message_routing.svg +3 -0
  118. data/docs/extensions/message_transformation.svg +3 -0
  119. data/docs/extensions/messaging_channels.svg +3 -0
  120. data/docs/extensions/messaging_endpoints.svg +3 -0
  121. data/docs/extensions/messaging_systems.svg +3 -0
  122. data/docs/extensions/mind_map.svg +3 -0
  123. data/docs/extensions/misc.svg +3 -0
  124. data/docs/extensions/misc_floorplan.svg +3 -0
  125. data/docs/extensions/miscellaneous.svg +3 -0
  126. data/docs/extensions/mobile_services.svg +3 -0
  127. data/docs/extensions/network.svg +3 -0
  128. data/docs/extensions/networking.svg +3 -0
  129. data/docs/extensions/on_demand.svg +3 -0
  130. data/docs/extensions/piping.svg +3 -0
  131. data/docs/extensions/power_sources.svg +3 -0
  132. data/docs/extensions/processes.svg +3 -0
  133. data/docs/extensions/pumps.svg +3 -0
  134. data/docs/extensions/repeated_from_the_above.svg +3 -0
  135. data/docs/extensions/restroom.svg +3 -0
  136. data/docs/extensions/s3.svg +3 -0
  137. data/docs/extensions/sdks.svg +3 -0
  138. data/docs/extensions/security_identity.svg +3 -0
  139. data/docs/extensions/server_racks.svg +3 -0
  140. data/docs/extensions/shipments.svg +3 -0
  141. data/docs/extensions/site_map.svg +3 -0
  142. data/docs/extensions/stairs.svg +3 -0
  143. data/docs/extensions/standard.svg +3 -0
  144. data/docs/extensions/system_management.svg +3 -0
  145. data/docs/extensions/tables_chairs.svg +3 -0
  146. data/docs/extensions/technology.svg +3 -0
  147. data/docs/extensions/transistors.svg +3 -0
  148. data/docs/extensions/ui_containers.svg +3 -0
  149. data/docs/extensions/ui_input.svg +3 -0
  150. data/docs/extensions/ui_menus.svg +3 -0
  151. data/docs/extensions/ui_misc.svg +3 -0
  152. data/docs/extensions/ui_widgets.svg +3 -0
  153. data/docs/extensions/uml_class_diagram.svg +3 -0
  154. data/docs/extensions/uml_component.svg +3 -0
  155. data/docs/extensions/uml_entity_relationship.svg +3 -0
  156. data/docs/extensions/uml_sequence.svg +3 -0
  157. data/docs/extensions/uml_state_activity.svg +3 -0
  158. data/docs/extensions/uml_use_case.svg +3 -0
  159. data/docs/extensions/value_stream_mapping.svg +3 -0
  160. data/docs/extensions/valves.svg +3 -0
  161. data/docs/extensions/venn_gradient.svg +3 -0
  162. data/docs/extensions/venn_plain.svg +3 -0
  163. data/docs/extensions/vessels.svg +3 -0
  164. data/docs/extensions.md +614 -0
  165. data/docs/project_done.svg +1 -1
  166. data/docs/project_in_progress.svg +1 -1
  167. data/docs/samples/grid-direction-horizontal.svg +1 -1
  168. data/docs/samples/grid-direction-vertical.svg +1 -1
  169. data/docs/samples/samples.svg +1 -1
  170. data/docs/samples/styles-glass.svg +1 -1
  171. data/docs/samples/styles-plain.svg +1 -1
  172. data/docs/samples/styles-rounded.svg +1 -1
  173. data/docs/samples/styles-shadow.svg +1 -1
  174. data/docs/samples/styles-sketch.svg +1 -1
  175. data/docs/samples/themes-random.svg +1 -1
  176. data/lib/drawio_dsl/dom_builder.rb +23 -8
  177. data/lib/drawio_dsl/drawio_extensions.json +14024 -0
  178. data/lib/drawio_dsl/drawio_extensions.rb +4599 -0
  179. data/lib/drawio_dsl/drawio_extensions_active.rb +32 -0
  180. data/lib/drawio_dsl/layout_engine.rb +17 -7
  181. data/lib/drawio_dsl/schema/diagram.rb +1 -1
  182. data/lib/drawio_dsl/schema/layouts/flex_layout.rb +1 -2
  183. data/lib/drawio_dsl/schema/layouts/grid_layout.rb +1 -2
  184. data/lib/drawio_dsl/schema/layouts/layout.rb +0 -3
  185. data/lib/drawio_dsl/schema/node.rb +16 -3
  186. data/lib/drawio_dsl/schema/node_list.rb +20 -1
  187. data/lib/drawio_dsl/schema/page.rb +14 -7
  188. data/lib/drawio_dsl/schema/shapes/shape.rb +6 -4
  189. data/lib/drawio_dsl/schema/virtual/anchor.rb +2 -0
  190. data/lib/drawio_dsl/version.rb +1 -1
  191. data/lib/drawio_dsl/xml_builder.rb +4 -9
  192. data/lib/drawio_dsl.rb +2 -0
  193. data/package-lock.json +2 -2
  194. data/package.json +1 -1
  195. metadata +162 -2
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module DrawIoExtensionsActive
5
+ def apply_active_flags
6
+ sections.each do |section|
7
+ section[:shapes].each do |shape|
8
+ shape[:active] = check_if_active(shape)
9
+ end
10
+ section[:active] = section[:shapes].any? { |s| s[:active] }
11
+ end
12
+ end
13
+
14
+ def check_if_active(shape)
15
+ style = shape[:style]
16
+
17
+ ban = %w[
18
+ mxCompositeShape
19
+ strokeColor=none;fillColor=none
20
+ shape=image
21
+ shadow=1
22
+ shape=partialRectangle;right=0
23
+ shape=partialRectangle;right=0;left=0
24
+ ]
25
+
26
+ return false if style.empty?
27
+ return false if ban.include?(style)
28
+
29
+ true
30
+ end
31
+ end
32
+ end
@@ -23,13 +23,23 @@ module DrawioDsl
23
23
  page.position_y = page.margin_top
24
24
 
25
25
  page.nodes.all.each do |node|
26
- case node.classification
27
- when :layout_rule
28
- @current_layout = node
29
- when :shape
30
- current_layout&.position_shape(node)
31
- end
32
- # node.debug(format: :row)
26
+ traverse_node(node)
27
+ end
28
+ end
29
+
30
+ def traverse_node(node)
31
+ process_node(node)
32
+ node.nodes.all.each do |child|
33
+ traverse_node(child)
34
+ end
35
+ end
36
+
37
+ def process_node(node)
38
+ case node.classification
39
+ when :layout_rule
40
+ @current_layout = node
41
+ when :shape
42
+ current_layout&.position_shape(node)
33
43
  end
34
44
  end
35
45
  end
@@ -49,7 +49,7 @@ module DrawioDsl
49
49
  theme: theme,
50
50
  palette: palette.to_h,
51
51
  style: style.to_h,
52
- pages: pages.map(&:to_h)
52
+ pages: pages.select(&:active?).map(&:to_h)
53
53
  }
54
54
  end
55
55
  end
@@ -10,13 +10,12 @@ module DrawioDsl
10
10
  attr_reader :perpendicular_max
11
11
 
12
12
  def initialize(page, **args)
13
- @type = :flex_layout
14
13
  @direction = args[:direction] || :horizontal
15
14
  @wrap_at = args[:wrap_at] || (direction == :horizontal ? 1000 : 800)
16
15
  @gap = args[:gap] || 20
17
16
  @perpendicular_max = 0
18
17
 
19
- super(page, **args)
18
+ super(page, **args.merge(type: :flex_layout))
20
19
  end
21
20
 
22
21
  def position_shape(shape)
@@ -15,7 +15,6 @@ module DrawioDsl
15
15
 
16
16
  # rubocop:disable Metrics/CyclomaticComplexity
17
17
  def initialize(page, **args)
18
- @type = :grid_layout
19
18
  @direction = args[:direction] || :horizontal
20
19
  @wrap_at = args[:wrap_at] || 5
21
20
  @grid_size = args[:grid_size] || 220
@@ -25,7 +24,7 @@ module DrawioDsl
25
24
  @v_align = args[:v_align] || :center
26
25
  @cell_no = 1
27
26
 
28
- super(page, **args)
27
+ super(page, **args.merge(type: :grid_layout))
29
28
  end
30
29
  # rubocop:enable Metrics/CyclomaticComplexity
31
30
 
@@ -4,8 +4,6 @@ module DrawioDsl
4
4
  module Schema
5
5
  # Provides base configuration for automatic layouts
6
6
  class Layout < Node
7
- attr_accessor :type
8
-
9
7
  # represents the x coordinate of the top left corner layout area
10
8
  # this coordinate is based on the current location of the page
11
9
  attr_accessor :anchor_x
@@ -31,7 +29,6 @@ module DrawioDsl
31
29
 
32
30
  def to_h
33
31
  super.merge(
34
- type: type,
35
32
  anchor_x: anchor_x,
36
33
  anchor_y: anchor_y
37
34
  )
@@ -9,23 +9,36 @@ module DrawioDsl
9
9
  attr_accessor :page
10
10
  attr_accessor :parent
11
11
  attr_accessor :classification
12
+ attr_accessor :type
13
+ attr_accessor :nodes
12
14
 
13
15
  def initialize(page, **args)
14
16
  @page = page
15
17
  @id = args[:id]
16
18
  @parent = args[:parent]
17
19
  @classification = args[:classification] || :unknown
20
+ @type = args[:type] || :unknown
21
+ @nodes = NodeList.new
18
22
  end
19
23
 
20
24
  def to_h
21
- {
25
+ result = {
22
26
  id: id,
23
- classification: classification
27
+ parent_id: parent&.id,
28
+ classification: classification,
29
+ type: type
24
30
  }
31
+ result[:nodes] = nodes.to_h if nodes.any?
32
+ result
25
33
  end
26
34
 
27
35
  def root?
28
- parent.nil?
36
+ parent.nil? || parent.is_a?(DrawioDsl::Schema::Page)
37
+ end
38
+
39
+ def add_node(node)
40
+ @nodes.add(self, node)
41
+ node
29
42
  end
30
43
 
31
44
  # :nocov:
@@ -9,7 +9,8 @@ module DrawioDsl
9
9
  @nodes = []
10
10
  end
11
11
 
12
- def add(node)
12
+ def add(parent, node)
13
+ node.parent = parent
13
14
  @nodes << node
14
15
  end
15
16
 
@@ -29,6 +30,24 @@ module DrawioDsl
29
30
  @nodes.length
30
31
  end
31
32
 
33
+ def empty?
34
+ @nodes.empty?
35
+ end
36
+
37
+ def any?
38
+ @nodes.any?
39
+ end
40
+
41
+ def first
42
+ @nodes.first
43
+ end
44
+
45
+ def as_xml(xml)
46
+ nodes.each do |node|
47
+ node.as_xml(xml) if node.respond_to?(:as_xml)
48
+ end
49
+ end
50
+
32
51
  def to_h
33
52
  @nodes.map(&:to_h)
34
53
  end
@@ -11,6 +11,7 @@ module DrawioDsl
11
11
  attr_accessor :position_y
12
12
 
13
13
  attr_accessor :id
14
+ attr_accessor :active
14
15
  attr_reader :name
15
16
  attr_reader :theme
16
17
  attr_reader :style
@@ -39,6 +40,7 @@ module DrawioDsl
39
40
  @diagram = diagram
40
41
 
41
42
  @id = args[:id]
43
+ @active = args[:active].nil? ? true : !args[:active].nil?
42
44
  @name = args[:name]
43
45
  @theme = args[:theme] || diagram.theme
44
46
 
@@ -87,16 +89,21 @@ module DrawioDsl
87
89
  end
88
90
 
89
91
  @nodes = NodeList.new # []
90
-
91
- # add anchor nodes
92
- @nodes.add(DrawioDsl::Schema::Anchor.new(self, id: "page_root_#{id}"))
93
- @nodes.add(DrawioDsl::Schema::Anchor.new(self, id: "node_root_#{id}"))
94
92
  end
95
93
  # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/MethodLength
96
94
 
97
- # def shapes
98
- # nodes.shapes
99
- # end
95
+ def active?
96
+ !!@active
97
+ end
98
+
99
+ def add_node(node)
100
+ @nodes.add(self, node)
101
+ node
102
+ end
103
+
104
+ def as_xml(xml)
105
+ nodes.as_xml(xml)
106
+ end
100
107
 
101
108
  def to_h
102
109
  {
@@ -37,7 +37,6 @@ module DrawioDsl
37
37
  attr_accessor :font_color
38
38
  attr_accessor :gradient
39
39
 
40
- attr_accessor :type
41
40
  attr_accessor :text_only
42
41
  attr_accessor :x
43
42
  attr_accessor :y
@@ -85,7 +84,6 @@ module DrawioDsl
85
84
 
86
85
  def style
87
86
  key_values = []
88
- key_values << style_modifiers unless style_modifiers.empty?
89
87
  key_values << "whiteSpace=#{white_space}" if white_space
90
88
  key_values << "html=#{html}" if html
91
89
  key_values << "rounded=#{rounded}" if rounded
@@ -96,20 +94,22 @@ module DrawioDsl
96
94
  key_values << "strokeColor=#{stroke_color}" if stroke_color
97
95
  key_values << "fontColor=#{font_color}" if font_color
98
96
  key_values << "gradient=#{gradient}" if gradient
97
+ key_values << style_modifiers unless style_modifiers.empty?
99
98
 
100
99
  key_values.join(';')
101
100
  end
102
101
  # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
103
102
 
104
103
  def as_xml(xml)
105
- xml.mxCell(id: id, value: title, style: style, vertex: 1, parent: "#{page.id}-B") do
104
+ xml.mxCell(id: id, value: title, style: style, vertex: 1, parent: parent&.id) do
106
105
  xml.mxGeometry(x: x, y: y, width: w, height: h, as: 'geometry')
107
106
  end
108
107
  end
109
108
 
110
109
  def to_h
111
- {
110
+ result = {
112
111
  id: id,
112
+ parent_id: parent&.id,
113
113
  classification: classification,
114
114
  type: type,
115
115
  x: x,
@@ -118,6 +118,8 @@ module DrawioDsl
118
118
  h: h,
119
119
  style: style
120
120
  }
121
+ result[:nodes] = nodes.to_h if nodes.any?
122
+ result
121
123
  end
122
124
 
123
125
  # :nocov:
@@ -18,6 +18,8 @@ module DrawioDsl
18
18
  else
19
19
  xml.mxCell(id: id)
20
20
  end
21
+
22
+ nodes.as_xml(xml)
21
23
  end
22
24
  end
23
25
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DrawioDsl
4
- VERSION = '0.5.7'
4
+ VERSION = '0.6.0'
5
5
  end
@@ -22,13 +22,13 @@ module DrawioDsl
22
22
 
23
23
  def build_diagram(xml)
24
24
  xml.mxfile(host: diagram.host) do
25
- diagram.pages.each do |page|
25
+ diagram.pages.select(&:active?).each do |page|
26
26
  build_page(xml, page)
27
27
  end
28
28
  end
29
29
  end
30
30
 
31
- # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
31
+ # rubocop:disable Metrics/AbcSize
32
32
  def build_page(xml, page)
33
33
  xml.diagram(id: page.id, name: page.name) do
34
34
  xml.mxGraphModel(
@@ -50,16 +50,11 @@ module DrawioDsl
50
50
  shadow: page.page_shadow
51
51
  ) do
52
52
  xml.root do
53
- # xml.mxCell(id: "#{page.id}-A")
54
- # xml.mxCell(id: "#{page.id}-B", parent: "#{page.id}-A")
55
- page.nodes.all.each do |node|
56
- # puts node.classification
57
- node.as_xml(xml) if %i[shape anchor].include?(node.classification)
58
- end
53
+ page.as_xml(xml)
59
54
  end
60
55
  end
61
56
  end
62
57
  end
63
- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
58
+ # rubocop:enable Metrics/AbcSize
64
59
  end
65
60
  end
data/lib/drawio_dsl.rb CHANGED
@@ -18,6 +18,8 @@ require_relative 'drawio_dsl/dom_builder'
18
18
  require_relative 'drawio_dsl/xml_builder'
19
19
  require_relative 'drawio_dsl/layout_engine'
20
20
  require_relative 'drawio_dsl/drawio_shapes'
21
+ require_relative 'drawio_dsl/drawio_extensions_active'
22
+ require_relative 'drawio_dsl/drawio_extensions'
21
23
  require_relative 'drawio_dsl/drawio'
22
24
 
23
25
  module DrawioDsl
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.5.7",
3
+ "version": "0.6.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "drawio_dsl",
9
- "version": "0.5.7",
9
+ "version": "0.6.0",
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.5.7",
3
+ "version": "0.6.0",
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.5.7
4
+ version: 0.6.0
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-09 00:00:00.000000000 Z
11
+ date: 2022-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: k_config
@@ -76,6 +76,7 @@ files:
76
76
  - ".builders/.data/shapes.json"
77
77
  - ".builders/.templates/basic/configuration_shapes.rb"
78
78
  - ".builders/.templates/basic/dom_builder_shapes.rb"
79
+ - ".builders/.templates/basic/drawio_extensions.rb"
79
80
  - ".builders/.templates/basic/drawio_shapes.rb"
80
81
  - ".builders/.templates/basic/schema_require.rb"
81
82
  - ".builders/.templates/basic/schema_shape.rb"
@@ -85,6 +86,8 @@ files:
85
86
  - ".builders/boot.rb"
86
87
  - ".builders/generators/01-bootstrap.rb"
87
88
  - ".builders/generators/02-generate-app.rb"
89
+ - ".builders/generators/10-transform-drawio-js.rb"
90
+ - ".builders/generators/20-drawio-extensions.rb"
88
91
  - ".builders/generators/project_plans/drawio_dsl.rb"
89
92
  - ".builders/generators/project_plans/k_doc.rb"
90
93
  - ".builders/generators/sample_diagrams/05-samples.rb"
@@ -107,6 +110,160 @@ files:
107
110
  - Rakefile
108
111
  - bin/console
109
112
  - bin/setup
113
+ - docs/extensions.md
114
+ - docs/extensions/analyti_cs.svg
115
+ - docs/extensions/android_inputs.svg
116
+ - docs/extensions/app_services.svg
117
+ - docs/extensions/appliances.svg
118
+ - docs/extensions/arrows.svg
119
+ - docs/extensions/aws_17___analyti_cs.svg
120
+ - docs/extensions/aws_17___application_services.svg
121
+ - docs/extensions/aws_17___artificial_intelligence.svg
122
+ - docs/extensions/aws_17___business_productivity.svg
123
+ - docs/extensions/aws_17___compute.svg
124
+ - docs/extensions/aws_17___contact_center.svg
125
+ - docs/extensions/aws_17___containers.svg
126
+ - docs/extensions/aws_17___database.svg
127
+ - docs/extensions/aws_17___desktop_app_straning.svg
128
+ - docs/extensions/aws_17___developer_tools.svg
129
+ - docs/extensions/aws_17___game_development.svg
130
+ - docs/extensions/aws_17___general.svg
131
+ - docs/extensions/aws_17___io_t.svg
132
+ - docs/extensions/aws_17___management.svg
133
+ - docs/extensions/aws_17___messaging.svg
134
+ - docs/extensions/aws_17___migration.svg
135
+ - docs/extensions/aws_17___mobile_services.svg
136
+ - docs/extensions/aws_17___networking_content_delivery.svg
137
+ - docs/extensions/aws_17___on_demand_workforce.svg
138
+ - docs/extensions/aws_17___sdks.svg
139
+ - docs/extensions/aws_17___serurity_identity_and_compliance.svg
140
+ - docs/extensions/aws_17___storage.svg
141
+ - docs/extensions/aws_19___application_integration.svg
142
+ - docs/extensions/aws_19___ar_vr.svg
143
+ - docs/extensions/aws_19___blockchain.svg
144
+ - docs/extensions/aws_19___business_applications.svg
145
+ - docs/extensions/aws_19___compute.svg
146
+ - docs/extensions/aws_19___cost_management.svg
147
+ - docs/extensions/aws_19___customer_engagement.svg
148
+ - docs/extensions/aws_19___database.svg
149
+ - docs/extensions/aws_19___desktop_app_streaming.svg
150
+ - docs/extensions/aws_19___developer_tools.svg
151
+ - docs/extensions/aws_19___ec2_instance_types.svg
152
+ - docs/extensions/aws_19___game_tech.svg
153
+ - docs/extensions/aws_19___general.svg
154
+ - docs/extensions/aws_19___groups_note_repeated_below_without_v2.svg
155
+ - docs/extensions/aws_19___internet_of_things.svg
156
+ - docs/extensions/aws_19___machine_learning.svg
157
+ - docs/extensions/aws_19___management_governance.svg
158
+ - docs/extensions/aws_19___media_services.svg
159
+ - docs/extensions/aws_19___migration_transfer.svg
160
+ - docs/extensions/aws_19___mobile.svg
161
+ - docs/extensions/aws_19___networking_content_delivery.svg
162
+ - docs/extensions/aws_19___roboti_cs.svg
163
+ - docs/extensions/aws_19___satellite.svg
164
+ - docs/extensions/aws_19___security_identity_compliance.svg
165
+ - docs/extensions/aws_19___storage.svg
166
+ - docs/extensions/aws_19_analyti_cs.svg
167
+ - docs/extensions/aws_general.svg
168
+ - docs/extensions/azure2019.svg
169
+ - docs/extensions/azure_cloud.svg
170
+ - docs/extensions/azure_enterprise.svg
171
+ - docs/extensions/azure_vms.svg
172
+ - docs/extensions/basic_network_shapes.svg
173
+ - docs/extensions/beds.svg
174
+ - docs/extensions/bpmn_2_0.svg
175
+ - docs/extensions/cisco_basic.svg
176
+ - docs/extensions/cisco_extended.svg
177
+ - docs/extensions/common_elements.svg
178
+ - docs/extensions/computers_and_monitors.svg
179
+ - docs/extensions/containers.svg
180
+ - docs/extensions/content_delivery.svg
181
+ - docs/extensions/couches.svg
182
+ - docs/extensions/cubicle_walls.svg
183
+ - docs/extensions/data_flow.svg
184
+ - docs/extensions/database.svg
185
+ - docs/extensions/deployment.svg
186
+ - docs/extensions/desks.svg
187
+ - docs/extensions/detailed_network_diagrams.svg
188
+ - docs/extensions/developer_tools.svg
189
+ - docs/extensions/doors_windows.svg
190
+ - docs/extensions/ec2.svg
191
+ - docs/extensions/electrical.svg
192
+ - docs/extensions/electroni_cs.svg
193
+ - docs/extensions/enterprise_application.svg
194
+ - docs/extensions/equipment.svg
195
+ - docs/extensions/ext_shapes.svg
196
+ - docs/extensions/flowchart.svg
197
+ - docs/extensions/geometric_shapes.svg
198
+ - docs/extensions/google_cloud_platform.svg
199
+ - docs/extensions/heat_exchangers.svg
200
+ - docs/extensions/i_os_6_i_pad_controls.svg
201
+ - docs/extensions/i_os_6_i_pad_elements.svg
202
+ - docs/extensions/i_os_6_i_pad_icons.svg
203
+ - docs/extensions/i_os_6_i_phone_controls.svg
204
+ - docs/extensions/i_os_6_i_phone_elements.svg
205
+ - docs/extensions/i_os_6_i_phone_icons.svg
206
+ - docs/extensions/i_os_devices.svg
207
+ - docs/extensions/i_os_icons.svg
208
+ - docs/extensions/i_os_mockups.svg
209
+ - docs/extensions/i_os_ui_components.svg
210
+ - docs/extensions/i_pad_elements.svg
211
+ - docs/extensions/i_phone_elements.svg
212
+ - docs/extensions/information.svg
213
+ - docs/extensions/instruments.svg
214
+ - docs/extensions/internet_of_things.svg
215
+ - docs/extensions/kanban.svg
216
+ - docs/extensions/kitchen.svg
217
+ - docs/extensions/kubernetes_icons.svg
218
+ - docs/extensions/logic_gates.svg
219
+ - docs/extensions/materials.svg
220
+ - docs/extensions/message_routing.svg
221
+ - docs/extensions/message_transformation.svg
222
+ - docs/extensions/messaging_channels.svg
223
+ - docs/extensions/messaging_endpoints.svg
224
+ - docs/extensions/messaging_systems.svg
225
+ - docs/extensions/mind_map.svg
226
+ - docs/extensions/misc.svg
227
+ - docs/extensions/misc_floorplan.svg
228
+ - docs/extensions/miscellaneous.svg
229
+ - docs/extensions/mobile_services.svg
230
+ - docs/extensions/network.svg
231
+ - docs/extensions/networking.svg
232
+ - docs/extensions/on_demand.svg
233
+ - docs/extensions/piping.svg
234
+ - docs/extensions/power_sources.svg
235
+ - docs/extensions/processes.svg
236
+ - docs/extensions/pumps.svg
237
+ - docs/extensions/repeated_from_the_above.svg
238
+ - docs/extensions/restroom.svg
239
+ - docs/extensions/s3.svg
240
+ - docs/extensions/sdks.svg
241
+ - docs/extensions/security_identity.svg
242
+ - docs/extensions/server_racks.svg
243
+ - docs/extensions/shipments.svg
244
+ - docs/extensions/site_map.svg
245
+ - docs/extensions/stairs.svg
246
+ - docs/extensions/standard.svg
247
+ - docs/extensions/system_management.svg
248
+ - docs/extensions/tables_chairs.svg
249
+ - docs/extensions/technology.svg
250
+ - docs/extensions/transistors.svg
251
+ - docs/extensions/ui_containers.svg
252
+ - docs/extensions/ui_input.svg
253
+ - docs/extensions/ui_menus.svg
254
+ - docs/extensions/ui_misc.svg
255
+ - docs/extensions/ui_widgets.svg
256
+ - docs/extensions/uml_class_diagram.svg
257
+ - docs/extensions/uml_component.svg
258
+ - docs/extensions/uml_entity_relationship.svg
259
+ - docs/extensions/uml_sequence.svg
260
+ - docs/extensions/uml_state_activity.svg
261
+ - docs/extensions/uml_use_case.svg
262
+ - docs/extensions/value_stream_mapping.svg
263
+ - docs/extensions/valves.svg
264
+ - docs/extensions/venn_gradient.svg
265
+ - docs/extensions/venn_plain.svg
266
+ - docs/extensions/vessels.svg
110
267
  - docs/project-plan.md
111
268
  - docs/project_done.svg
112
269
  - docs/project_in_progress.svg
@@ -134,6 +291,9 @@ files:
134
291
  - lib/drawio_dsl/dom_builder.rb
135
292
  - lib/drawio_dsl/dom_builder_shapes.rb
136
293
  - lib/drawio_dsl/drawio.rb
294
+ - lib/drawio_dsl/drawio_extensions.json
295
+ - lib/drawio_dsl/drawio_extensions.rb
296
+ - lib/drawio_dsl/drawio_extensions_active.rb
137
297
  - lib/drawio_dsl/drawio_shapes.rb
138
298
  - lib/drawio_dsl/layout_engine.rb
139
299
  - lib/drawio_dsl/schema/_.rb