@eccenca/gui-elements 22.0.1 → 22.1.0-rc.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 (269) hide show
  1. package/CHANGELOG.md +20 -4
  2. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js +18 -14
  3. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  4. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js +58 -30
  5. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  6. package/dist/cjs/cmem/ActivityControl/index.js +11 -0
  7. package/dist/cjs/cmem/ActivityControl/index.js.map +1 -0
  8. package/dist/cjs/cmem/ContentBlobToggler/index.js +8 -0
  9. package/dist/cjs/cmem/ContentBlobToggler/index.js.map +1 -0
  10. package/dist/cjs/cmem/index.js +14 -13
  11. package/dist/cjs/cmem/index.js.map +1 -1
  12. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js +57 -0
  13. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -0
  14. package/dist/cjs/cmem/react-flow/configuration/_colors-graph.module.scss +35 -0
  15. package/dist/cjs/cmem/react-flow/configuration/_colors-linking.module.scss +29 -0
  16. package/dist/cjs/cmem/react-flow/configuration/_colors-workflow.module.scss +22 -0
  17. package/dist/cjs/cmem/react-flow/configuration/graph.js +31 -0
  18. package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -0
  19. package/dist/cjs/cmem/react-flow/configuration/linking.js +29 -0
  20. package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -0
  21. package/dist/cjs/cmem/react-flow/configuration/unspecified.js +15 -0
  22. package/dist/cjs/cmem/react-flow/configuration/unspecified.js.map +1 -0
  23. package/dist/cjs/cmem/react-flow/configuration/workflow.js +27 -0
  24. package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -0
  25. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +285 -0
  26. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -0
  27. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js +81 -0
  28. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -0
  29. package/dist/cjs/components/AutoSuggestion/SingleLineCodeEditor.js +46 -0
  30. package/dist/cjs/components/AutoSuggestion/SingleLineCodeEditor.js.map +1 -0
  31. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +8 -12
  32. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  33. package/dist/cjs/components/Button/Button.js.map +1 -1
  34. package/dist/cjs/components/ContextOverlay/ContextMenu.js +1 -1
  35. package/dist/cjs/components/ContextOverlay/ContextMenu.js.map +1 -1
  36. package/dist/cjs/components/Dialog/Modal.js +2 -2
  37. package/dist/cjs/components/Dialog/Modal.js.map +1 -1
  38. package/dist/cjs/components/Dialog/SimpleDialog.js.map +1 -1
  39. package/dist/cjs/components/Icon/Icon.js.map +1 -1
  40. package/dist/cjs/components/Icon/canonicalIconNames.js +30 -0
  41. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  42. package/dist/cjs/components/MultiSelect/MultiSelect.js +219 -0
  43. package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -0
  44. package/dist/cjs/components/Tabs/Tab.js +95 -0
  45. package/dist/cjs/components/Tabs/Tab.js.map +1 -0
  46. package/dist/cjs/components/Tabs/TabTitle.js +20 -0
  47. package/dist/cjs/components/Tabs/TabTitle.js.map +1 -0
  48. package/dist/cjs/components/Tabs/Tabs.js +29 -19
  49. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  50. package/dist/cjs/components/Tag/Tag.js +7 -1
  51. package/dist/cjs/components/Tag/Tag.js.map +1 -1
  52. package/dist/cjs/extensions/react-flow/edges/utils.js +96 -4
  53. package/dist/cjs/extensions/react-flow/edges/utils.js.map +1 -1
  54. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +5 -4
  55. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  56. package/dist/cjs/extensions/react-flow/nodes/NodeContentExtension.js +2 -2
  57. package/dist/cjs/extensions/react-flow/nodes/NodeContentExtension.js.map +1 -1
  58. package/dist/cjs/extensions/react-flow/nodes/NodeTools.js.map +1 -1
  59. package/dist/cjs/index.js +17 -2
  60. package/dist/cjs/index.js.map +1 -1
  61. package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js +25 -0
  62. package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js.map +1 -0
  63. package/dist/cjs/legacy-replacements/Button/Button.js +61 -0
  64. package/dist/cjs/legacy-replacements/Button/Button.js.map +1 -0
  65. package/dist/cjs/legacy-replacements/Button/DismissiveButton.js +25 -0
  66. package/dist/cjs/legacy-replacements/Button/DismissiveButton.js.map +1 -0
  67. package/dist/cjs/legacy-replacements/Button/DisruptiveButton.js +25 -0
  68. package/dist/cjs/legacy-replacements/Button/DisruptiveButton.js.map +1 -0
  69. package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js +55 -0
  70. package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js.map +1 -0
  71. package/dist/cjs/legacy-replacements/Radio/RadioButton.js +48 -0
  72. package/dist/cjs/legacy-replacements/Radio/RadioButton.js.map +1 -0
  73. package/dist/cjs/legacy-replacements/Tabs/Tabs.js +36 -0
  74. package/dist/cjs/legacy-replacements/Tabs/Tabs.js.map +1 -0
  75. package/dist/cjs/legacy-replacements/TextField/TextField.js +75 -0
  76. package/dist/cjs/legacy-replacements/TextField/TextField.js.map +1 -0
  77. package/dist/cjs/legacy-replacements/index.js +22 -0
  78. package/dist/cjs/legacy-replacements/index.js.map +1 -0
  79. package/dist/es5/cmem/ActivityControl/ActivityControlWidget.js +19 -15
  80. package/dist/es5/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  81. package/dist/es5/cmem/ActivityControl/SilkActivityControl.js +56 -30
  82. package/dist/es5/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  83. package/dist/es5/cmem/ActivityControl/index.js +4 -0
  84. package/dist/es5/cmem/ActivityControl/index.js.map +1 -0
  85. package/dist/es5/cmem/ContentBlobToggler/index.js +3 -0
  86. package/dist/es5/cmem/ContentBlobToggler/index.js.map +1 -0
  87. package/dist/es5/cmem/index.js +6 -8
  88. package/dist/es5/cmem/index.js.map +1 -1
  89. package/dist/es5/cmem/react-flow/ReactFlow/ReactFlow.js +43 -0
  90. package/dist/es5/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -0
  91. package/dist/es5/cmem/react-flow/configuration/_colors-graph.module.scss +35 -0
  92. package/dist/es5/cmem/react-flow/configuration/_colors-linking.module.scss +29 -0
  93. package/dist/es5/cmem/react-flow/configuration/_colors-workflow.module.scss +22 -0
  94. package/dist/es5/cmem/react-flow/configuration/graph.js +23 -0
  95. package/dist/es5/cmem/react-flow/configuration/graph.js.map +1 -0
  96. package/dist/es5/cmem/react-flow/configuration/linking.js +21 -0
  97. package/dist/es5/cmem/react-flow/configuration/linking.js.map +1 -0
  98. package/dist/es5/cmem/react-flow/configuration/unspecified.js +12 -0
  99. package/dist/es5/cmem/react-flow/configuration/unspecified.js.map +1 -0
  100. package/dist/es5/cmem/react-flow/configuration/workflow.js +19 -0
  101. package/dist/es5/cmem/react-flow/configuration/workflow.js.map +1 -0
  102. package/dist/es5/components/AutoSuggestion/AutoSuggestion.js +347 -0
  103. package/dist/es5/components/AutoSuggestion/AutoSuggestion.js.map +1 -0
  104. package/dist/es5/components/AutoSuggestion/AutoSuggestionList.js +93 -0
  105. package/dist/es5/components/AutoSuggestion/AutoSuggestionList.js.map +1 -0
  106. package/dist/es5/components/AutoSuggestion/SingleLineCodeEditor.js +42 -0
  107. package/dist/es5/components/AutoSuggestion/SingleLineCodeEditor.js.map +1 -0
  108. package/dist/es5/components/AutocompleteField/AutoCompleteField.js +8 -12
  109. package/dist/es5/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  110. package/dist/es5/components/Button/Button.js.map +1 -1
  111. package/dist/es5/components/ContextOverlay/ContextMenu.js +1 -1
  112. package/dist/es5/components/ContextOverlay/ContextMenu.js.map +1 -1
  113. package/dist/es5/components/Dialog/Modal.js +2 -2
  114. package/dist/es5/components/Dialog/Modal.js.map +1 -1
  115. package/dist/es5/components/Dialog/SimpleDialog.js.map +1 -1
  116. package/dist/es5/components/Icon/Icon.js.map +1 -1
  117. package/dist/es5/components/Icon/canonicalIconNames.js +30 -0
  118. package/dist/es5/components/Icon/canonicalIconNames.js.map +1 -1
  119. package/dist/es5/components/MultiSelect/MultiSelect.js +301 -0
  120. package/dist/es5/components/MultiSelect/MultiSelect.js.map +1 -0
  121. package/dist/es5/components/Tabs/Tab.js +98 -0
  122. package/dist/es5/components/Tabs/Tab.js.map +1 -0
  123. package/dist/es5/components/Tabs/TabTitle.js +16 -0
  124. package/dist/es5/components/Tabs/TabTitle.js.map +1 -0
  125. package/dist/es5/components/Tabs/Tabs.js +11 -21
  126. package/dist/es5/components/Tabs/Tabs.js.map +1 -1
  127. package/dist/es5/components/Tag/Tag.js +7 -1
  128. package/dist/es5/components/Tag/Tag.js.map +1 -1
  129. package/dist/es5/extensions/react-flow/edges/utils.js +99 -5
  130. package/dist/es5/extensions/react-flow/edges/utils.js.map +1 -1
  131. package/dist/es5/extensions/react-flow/nodes/NodeContent.js +21 -4
  132. package/dist/es5/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  133. package/dist/es5/extensions/react-flow/nodes/NodeContentExtension.js +2 -2
  134. package/dist/es5/extensions/react-flow/nodes/NodeContentExtension.js.map +1 -1
  135. package/dist/es5/extensions/react-flow/nodes/NodeTools.js.map +1 -1
  136. package/dist/es5/index.js +9 -2
  137. package/dist/es5/index.js.map +1 -1
  138. package/dist/es5/legacy-replacements/Button/AffirmativeButton.js +29 -0
  139. package/dist/es5/legacy-replacements/Button/AffirmativeButton.js.map +1 -0
  140. package/dist/es5/legacy-replacements/Button/Button.js +65 -0
  141. package/dist/es5/legacy-replacements/Button/Button.js.map +1 -0
  142. package/dist/es5/legacy-replacements/Button/DismissiveButton.js +29 -0
  143. package/dist/es5/legacy-replacements/Button/DismissiveButton.js.map +1 -0
  144. package/dist/es5/legacy-replacements/Button/DisruptiveButton.js +29 -0
  145. package/dist/es5/legacy-replacements/Button/DisruptiveButton.js.map +1 -0
  146. package/dist/es5/legacy-replacements/Checkbox/Checkbox.js +59 -0
  147. package/dist/es5/legacy-replacements/Checkbox/Checkbox.js.map +1 -0
  148. package/dist/es5/legacy-replacements/Radio/RadioButton.js +52 -0
  149. package/dist/es5/legacy-replacements/Radio/RadioButton.js.map +1 -0
  150. package/dist/es5/legacy-replacements/Tabs/Tabs.js +40 -0
  151. package/dist/es5/legacy-replacements/Tabs/Tabs.js.map +1 -0
  152. package/dist/es5/legacy-replacements/TextField/TextField.js +81 -0
  153. package/dist/es5/legacy-replacements/TextField/TextField.js.map +1 -0
  154. package/dist/es5/legacy-replacements/index.js +10 -0
  155. package/dist/es5/legacy-replacements/index.js.map +1 -0
  156. package/dist/types/cmem/ActivityControl/ActivityControlTypes.d.ts +2 -1
  157. package/dist/types/cmem/ActivityControl/ActivityControlWidget.d.ts +39 -2
  158. package/dist/types/cmem/ActivityControl/SilkActivityControl.d.ts +16 -3
  159. package/dist/types/cmem/ActivityControl/index.d.ts +3 -0
  160. package/dist/types/cmem/ContentBlobToggler/index.d.ts +2 -0
  161. package/dist/types/cmem/index.d.ts +8 -8
  162. package/dist/types/cmem/react-flow/ReactFlow/ReactFlow.d.ts +14 -0
  163. package/dist/types/cmem/react-flow/configuration/graph.d.ts +21 -0
  164. package/dist/types/cmem/react-flow/configuration/linking.d.ts +19 -0
  165. package/dist/types/cmem/react-flow/configuration/unspecified.d.ts +9 -0
  166. package/dist/types/cmem/react-flow/configuration/workflow.d.ts +17 -0
  167. package/dist/types/components/AutoSuggestion/AutoSuggestion.d.ts +67 -0
  168. package/dist/types/components/AutoSuggestion/AutoSuggestionList.d.ts +13 -0
  169. package/dist/types/components/AutoSuggestion/SingleLineCodeEditor.d.ts +25 -0
  170. package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +8 -7
  171. package/dist/types/components/Button/Button.d.ts +3 -2
  172. package/dist/types/components/ContextOverlay/ContextMenu.d.ts +6 -1
  173. package/dist/types/components/Dialog/Modal.d.ts +4 -3
  174. package/dist/types/components/Dialog/SimpleDialog.d.ts +2 -0
  175. package/dist/types/components/Icon/Icon.d.ts +2 -2
  176. package/dist/types/components/Icon/IconButton.d.ts +1 -1
  177. package/dist/types/components/Icon/canonicalIconNames.d.ts +1 -1
  178. package/dist/types/components/MultiSelect/MultiSelect.d.ts +79 -0
  179. package/dist/types/components/Tabs/Tab.d.ts +549 -0
  180. package/dist/types/components/Tabs/TabTitle.d.ts +38 -0
  181. package/dist/types/components/Tabs/Tabs.d.ts +14 -20
  182. package/dist/types/components/Tag/Tag.d.ts +1 -1
  183. package/dist/types/extensions/react-flow/edges/utils.d.ts +1 -1
  184. package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +8 -8
  185. package/dist/types/extensions/react-flow/nodes/NodeDefault.d.ts +2 -2
  186. package/dist/types/extensions/react-flow/nodes/NodeTools.d.ts +2 -1
  187. package/dist/types/extensions/react-flow/nodes/nodeTypes.d.ts +10 -10
  188. package/dist/types/index.d.ts +9 -2
  189. package/dist/types/legacy-replacements/Button/AffirmativeButton.d.ts +2 -0
  190. package/dist/types/legacy-replacements/Button/Button.d.ts +5 -0
  191. package/dist/types/legacy-replacements/Button/DismissiveButton.d.ts +2 -0
  192. package/dist/types/legacy-replacements/Button/DisruptiveButton.d.ts +2 -0
  193. package/dist/types/legacy-replacements/Checkbox/Checkbox.d.ts +2 -0
  194. package/dist/types/legacy-replacements/Radio/RadioButton.d.ts +2 -0
  195. package/dist/types/legacy-replacements/Tabs/Tabs.d.ts +22 -0
  196. package/dist/types/legacy-replacements/TextField/TextField.d.ts +2 -0
  197. package/dist/types/legacy-replacements/index.d.ts +10 -0
  198. package/package.json +16 -7
  199. package/src/cmem/ActivityControl/ActivityControlTypes.ts +3 -1
  200. package/src/cmem/ActivityControl/ActivityControlWidget.stories.tsx +98 -0
  201. package/src/cmem/ActivityControl/ActivityControlWidget.tsx +131 -89
  202. package/src/cmem/ActivityControl/SilkActivityControl.tsx +178 -120
  203. package/src/cmem/ActivityControl/index.ts +3 -0
  204. package/src/cmem/ContentBlobToggler/index.ts +2 -0
  205. package/src/cmem/_index.scss +6 -0
  206. package/src/cmem/index.ts +10 -23
  207. package/src/cmem/react-flow/ReactFlow/ReactFlow.stories.tsx +222 -0
  208. package/src/cmem/react-flow/ReactFlow/ReactFlow.tsx +40 -0
  209. package/src/cmem/react-flow/_edges.scss +23 -0
  210. package/src/cmem/react-flow/_handles.scss +34 -0
  211. package/src/cmem/react-flow/_index.scss +5 -0
  212. package/src/cmem/react-flow/_minimap.scss +33 -0
  213. package/src/cmem/react-flow/_nodes.scss +60 -0
  214. package/src/cmem/react-flow/configuration/_colors-graph.module.scss +35 -0
  215. package/src/cmem/react-flow/configuration/_colors-linking.module.scss +29 -0
  216. package/src/cmem/react-flow/configuration/_colors-workflow.module.scss +22 -0
  217. package/src/cmem/react-flow/configuration/_colors.scss +3 -0
  218. package/src/cmem/react-flow/configuration/graph.ts +29 -0
  219. package/src/cmem/react-flow/configuration/linking.ts +28 -0
  220. package/src/cmem/react-flow/configuration/unspecified.ts +13 -0
  221. package/src/cmem/react-flow/configuration/workflow.ts +25 -0
  222. package/src/components/AutoSuggestion/AutoSuggestion.scss +100 -0
  223. package/src/components/AutoSuggestion/AutoSuggestion.tsx +447 -0
  224. package/src/components/AutoSuggestion/AutoSuggestionList.tsx +170 -0
  225. package/src/components/AutoSuggestion/SingleLineCodeEditor.tsx +97 -0
  226. package/src/components/AutoSuggestion/tests/AutoSuggestion.test.tsx +37 -0
  227. package/src/components/AutoSuggestion/tests/AutoSuggestionList.test.tsx +124 -0
  228. package/src/components/AutoSuggestion/tests/SingleLineCodeEditor.test.tsx +55 -0
  229. package/src/components/AutocompleteField/AutoCompleteField.tsx +19 -19
  230. package/src/components/AutocompleteField/autoCompleteFieldUtils.tsx +2 -1
  231. package/src/components/Button/Button.tsx +3 -2
  232. package/src/components/ContextOverlay/ContextMenu.tsx +8 -2
  233. package/src/components/Dialog/Modal.tsx +9 -2
  234. package/src/components/Dialog/SimpleDialog.tsx +2 -0
  235. package/src/components/Icon/Icon.tsx +4 -4
  236. package/src/components/Icon/IconButton.tsx +1 -1
  237. package/src/components/Icon/canonicalIconNames.tsx +39 -2
  238. package/src/components/MultiSelect/MultiSelect.stories.tsx +63 -0
  239. package/src/components/MultiSelect/MultiSelect.tsx +370 -0
  240. package/src/components/Tabs/Tab.tsx +112 -0
  241. package/src/components/Tabs/TabTitle.tsx +71 -0
  242. package/src/components/Tabs/Tabs.tsx +26 -90
  243. package/src/components/Tabs/stories/Tab.stories.tsx +65 -0
  244. package/src/components/Tabs/stories/TabTitle.stories.tsx +35 -0
  245. package/src/components/Tabs/stories/Tabs.stories.tsx +98 -0
  246. package/src/components/Tabs/tabs.scss +11 -4
  247. package/src/components/Tag/Tag.tsx +10 -3
  248. package/src/components/Tag/tag.scss +1 -1
  249. package/src/components/TextField/TextField.tsx +1 -1
  250. package/src/configuration/_variables.scss +3 -3
  251. package/src/extensions/react-flow/_config.scss +2 -2
  252. package/src/extensions/react-flow/edges/_edges.scss +3 -28
  253. package/src/extensions/react-flow/edges/utils.ts +139 -4
  254. package/src/extensions/react-flow/handles/_handles.scss +4 -58
  255. package/src/extensions/react-flow/minimap/_minimap.scss +0 -45
  256. package/src/extensions/react-flow/nodes/NodeContent.tsx +134 -133
  257. package/src/extensions/react-flow/nodes/NodeContentExtension.tsx +11 -10
  258. package/src/extensions/react-flow/nodes/NodeDefault.tsx +2 -2
  259. package/src/extensions/react-flow/nodes/NodeTools.tsx +2 -1
  260. package/src/extensions/react-flow/nodes/_nodes.scss +31 -185
  261. package/src/extensions/react-flow/nodes/{NodeContent.stories.tsx → stories/NodeContent.stories.tsx} +4 -4
  262. package/src/extensions/react-flow/nodes/{NodeContentExtension.stories.tsx → stories/NodeContentExtension.stories.tsx} +4 -4
  263. package/src/extensions/react-flow/nodes/{NodeDefault.stories.tsx → stories/NodeDefault.stories.tsx} +5 -4
  264. package/src/index.scss +1 -0
  265. package/src/index.ts +16 -1
  266. package/src/legacy-replacements/Tabs/Tabs.stories.tsx +46 -0
  267. package/src/legacy-replacements/Tabs/Tabs.tsx +84 -0
  268. package/src/legacy-replacements/index.ts +11 -0
  269. package/src/test/setupTests.js +19 -0
@@ -0,0 +1,222 @@
1
+ import React, { useState, useEffect, useCallback } from "react";
2
+ import { ComponentStory, ComponentMeta } from "@storybook/react";
3
+ import { ReactFlow } from "./ReactFlow";
4
+ import { Elements } from 'react-flow-renderer';
5
+
6
+ export default {
7
+ title: "CMEM/React Flow/Configurations",
8
+ component: ReactFlow,
9
+ argTypes: {
10
+ },
11
+ } as ComponentMeta<typeof ReactFlow>;
12
+
13
+ const nodeExamples = {
14
+ unspecified: [
15
+ {
16
+ id: 1,
17
+ type: "default",
18
+ data: {
19
+ label: "Default ", content: "Example content.", minimalShape: "none"
20
+ },
21
+ position: { x: 200, y: 50 },
22
+ },
23
+ {
24
+ id: 2,
25
+ type: "default",
26
+ data: {
27
+ label: "Default ", content: "Example content.", minimalShape: "none",
28
+ handles: [ { type: "source", position: "left" }, { type: "target", position: "right" } ]
29
+ },
30
+ position: { x: 200, y: 300 },
31
+ },
32
+ {
33
+ id: 'e1', type: 'straight', label: "straight edge", arrowHeadType: "arrowclosed",source: '1', target: '2',
34
+ },
35
+ {
36
+ id: 'e2', type: 'step', label: "step edge", arrowHeadType: "arrowclosed",source: '2', target: '1',
37
+ }
38
+ ],
39
+ linking: [
40
+ {
41
+ id: 1,
42
+ type: "sourcepath",
43
+ data: {
44
+ label: "Source path", content: "Example content.", minimalShape: "none"
45
+ },
46
+ position: { x: 100, y: 50 },
47
+ },
48
+ {
49
+ id: 2,
50
+ type: "targetpath",
51
+ data: {
52
+ label: "Target path", content: "Example content.", minimalShape: "none"
53
+ },
54
+ position: { x: 400, y: 200 },
55
+ },
56
+ {
57
+ id: 3,
58
+ type: "transformation",
59
+ data: {
60
+ label: "Transformation", content: "Example content.", minimalShape: "none"
61
+ },
62
+ position: { x: 700, y: 50 },
63
+ },
64
+ {
65
+ id: 4,
66
+ type: "comparator",
67
+ data: {
68
+ label: "Comparation", content: "Example content.", minimalShape: "none",
69
+ handles: [ { type: "source", position: "left" }, { type: "target", position: "right" } ]
70
+ },
71
+ position: { x: 750, y: 300 },
72
+ },
73
+ {
74
+ id: 5,
75
+ type: "aggregator",
76
+ data: {
77
+ label: "Aggregation", content: "Example content.", minimalShape: "none",
78
+ handles: [ { type: "source", position: "left" }, { type: "target", position: "right" } ]
79
+ },
80
+ position: { x: 50, y: 300 },
81
+ },
82
+ { id: 'e1', type: 'value', label: "value edge", arrowHeadType: "arrowclosed",source: '1', target: '2' },
83
+ { id: 'e2', type: 'score', label: "score edge", arrowHeadType: "arrowclosed",source: '2', target: '3' },
84
+ { id: 'e3', type: 'success', label: "success edge", arrowHeadType: "arrowclosed",source: '3', target: '4' },
85
+ { id: 'e4', type: 'warning', label: "warning edge", arrowHeadType: "arrowclosed",source: '4', target: '5' },
86
+ { id: 'e5', type: 'danger', label: "danger edge", arrowHeadType: "arrowclosed",source: '5', target: '1' },
87
+ ],
88
+ workflow: [
89
+ {
90
+ id: 1,
91
+ type: "dataset",
92
+ data: {
93
+ label: "Dataset", content: "Example content.", minimalShape: "none"
94
+ },
95
+ position: { x: 100, y: 50 },
96
+ },
97
+ {
98
+ id: 2,
99
+ type: "linking",
100
+ data: {
101
+ label: "Linking", content: "Example content.", minimalShape: "none"
102
+ },
103
+ position: { x: 400, y: 200 },
104
+ },
105
+ {
106
+ id: 3,
107
+ type: "transform",
108
+ data: {
109
+ label: "Transform", content: "Example content.", minimalShape: "none"
110
+ },
111
+ position: { x: 700, y: 50 },
112
+ },
113
+ {
114
+ id: 4,
115
+ type: "task",
116
+ data: {
117
+ label: "Task", content: "Example content.", minimalShape: "none",
118
+ handles: [ { type: "source", position: "left" }, { type: "target", position: "right" } ]
119
+ },
120
+ position: { x: 750, y: 300 },
121
+ },
122
+ {
123
+ id: 5,
124
+ type: "workflow",
125
+ data: {
126
+ label: "Workflow", content: "Example content.", minimalShape: "none",
127
+ handles: [ { type: "source", position: "left" }, { type: "target", position: "right" } ]
128
+ },
129
+ position: { x: 50, y: 300 },
130
+ },
131
+ { id: 'e1', arrowHeadType: "arrowclosed",source: '1', target: '2' },
132
+ { id: 'e2', arrowHeadType: "arrowclosed",source: '2', target: '3' },
133
+ { id: 'e3', type: 'success', label: "success edge", arrowHeadType: "arrowclosed",source: '3', target: '4' },
134
+ { id: 'e4', type: 'warning', label: "warning edge", arrowHeadType: "arrowclosed",source: '4', target: '5' },
135
+ { id: 'e5', type: 'danger', label: "danger edge", arrowHeadType: "arrowclosed",source: '5', target: '1' },
136
+ ],
137
+ graph: [
138
+ {
139
+ id: 1,
140
+ type: "default",
141
+ data: {
142
+ label: "Default ", content: "Example content.", minimalShape: "none"
143
+ },
144
+ position: { x: 100, y: 50 },
145
+ },
146
+ {
147
+ id: 2,
148
+ type: "graph",
149
+ data: {
150
+ label: "Graph", content: "Example content.", minimalShape: "none"
151
+ },
152
+ position: { x: 400, y: 200 },
153
+ },
154
+ {
155
+ id: 3,
156
+ type: "class",
157
+ data: {
158
+ label: "Class", content: "Example content.", minimalShape: "none"
159
+ },
160
+ position: { x: 700, y: 50 },
161
+ },
162
+ {
163
+ id: 4,
164
+ type: "instance",
165
+ data: {
166
+ label: "Instance", content: "Example content.", minimalShape: "none",
167
+ handles: [ { type: "source", position: "left" }, { type: "target", position: "right" } ]
168
+ },
169
+ position: { x: 750, y: 300 },
170
+ },
171
+ {
172
+ id: 5,
173
+ type: "property",
174
+ data: {
175
+ label: "Property", content: "Example content.", minimalShape: "none",
176
+ handles: [ { type: "source", position: "left" }, { type: "target", position: "right" } ]
177
+ },
178
+ position: { x: 50, y: 300 },
179
+ },
180
+ { id: 'e1', type: 'implicit', label: "implicit edge", arrowHeadType: "arrowclosed",source: '1', target: '2' },
181
+ { id: 'e2', type: 'import', label: "import edge", arrowHeadType: "arrowclosed",source: '2', target: '3' },
182
+ { id: 'e3', type: 'subclass', label: "subclass edge", arrowHeadType: "arrowclosed",source: '3', target: '4' },
183
+ { id: 'e4', type: 'subproperty', label: "subproperty edge", arrowHeadType: "arrowclosed",source: '4', target: '5' },
184
+ { id: 'e5', type: 'rdftype', label: "rdftype edge", arrowHeadType: "arrowclosed",source: '5', target: '1' },
185
+ ],
186
+ }
187
+
188
+ const ReactFlowExample = (args) => {
189
+ const [reactflowInstance, setReactflowInstance] = useState(null);
190
+ const [elements, setElements] = useState([] as Elements);
191
+ //const [edgeTools, setEdgeTools] = useState<JSX.Element>(<></>);
192
+
193
+ useEffect(() => {
194
+ setElements(nodeExamples[args.configuration] as Elements);
195
+ }, [args]);
196
+
197
+ const onLoad = useCallback(
198
+ (rfi) => {
199
+ if (!reactflowInstance) {
200
+ setReactflowInstance(rfi);
201
+ }
202
+ },
203
+ [reactflowInstance]
204
+ );
205
+
206
+ return <ReactFlow
207
+ configuration={args.configuration}
208
+ elements={elements}
209
+ style={{ height: '400px' }}
210
+ onLoad={onLoad}
211
+ defaultZoom={1}
212
+ />
213
+ }
214
+
215
+ const Template: ComponentStory<typeof ReactFlow> = (args) => (
216
+ <ReactFlowExample {...args} />
217
+ );
218
+
219
+ export const Default = Template.bind({});
220
+ Default.args = {
221
+ configuration: "unspecified",
222
+ };
@@ -0,0 +1,40 @@
1
+ import React from "react";
2
+ import {default as ReactFlowOriginal, ReactFlowProps as ReactFlowOriginalProps} from "react-flow-renderer";
3
+ import * as unspecifiedConfig from "./../configuration/unspecified";
4
+ import * as graphConfig from "./../configuration/graph";
5
+ import * as workflowConfig from "./../configuration/workflow";
6
+ import * as linkingConfig from "./../configuration/linking";
7
+
8
+ interface ReactFlowProps extends ReactFlowOriginalProps {
9
+ /**
10
+ * Load `ReactFlow` component with pre-configured values for `nodeTypes` and `edgeTypes`
11
+ */
12
+ configuration?: "unspecified" | "graph" | "workflow" | "linking";
13
+ }
14
+
15
+ /**
16
+ * `ReactFlow` container extension that includes pre-configured nodes and edges for
17
+ * Corporate Memory tools.
18
+ */
19
+ export const ReactFlow = React.forwardRef<HTMLDivElement, ReactFlowProps>((
20
+ {
21
+ configuration = "unspecified",
22
+ ...originalProps
23
+ },
24
+ ref) => {
25
+ const configReactFlow = {
26
+ unspecified: unspecifiedConfig,
27
+ graph: graphConfig,
28
+ workflow: workflowConfig,
29
+ linking: linkingConfig,
30
+ }
31
+
32
+ return (
33
+ <ReactFlowOriginal
34
+ ref={ref}
35
+ nodeTypes={ configReactFlow[configuration].nodeTypes }
36
+ edgeTypes={ configReactFlow[configuration].edgeTypes }
37
+ {...originalProps}
38
+ />
39
+ );
40
+ })
@@ -0,0 +1,23 @@
1
+ @mixin edgetypestyles($type, $color) {
2
+ .react-flow__edge-#{$type} {
3
+ @include edgecoloring($color);
4
+ }
5
+ }
6
+
7
+ @mixin edgecoloring($color) {
8
+ stroke: $color;
9
+ color: $color;
10
+ }
11
+
12
+ // Graph edge types
13
+
14
+ @include edgetypestyles("implicit", $reactflow-color-implicit-edge);
15
+ @include edgetypestyles("import", $reactflow-color-import-edge);
16
+ @include edgetypestyles("subclass", $reactflow-color-subclass-edge);
17
+ @include edgetypestyles("subproperty", $reactflow-color-subproperty-edge);
18
+ @include edgetypestyles("rdftype", $reactflow-color-rdftype-edge);
19
+
20
+ // Linking edge types
21
+
22
+ @include edgetypestyles("value", $reactflow-color-value-edge);
23
+ @include edgetypestyles("score", $reactflow-color-score-edge);
@@ -0,0 +1,34 @@
1
+ @mixin handletypestyles($type, $color) {
2
+ .react-flow__node-#{$type} {
3
+ @include handlecoloring($color);
4
+ }
5
+ }
6
+
7
+ @mixin handlecoloring($color) {
8
+ .react-flow__handle {
9
+ color: $color;
10
+ }
11
+ }
12
+
13
+ // Graph handle types
14
+
15
+ @include handletypestyles("graph", $reactflow-color-graph-node);
16
+ @include handletypestyles("class", $reactflow-color-class-node);
17
+ @include handletypestyles("instance", $reactflow-color-instance-node);
18
+ @include handletypestyles("property", $reactflow-color-property-node);
19
+
20
+ // Workflow handle types
21
+
22
+ @include handletypestyles("dataset", $reactflow-color-dataset-node);
23
+ @include handletypestyles("linking", $reactflow-color-linking-node);
24
+ @include handletypestyles("transform", $reactflow-color-transform-node);
25
+ @include handletypestyles("task", $reactflow-color-task-node);
26
+ @include handletypestyles("workflow", $reactflow-color-workflow-node);
27
+
28
+ // Linking handle types
29
+
30
+ @include handletypestyles("sourcepath", $reactflow-color-sourcepath-node);
31
+ @include handletypestyles("targetpath", $reactflow-color-targetpath-node);
32
+ @include handletypestyles("transformation", $reactflow-color-transformation-node);
33
+ @include handletypestyles("comparator", $reactflow-color-comparator-node);
34
+ @include handletypestyles("aggregator", $reactflow-color-aggregator-node);
@@ -0,0 +1,5 @@
1
+ @import "./configuration/colors";
2
+ @import "edges";
3
+ @import "handles";
4
+ @import "minimap";
5
+ @import "nodes";
@@ -0,0 +1,33 @@
1
+ @mixin mapnodestyles($type, $color) {
2
+ .#{$eccgui}-graphviz__minimap__node--#{$type} {
3
+ @include mapcoloring($color);
4
+ }
5
+ }
6
+
7
+ @mixin mapcoloring($color) {
8
+ fill: $color;
9
+ stroke: $color;
10
+ }
11
+
12
+ // Graph node type
13
+
14
+ @include mapnodestyles("graph", $reactflow-color-graph-node);
15
+ @include mapnodestyles("class", $reactflow-color-class-node);
16
+ @include mapnodestyles("instance", $reactflow-color-instance-node);
17
+ @include mapnodestyles("property", $reactflow-color-property-node);
18
+
19
+ // Workflow node types
20
+
21
+ @include mapnodestyles("dataset", $reactflow-color-dataset-node);
22
+ @include mapnodestyles("linking", $reactflow-color-linking-node);
23
+ @include mapnodestyles("transform", $reactflow-color-transform-node);
24
+ @include mapnodestyles("task", $reactflow-color-task-node);
25
+ @include mapnodestyles("workflow", $reactflow-color-workflow-node);
26
+
27
+ // Linking node types
28
+
29
+ @include mapnodestyles("sourcepath", $reactflow-color-sourcepath-node);
30
+ @include mapnodestyles("targetpath", $reactflow-color-targetpath-node);
31
+ @include mapnodestyles("transformation", $reactflow-color-transformation-node);
32
+ @include mapnodestyles("comparator", $reactflow-color-comparator-node);
33
+ @include mapnodestyles("aggregator", $reactflow-color-aggregator-node);
@@ -0,0 +1,60 @@
1
+ @mixin nodetypestyles($type, $color) {
2
+ .react-flow__node-#{$type} {
3
+ @include nodecoloring($color);
4
+ }
5
+ }
6
+
7
+ @mixin nodecoloring($color) {
8
+ .#{$eccgui}-graphviz__node {
9
+ border-color: $color;
10
+ background-color: mix($color, #fff, 24%);
11
+ }
12
+ .#{$eccgui}-graphviz__node__extension--expanded {
13
+ border-color: $color;
14
+ }
15
+ }
16
+
17
+ // Graph node types
18
+
19
+ .react-flow__node-graph {
20
+ @include nodecoloring($reactflow-color-graph-node);
21
+ .#{$eccgui}-graphviz__node {
22
+ border-style: double;
23
+ border-width: 3 * $reactflow-node-border-width;
24
+ }
25
+ .#{$eccgui}-graphviz__node__extension--expanded {
26
+ border-style: double;
27
+ border-width: 3 * $reactflow-node-border-width;
28
+ left: -3 * $reactflow-node-border-width;
29
+ right: -3 * $reactflow-node-border-width;
30
+ }
31
+ }
32
+
33
+ @include nodetypestyles("class", $reactflow-color-class-node);
34
+ @include nodetypestyles("instance", $reactflow-color-instance-node);
35
+
36
+ .react-flow__node-property {
37
+ @include nodecoloring($reactflow-color-property-node);
38
+ .#{$eccgui}-graphviz__node {
39
+ border-style: dashed;
40
+ }
41
+ .#{$eccgui}-graphviz__node__extension--expanded {
42
+ border-style: dashed;
43
+ }
44
+ }
45
+
46
+ // Workflow node types
47
+
48
+ @include nodetypestyles("dataset", $reactflow-color-dataset-node);
49
+ @include nodetypestyles("linking", $reactflow-color-linking-node);
50
+ @include nodetypestyles("transform", $reactflow-color-transform-node);
51
+ @include nodetypestyles("task", $reactflow-color-task-node);
52
+ @include nodetypestyles("workflow", $reactflow-color-workflow-node);
53
+
54
+ // Linking node types
55
+
56
+ @include nodetypestyles("sourcepath", $reactflow-color-sourcepath-node);
57
+ @include nodetypestyles("targetpath", $reactflow-color-targetpath-node);
58
+ @include nodetypestyles("transformation", $reactflow-color-transformation-node);
59
+ @include nodetypestyles("comparator", $reactflow-color-comparator-node);
60
+ @include nodetypestyles("aggregator", $reactflow-color-aggregator-node);
@@ -0,0 +1,35 @@
1
+ $reactflow-color-graph-node: #745a85 !default;
2
+ $reactflow-color-class-node: #3a7896 !default;
3
+ $reactflow-color-instance-node: #0097a7 !default;
4
+ $reactflow-color-property-node: #ffd54f !default;
5
+
6
+ $reactflow-color-implicit-edge: #ae3c74 !default;
7
+ $reactflow-color-import-edge: $reactflow-color-graph-node !default;
8
+ $reactflow-color-subclass-edge: $reactflow-color-class-node !default;
9
+ $reactflow-color-subproperty-edge: $reactflow-color-property-node !default;
10
+ $reactflow-color-rdftype-edge: $reactflow-color-instance-node !default;
11
+
12
+ @function bright($color) {
13
+ @return mix($color, #fff, 24%);
14
+ }
15
+
16
+ :export {
17
+ graphNode: $reactflow-color-graph-node;
18
+ classNode: $reactflow-color-class-node;
19
+ instanceNode: $reactflow-color-instance-node;
20
+ propertyNode: $reactflow-color-property-node;
21
+ implicitEdge: $reactflow-color-implicit-edge;
22
+ importEdge: $reactflow-color-import-edge;
23
+ subclassEdge: $reactflow-color-subclass-edge;
24
+ subpropertyEdge: $reactflow-color-subproperty-edge;
25
+ rdftypeEdge: $reactflow-color-rdftype-edge;
26
+ graphNodeBright: bright($reactflow-color-graph-node);
27
+ classNodeBright: bright($reactflow-color-class-node);
28
+ instanceNodeBright: bright($reactflow-color-instance-node);
29
+ propertyNodeBright: bright($reactflow-color-property-node);
30
+ implicitEdgeBright: bright($reactflow-color-implicit-edge);
31
+ importEdgeBright: bright($reactflow-color-import-edge);
32
+ subclassEdgeBright: bright($reactflow-color-subclass-edge);
33
+ subpropertyEdgeBright: bright($reactflow-color-subproperty-edge);
34
+ rdftypeEdgeBright: bright($reactflow-color-rdftype-edge);
35
+ }
@@ -0,0 +1,29 @@
1
+ $reactflow-color-sourcepath-node: #745a85 !default;
2
+ $reactflow-color-targetpath-node: #3a7896 !default;
3
+ $reactflow-color-transformation-node: #c1c1c1 !default;
4
+ $reactflow-color-comparator-node: #40a691 !default;
5
+ $reactflow-color-aggregator-node: #0097a7 !default;
6
+
7
+ $reactflow-color-value-edge: #222 !default;
8
+ $reactflow-color-score-edge: $reactflow-color-aggregator-node !default;
9
+
10
+ @function bright($color) {
11
+ @return mix($color, #fff, 24%);
12
+ }
13
+
14
+ :export {
15
+ sourcepathNode: $reactflow-color-sourcepath-node;
16
+ targetpathNode: $reactflow-color-targetpath-node;
17
+ transformationNode: $reactflow-color-transformation-node;
18
+ comparatorNode: $reactflow-color-comparator-node;
19
+ aggregatorNode: $reactflow-color-aggregator-node;
20
+ valueEdge: $reactflow-color-value-edge;
21
+ scoreEdge: $reactflow-color-score-edge;
22
+ sourcepathNodeBright: bright($reactflow-color-sourcepath-node);
23
+ targetpathNodeBright: bright($reactflow-color-targetpath-node);
24
+ transformationNodeBright: bright($reactflow-color-transformation-node);
25
+ comparatorNodeBright: bright($reactflow-color-comparator-node);
26
+ aggregatorNodeBright: bright($reactflow-color-aggregator-node);
27
+ valueEdgeBright: bright($reactflow-color-value-edge);
28
+ scoreEdgeBright: bright($reactflow-color-score-edge);
29
+ }
@@ -0,0 +1,22 @@
1
+ $reactflow-color-dataset-node: #3a7896 !default;
2
+ $reactflow-color-linking-node: #0097a7 !default;
3
+ $reactflow-color-transform-node: #40a691 !default;
4
+ $reactflow-color-task-node: #80b67b !default;
5
+ $reactflow-color-workflow-node: #745a85 !default;
6
+
7
+ @function bright($color) {
8
+ @return mix($color, #fff, 24%);
9
+ }
10
+
11
+ :export {
12
+ datasetNode: $reactflow-color-dataset-node;
13
+ linkingNode: $reactflow-color-linking-node;
14
+ transformNode: $reactflow-color-transform-node;
15
+ taskNode: $reactflow-color-task-node;
16
+ workflowNode: $reactflow-color-workflow-node;
17
+ datasetNodeBright: bright($reactflow-color-dataset-node);
18
+ linkingNodeBright: bright($reactflow-color-linking-node);
19
+ transformNodeBright: bright($reactflow-color-transform-node);
20
+ taskNodeBright: bright($reactflow-color-task-node);
21
+ workflowNodeBright: bright($reactflow-color-workflow-node);
22
+ }
@@ -0,0 +1,3 @@
1
+ @import "colors-graph.module";
2
+ @import "colors-workflow.module";
3
+ @import "colors-linking.module";
@@ -0,0 +1,29 @@
1
+ import { EdgeDefault } from "./../../../extensions/react-flow/edges/EdgeDefault";
2
+ import { NodeDefault } from "./../../../extensions/react-flow/nodes/NodeDefault";
3
+ import colors from "./_colors-graph.module.scss";
4
+
5
+ const edgeTypes = {
6
+ default: EdgeDefault,
7
+ implicit: EdgeDefault,
8
+ import: EdgeDefault,
9
+ subclass: EdgeDefault,
10
+ subproperty: EdgeDefault,
11
+ rdftype: EdgeDefault,
12
+ success: EdgeDefault,
13
+ warning: EdgeDefault,
14
+ danger: EdgeDefault,
15
+ };
16
+
17
+ const nodeTypes = {
18
+ default: NodeDefault,
19
+ graph: NodeDefault,
20
+ class: NodeDefault,
21
+ instance: NodeDefault,
22
+ property: NodeDefault,
23
+ };
24
+
25
+ export {
26
+ edgeTypes,
27
+ nodeTypes,
28
+ colors,
29
+ }
@@ -0,0 +1,28 @@
1
+
2
+ import { EdgeStep } from "./../../../extensions/react-flow/edges/EdgeStep";
3
+ import { NodeDefault } from "./../../../extensions/react-flow/nodes/NodeDefault";
4
+ import colors from "./_colors-linking.module.scss";
5
+
6
+ const edgeTypes = {
7
+ default: EdgeStep,
8
+ value: EdgeStep,
9
+ score: EdgeStep,
10
+ success: EdgeStep,
11
+ warning: EdgeStep,
12
+ danger: EdgeStep,
13
+ };
14
+
15
+ const nodeTypes = {
16
+ default: NodeDefault,
17
+ sourcepath: NodeDefault,
18
+ targetpath: NodeDefault,
19
+ transformation: NodeDefault,
20
+ comparator: NodeDefault,
21
+ aggregator: NodeDefault,
22
+ };
23
+
24
+ export {
25
+ edgeTypes,
26
+ nodeTypes,
27
+ colors,
28
+ }
@@ -0,0 +1,13 @@
1
+ import { EdgeDefault } from "./../../../extensions/react-flow/edges/EdgeDefault";
2
+ import { EdgeStep } from "./../../../extensions/react-flow/edges/EdgeStep";
3
+ import { NodeDefault } from "./../../../extensions/react-flow/nodes/NodeDefault";
4
+
5
+ export const edgeTypes = {
6
+ default: EdgeDefault,
7
+ straight: EdgeDefault,
8
+ step: EdgeStep,
9
+ };
10
+
11
+ export const nodeTypes = {
12
+ default: NodeDefault,
13
+ };
@@ -0,0 +1,25 @@
1
+ import { EdgeStep } from "./../../../extensions/react-flow/edges/EdgeStep";
2
+ import { NodeDefault } from "./../../../extensions/react-flow/nodes/NodeDefault";
3
+ import colors from "./_colors-workflow.module.scss";
4
+
5
+ const edgeTypes = {
6
+ default: EdgeStep,
7
+ success: EdgeStep,
8
+ warning: EdgeStep,
9
+ danger: EdgeStep,
10
+ };
11
+
12
+ const nodeTypes = {
13
+ default: NodeDefault,
14
+ dataset: NodeDefault,
15
+ linking: NodeDefault,
16
+ transform: NodeDefault,
17
+ task: NodeDefault,
18
+ workflow: NodeDefault,
19
+ };
20
+
21
+ export {
22
+ edgeTypes,
23
+ nodeTypes,
24
+ colors,
25
+ }