@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,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,23 @@
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
+ var edgeTypes = {
5
+ default: EdgeDefault,
6
+ implicit: EdgeDefault,
7
+ import: EdgeDefault,
8
+ subclass: EdgeDefault,
9
+ subproperty: EdgeDefault,
10
+ rdftype: EdgeDefault,
11
+ success: EdgeDefault,
12
+ warning: EdgeDefault,
13
+ danger: EdgeDefault,
14
+ };
15
+ var nodeTypes = {
16
+ default: NodeDefault,
17
+ graph: NodeDefault,
18
+ class: NodeDefault,
19
+ instance: NodeDefault,
20
+ property: NodeDefault,
21
+ };
22
+ export { edgeTypes, nodeTypes, colors, };
23
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../../src/cmem/react-flow/configuration/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,MAAM,MAAM,6BAA6B,CAAC;AAEjD,IAAM,SAAS,GAAG;IACd,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,WAAW;IACxB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,WAAW;CACtB,CAAC;AAEF,IAAM,SAAS,GAAG;IACd,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;CACxB,CAAC;AAED,OAAO,EACH,SAAS,EACT,SAAS,EACT,MAAM,GACT,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { EdgeStep } from "./../../../extensions/react-flow/edges/EdgeStep";
2
+ import { NodeDefault } from "./../../../extensions/react-flow/nodes/NodeDefault";
3
+ import colors from "./_colors-linking.module.scss";
4
+ var edgeTypes = {
5
+ default: EdgeStep,
6
+ value: EdgeStep,
7
+ score: EdgeStep,
8
+ success: EdgeStep,
9
+ warning: EdgeStep,
10
+ danger: EdgeStep,
11
+ };
12
+ var nodeTypes = {
13
+ default: NodeDefault,
14
+ sourcepath: NodeDefault,
15
+ targetpath: NodeDefault,
16
+ transformation: NodeDefault,
17
+ comparator: NodeDefault,
18
+ aggregator: NodeDefault,
19
+ };
20
+ export { edgeTypes, nodeTypes, colors, };
21
+ //# sourceMappingURL=linking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linking.js","sourceRoot":"","sources":["../../../../../src/cmem/react-flow/configuration/linking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iDAAiD,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,MAAM,MAAM,+BAA+B,CAAC;AAEnD,IAAM,SAAS,GAAG;IACd,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;CACnB,CAAC;AAEF,IAAM,SAAS,GAAG;IACd,OAAO,EAAE,WAAW;IACpB,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE,WAAW;IACvB,cAAc,EAAE,WAAW;IAC3B,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE,WAAW;CAC1B,CAAC;AAED,OAAO,EACH,SAAS,EACT,SAAS,EACT,MAAM,GACT,CAAA"}
@@ -0,0 +1,12 @@
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
+ export var edgeTypes = {
5
+ default: EdgeDefault,
6
+ straight: EdgeDefault,
7
+ step: EdgeStep,
8
+ };
9
+ export var nodeTypes = {
10
+ default: NodeDefault,
11
+ };
12
+ //# sourceMappingURL=unspecified.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unspecified.js","sourceRoot":"","sources":["../../../../../src/cmem/react-flow/configuration/unspecified.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,iDAAiD,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AAEjF,MAAM,CAAC,IAAM,SAAS,GAAG;IACrB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,CAAC,IAAM,SAAS,GAAG;IACrB,OAAO,EAAE,WAAW;CACvB,CAAC"}
@@ -0,0 +1,19 @@
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
+ var edgeTypes = {
5
+ default: EdgeStep,
6
+ success: EdgeStep,
7
+ warning: EdgeStep,
8
+ danger: EdgeStep,
9
+ };
10
+ var nodeTypes = {
11
+ default: NodeDefault,
12
+ dataset: NodeDefault,
13
+ linking: NodeDefault,
14
+ transform: NodeDefault,
15
+ task: NodeDefault,
16
+ workflow: NodeDefault,
17
+ };
18
+ export { edgeTypes, nodeTypes, colors, };
19
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../../../src/cmem/react-flow/configuration/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iDAAiD,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,MAAM,MAAM,gCAAgC,CAAC;AAEpD,IAAM,SAAS,GAAG;IACd,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;CACnB,CAAC;AAEF,IAAM,SAAS,GAAG;IACd,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,WAAW;CACxB,CAAC;AAED,OAAO,EACH,SAAS,EACT,SAAS,EACT,MAAM,GACT,CAAA"}
@@ -0,0 +1,347 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (_) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ var __read = (this && this.__read) || function (o, n) {
49
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
50
+ if (!m) return o;
51
+ var i = m.call(o), r, ar = [], e;
52
+ try {
53
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
54
+ }
55
+ catch (error) { e = { error: error }; }
56
+ finally {
57
+ try {
58
+ if (r && !r.done && (m = i["return"])) m.call(i);
59
+ }
60
+ finally { if (e) throw e.error; }
61
+ }
62
+ return ar;
63
+ };
64
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
65
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
66
+ if (ar || !(i in from)) {
67
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
68
+ ar[i] = from[i];
69
+ }
70
+ }
71
+ return to.concat(ar || Array.prototype.slice.call(from));
72
+ };
73
+ import React, { useCallback, useEffect, useState } from "react";
74
+ import { FieldItem, IconButton, Spinner, Toolbar, ToolbarSection } from "./../../";
75
+ import { Classes as BlueprintClassNames } from "@blueprintjs/core";
76
+ //custom components
77
+ import SingleLineCodeEditor from "./SingleLineCodeEditor";
78
+ import { AutoSuggestionList } from "./AutoSuggestionList";
79
+ import { debounce } from "lodash";
80
+ export var OVERWRITTEN_KEYS;
81
+ (function (OVERWRITTEN_KEYS) {
82
+ OVERWRITTEN_KEYS["ArrowUp"] = "ArrowUp";
83
+ OVERWRITTEN_KEYS["ArrowDown"] = "ArrowDown";
84
+ OVERWRITTEN_KEYS["Enter"] = "Enter";
85
+ OVERWRITTEN_KEYS["Tab"] = "Tab";
86
+ })(OVERWRITTEN_KEYS || (OVERWRITTEN_KEYS = {}));
87
+ /** Input component that allows partial, fine-grained auto-completion, i.e. of sub-strings of the input string.
88
+ * This is comparable to a one line code editor. */
89
+ var AutoSuggestion = function (_a) {
90
+ var _b;
91
+ var label = _a.label, initialValue = _a.initialValue, onChange = _a.onChange, fetchSuggestions = _a.fetchSuggestions, checkInput = _a.checkInput, _c = _a.validationErrorText, validationErrorText = _c === void 0 ? "Invalid value" : _c, _d = _a.clearIconText, clearIconText = _d === void 0 ? "Clear" : _d, onFocusChange = _a.onFocusChange, id = _a.id, onInputChecked = _a.onInputChecked, leftElement = _a.leftElement, rightElement = _a.rightElement, _e = _a.useTabForCompletions, useTabForCompletions = _e === void 0 ? false : _e, placeholder = _a.placeholder, _f = _a.showScrollBar, showScrollBar = _f === void 0 ? true : _f;
92
+ var _g = __read(React.useState(initialValue), 2), value = _g[0], setValue = _g[1];
93
+ var _h = __read(React.useState(0), 2), cursorPosition = _h[0], setCursorPosition = _h[1];
94
+ var _j = __read(React.useState({ left: 0 }), 2), coords = _j[0], setCoords = _j[1];
95
+ var _k = __read(React.useState(false), 2), shouldShowDropdown = _k[0], setShouldShowDropdown = _k[1];
96
+ var _l = __read(React.useState([]), 2), suggestions = _l[0], setSuggestions = _l[1];
97
+ var _m = __read(React.useState(false), 2), suggestionsPending = _m[0], setSuggestionsPending = _m[1];
98
+ var _o = __read(React.useState(false), 2), pathValidationPending = _o[0], setPathValidationPending = _o[1];
99
+ var _p = __read(React.useState([]), 2), setErrorMarkers = _p[1];
100
+ var _q = __read(useState(undefined), 2), validationResponse = _q[0], setValidationResponse = _q[1];
101
+ var _r = __read(useState(undefined), 2), suggestionResponse = _r[0], setSuggestionResponse = _r[1];
102
+ // The element that should be used for replacement highlighting
103
+ var _s = __read(useState(undefined), 2), highlightedElement = _s[0], setHighlightedElement = _s[1];
104
+ var _t = __read(React.useState(), 2), editorInstance = _t[0], setEditorInstance = _t[1];
105
+ var _u = __read(React.useState(false), 2), isFocused = _u[0], setIsFocused = _u[1];
106
+ /** Mutable editor state, since this needs to be current in scope of the SingleLineEditorComponent. */
107
+ var _v = __read(React.useState({ index: 0, suggestions: [], dropdownShown: false }), 1), editorState = _v[0];
108
+ /** This is for the AutoSuggestionList component in order to re-render. */
109
+ var _w = __read(React.useState(0), 2), focusedIndex = _w[0], setFocusedIndex = _w[1];
110
+ var _x = __read(useState([]), 2), selectedTextRanges = _x[0], setSelectedTextRanges = _x[1];
111
+ var pathIsValid = (_b = validationResponse === null || validationResponse === void 0 ? void 0 : validationResponse.valid) !== null && _b !== void 0 ? _b : true;
112
+ var setCurrentIndex = function (newIndex) {
113
+ editorState.index = newIndex;
114
+ setFocusedIndex(newIndex);
115
+ };
116
+ var currentIndex = function () { return editorState.index; };
117
+ React.useEffect(function () {
118
+ editorState.editorInstance = editorInstance;
119
+ }, [editorInstance, editorState]);
120
+ React.useEffect(function () {
121
+ setValue(initialValue);
122
+ }, [initialValue]);
123
+ React.useEffect(function () {
124
+ editorState.dropdownShown = shouldShowDropdown;
125
+ }, [shouldShowDropdown, editorState]);
126
+ // Handle replacement highlighting
127
+ useEffect(function () {
128
+ if (highlightedElement && editorInstance) {
129
+ var from = highlightedElement.from, length_1 = highlightedElement.length;
130
+ if (length_1 > 0 && selectedTextRanges.length === 0) {
131
+ var to = from + length_1;
132
+ var marker_1 = editorInstance.markText({ line: 0, ch: from }, { line: 0, ch: to }, { className: "ecc-text-highlighting" });
133
+ return function () { return marker_1.clear(); };
134
+ }
135
+ }
136
+ }, [highlightedElement, selectedTextRanges, editorInstance]);
137
+ //handle linting
138
+ React.useEffect(function () {
139
+ var parseError = validationResponse === null || validationResponse === void 0 ? void 0 : validationResponse.parseError;
140
+ if (parseError && editorInstance) {
141
+ var message = parseError.message, start = parseError.start, end = parseError.end;
142
+ // TODO: Display error message
143
+ editorInstance.getDoc().getEditor();
144
+ var marker_2 = editorInstance.markText({ line: 0, ch: start }, { line: 0, ch: end }, { className: "ecc-text-error-highlighting", title: message });
145
+ setErrorMarkers(function (previousMarkers) {
146
+ previousMarkers.forEach(function (marker) { return marker.clear(); });
147
+ return [marker_2];
148
+ });
149
+ }
150
+ else {
151
+ // Valid, clear all error markers
152
+ setErrorMarkers(function (previous) {
153
+ previous.forEach(function (marker) { return marker.clear(); });
154
+ return [];
155
+ });
156
+ }
157
+ onInputChecked && onInputChecked(!!(validationResponse === null || validationResponse === void 0 ? void 0 : validationResponse.valid));
158
+ }, [validationResponse === null || validationResponse === void 0 ? void 0 : validationResponse.valid, validationResponse === null || validationResponse === void 0 ? void 0 : validationResponse.parseError, editorInstance, onInputChecked]);
159
+ /** generate suggestions and also populate the replacement indexes dict */
160
+ React.useEffect(function () {
161
+ var _a, _b, _c, _d;
162
+ var newSuggestions = [];
163
+ if (((_a = suggestionResponse === null || suggestionResponse === void 0 ? void 0 : suggestionResponse.replacementResults) === null || _a === void 0 ? void 0 : _a.length) === 1 &&
164
+ !((_c = (_b = suggestionResponse === null || suggestionResponse === void 0 ? void 0 : suggestionResponse.replacementResults[0]) === null || _b === void 0 ? void 0 : _b.replacements) === null || _c === void 0 ? void 0 : _c.length)) {
165
+ setShouldShowDropdown(false);
166
+ }
167
+ if ((_d = suggestionResponse === null || suggestionResponse === void 0 ? void 0 : suggestionResponse.replacementResults) === null || _d === void 0 ? void 0 : _d.length) {
168
+ suggestionResponse.replacementResults.forEach(function (_a) {
169
+ var replacements = _a.replacements, _b = _a.replacementInterval, from = _b.from, length = _b.length, extractedQuery = _a.extractedQuery;
170
+ var replacementsWithMetaData = replacements.map(function (r) { return (__assign(__assign({}, r), { query: extractedQuery, from: from, length: length })); });
171
+ newSuggestions = __spreadArray(__spreadArray([], __read(newSuggestions), false), __read(replacementsWithMetaData), false);
172
+ });
173
+ editorState.suggestions = newSuggestions;
174
+ setSuggestions(newSuggestions);
175
+ }
176
+ else {
177
+ editorState.suggestions = [];
178
+ setSuggestions([]);
179
+ }
180
+ editorState.index = 0;
181
+ }, [suggestionResponse, editorState]);
182
+ var asyncCheckInput = function (inputString) { return __awaiter(void 0, void 0, void 0, function () {
183
+ var result, e_1;
184
+ return __generator(this, function (_a) {
185
+ switch (_a.label) {
186
+ case 0:
187
+ if (!checkInput) {
188
+ return [2 /*return*/];
189
+ }
190
+ setPathValidationPending(true);
191
+ _a.label = 1;
192
+ case 1:
193
+ _a.trys.push([1, 3, 4, 5]);
194
+ return [4 /*yield*/, checkInput(inputString)];
195
+ case 2:
196
+ result = _a.sent();
197
+ setValidationResponse(result);
198
+ return [3 /*break*/, 5];
199
+ case 3:
200
+ e_1 = _a.sent();
201
+ setValidationResponse(undefined);
202
+ return [3 /*break*/, 5];
203
+ case 4:
204
+ setPathValidationPending(false);
205
+ return [7 /*endfinally*/];
206
+ case 5: return [2 /*return*/];
207
+ }
208
+ });
209
+ }); };
210
+ var checkValuePathValidity = useCallback(debounce(function (inputString) { return asyncCheckInput(inputString); }, 200), [checkInput]);
211
+ var handleEditorInputChange = useCallback(debounce(function (inputString, cursorPosition) { return asyncHandleEditorInputChange(inputString, cursorPosition); }, 200), [fetchSuggestions]);
212
+ React.useEffect(function () {
213
+ if (isFocused) {
214
+ setShouldShowDropdown(true);
215
+ handleEditorInputChange(value, cursorPosition);
216
+ return handleEditorInputChange.cancel;
217
+ }
218
+ }, [cursorPosition, value, isFocused, handleEditorInputChange]);
219
+ // Trigger input validation
220
+ useEffect(function () {
221
+ checkValuePathValidity(value);
222
+ return checkValuePathValidity.cancel;
223
+ }, [value, checkValuePathValidity]);
224
+ var asyncHandleEditorInputChange = function (inputString, cursorPosition) { return __awaiter(void 0, void 0, void 0, function () {
225
+ var result, e_2;
226
+ return __generator(this, function (_a) {
227
+ switch (_a.label) {
228
+ case 0:
229
+ setSuggestionsPending(true);
230
+ _a.label = 1;
231
+ case 1:
232
+ _a.trys.push([1, 3, 4, 5]);
233
+ return [4 /*yield*/, fetchSuggestions(inputString, cursorPosition)];
234
+ case 2:
235
+ result = _a.sent();
236
+ setSuggestionResponse(result);
237
+ return [3 /*break*/, 5];
238
+ case 3:
239
+ e_2 = _a.sent();
240
+ setSuggestionResponse(undefined);
241
+ return [3 /*break*/, 5];
242
+ case 4:
243
+ setSuggestionsPending(false);
244
+ return [7 /*endfinally*/];
245
+ case 5: return [2 /*return*/];
246
+ }
247
+ });
248
+ }); };
249
+ var handleChange = function (val) {
250
+ setValue(val);
251
+ onChange(val);
252
+ };
253
+ var handleCursorChange = function (pos, coords) {
254
+ setCursorPosition(pos.ch);
255
+ setCoords(function () { return coords; });
256
+ };
257
+ var handleInputEditorKeyPress = function (event) {
258
+ var overWrittenKeys = Object.values(OVERWRITTEN_KEYS);
259
+ if (overWrittenKeys.includes(event.key) && (useTabForCompletions || event.key !== OVERWRITTEN_KEYS.Tab)) {
260
+ event.preventDefault();
261
+ makeDropDownRespondToKeyPress(OVERWRITTEN_KEYS[event.key]);
262
+ }
263
+ };
264
+ var closeDropDown = function () {
265
+ setHighlightedElement(undefined);
266
+ setShouldShowDropdown(false);
267
+ };
268
+ var handleDropdownChange = function (selectedSuggestion) {
269
+ if (selectedSuggestion && editorState.editorInstance) {
270
+ var from = selectedSuggestion.from, length_2 = selectedSuggestion.length, value_1 = selectedSuggestion.value;
271
+ var to = from + length_2;
272
+ editorState.editorInstance.replaceRange(selectedSuggestion.value, { line: 0, ch: from }, { line: 0, ch: to });
273
+ closeDropDown();
274
+ editorState.editorInstance.setCursor({ line: 0, ch: from + value_1.length });
275
+ editorState.editorInstance.focus();
276
+ }
277
+ };
278
+ var handleInputEditorClear = function () {
279
+ handleChange("");
280
+ setValue("");
281
+ editorInstance === null || editorInstance === void 0 ? void 0 : editorInstance.focus();
282
+ };
283
+ var handleInputFocus = function (focusState) {
284
+ onFocusChange && onFocusChange(focusState);
285
+ setIsFocused(focusState);
286
+ focusState ? setShouldShowDropdown(true) : closeDropDown();
287
+ };
288
+ //keyboard handlers
289
+ var handleArrowDown = function () {
290
+ var lastSuggestionIndex = editorState.suggestions.length - 1;
291
+ setCurrentIndex(currentIndex() === lastSuggestionIndex ? 0 : currentIndex() + 1);
292
+ };
293
+ var handleArrowUp = function () {
294
+ var lastSuggestionIndex = editorState.suggestions.length - 1;
295
+ setCurrentIndex(currentIndex() === 0 ? lastSuggestionIndex : currentIndex() - 1);
296
+ };
297
+ var handleEnterPressed = function () {
298
+ handleDropdownChange(editorState.suggestions[currentIndex()]);
299
+ setCurrentIndex(0);
300
+ };
301
+ var handleTabPressed = function () {
302
+ handleDropdownChange(editorState.suggestions[currentIndex()]);
303
+ };
304
+ var makeDropDownRespondToKeyPress = function (keyPressedFromInput) {
305
+ // React state unknown
306
+ if (editorState.dropdownShown) {
307
+ switch (keyPressedFromInput) {
308
+ case OVERWRITTEN_KEYS.ArrowUp:
309
+ handleArrowUp();
310
+ break;
311
+ case OVERWRITTEN_KEYS.ArrowDown:
312
+ handleArrowDown();
313
+ break;
314
+ case OVERWRITTEN_KEYS.Enter:
315
+ handleEnterPressed();
316
+ break;
317
+ case OVERWRITTEN_KEYS.Tab:
318
+ handleTabPressed();
319
+ break;
320
+ default:
321
+ //do nothing
322
+ }
323
+ }
324
+ };
325
+ var handleItemHighlighting = React.useCallback(function (item) {
326
+ setHighlightedElement(item);
327
+ }, []);
328
+ var hasError = !!value && !pathIsValid && !pathValidationPending;
329
+ var autoSuggestionInput = React.createElement("div", { id: id, className: "ecc-auto-suggestion-box" },
330
+ React.createElement("div", { className: "ecc-auto-suggestion-box__editor-box " + BlueprintClassNames.INPUT_GROUP + " " + BlueprintClassNames.FILL + " " + (hasError ? BlueprintClassNames.INTENT_DANGER : "") },
331
+ React.createElement(SingleLineCodeEditor, { mode: "null", setEditorInstance: setEditorInstance, onChange: handleChange, onCursorChange: handleCursorChange, initialValue: value, onFocusChange: handleInputFocus, onKeyDown: handleInputEditorKeyPress, enableTab: useTabForCompletions, placeholder: placeholder, onSelection: setSelectedTextRanges, showScrollBar: showScrollBar }),
332
+ !!value && (React.createElement("span", { className: BlueprintClassNames.INPUT_ACTION },
333
+ React.createElement(IconButton, { "data-test-id": "value-path-clear-btn", name: "operation-clear", text: clearIconText, onClick: handleInputEditorClear })))),
334
+ shouldShowDropdown ? React.createElement(AutoSuggestionList, { left: coords.left, loading: suggestionsPending, options: suggestions, isOpen: !suggestionsPending && shouldShowDropdown, onItemSelectionChange: handleDropdownChange, currentlyFocusedIndex: focusedIndex, itemToHighlight: handleItemHighlighting }) : null);
335
+ var withRightElement = rightElement || leftElement ? React.createElement(Toolbar, { noWrap: true },
336
+ leftElement && React.createElement(ToolbarSection, null, leftElement),
337
+ React.createElement(ToolbarSection, { canGrow: true }, autoSuggestionInput),
338
+ rightElement && React.createElement(ToolbarSection, null, rightElement)) : autoSuggestionInput;
339
+ return label ? (React.createElement(FieldItem, { labelAttributes: {
340
+ text: (React.createElement(React.Fragment, null,
341
+ label,
342
+ "\u00A0",
343
+ (pathValidationPending || suggestionsPending) && (React.createElement(Spinner, { size: "tiny", position: "inline", description: "Validating value path" }))))
344
+ }, hasStateDanger: hasError, messageText: hasError ? validationErrorText : undefined }, withRightElement)) : withRightElement;
345
+ };
346
+ export default AutoSuggestion;
347
+ //# sourceMappingURL=AutoSuggestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoSuggestion.js","sourceRoot":"","sources":["../../../../src/components/AutoSuggestion/AutoSuggestion.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ import React from "react";
18
+ import computeScrollIntoView from "compute-scroll-into-view";
19
+ import { Menu, MenuItem, Highlighter, OverviewItem, OverviewItemDescription, OverviewItemLine, OverflowText, Spinner, Spacing, Tooltip, } from "./../../";
20
+ var ListItem = function (_a, ref) {
21
+ var item = _a.item;
22
+ var listItem = (React.createElement(OverviewItem, { densityHigh: true },
23
+ React.createElement(OverviewItemDescription, null,
24
+ React.createElement(OverviewItemLine, null,
25
+ React.createElement(OverflowText, { ellipsis: "reverse" },
26
+ React.createElement(Highlighter, { label: item.value, searchValue: item.query }))),
27
+ item.description ? (React.createElement(OverviewItemLine, { small: true },
28
+ React.createElement(OverflowText, null,
29
+ React.createElement(Highlighter, { label: item.description, searchValue: item.query })))) : null)));
30
+ return (React.createElement("div", { ref: ref }, !!item.description && item.description.length > 50 ? (React.createElement(Tooltip, { content: item.description }, listItem)) : (React.createElement(React.Fragment, null, listItem))));
31
+ };
32
+ var Item = React.forwardRef(ListItem);
33
+ /** A drop-down-like list that can be used in combination with other components to show and select items. */
34
+ export var AutoSuggestionList = function (_a) {
35
+ var isOpen = _a.isOpen, options = _a.options, loading = _a.loading, onItemSelectionChange = _a.onItemSelectionChange, left = _a.left, currentlyFocusedIndex = _a.currentlyFocusedIndex, itemToHighlight = _a.itemToHighlight;
36
+ var _b = __read(React.useState(undefined), 2), hoveredItem = _b[0], setHoveredItem = _b[1];
37
+ // Refs of list items
38
+ var _c = __read(React.useState([]), 1), refs = _c[0];
39
+ var dropdownRef = React.useRef(null);
40
+ var generateRef = function (index) {
41
+ if (!refs[index]) {
42
+ refs[index] = React.createRef();
43
+ }
44
+ return refs[index];
45
+ };
46
+ React.useEffect(function () {
47
+ var listIndexNode = refs[currentlyFocusedIndex];
48
+ if ((dropdownRef === null || dropdownRef === void 0 ? void 0 : dropdownRef.current) && (listIndexNode === null || listIndexNode === void 0 ? void 0 : listIndexNode.current)) {
49
+ var actions = computeScrollIntoView(listIndexNode.current, {
50
+ boundary: dropdownRef.current,
51
+ block: "nearest",
52
+ scrollMode: "if-needed",
53
+ });
54
+ actions.forEach(function (_a) {
55
+ var el = _a.el, top = _a.top, left = _a.left;
56
+ el.scrollTop = top;
57
+ el.scrollLeft = left;
58
+ });
59
+ }
60
+ }, [currentlyFocusedIndex, refs]);
61
+ var focusedItem = options[currentlyFocusedIndex];
62
+ // Decide which item to highlight
63
+ React.useEffect(function () {
64
+ itemToHighlight(!isOpen ? undefined : hoveredItem || focusedItem);
65
+ }, [
66
+ currentlyFocusedIndex,
67
+ itemToHighlight,
68
+ focusedItem,
69
+ isOpen,
70
+ hoveredItem,
71
+ ]);
72
+ var Loader = (React.createElement(OverviewItem, { hasSpacing: true },
73
+ React.createElement(OverviewItemLine, null, "Fetching suggestions"),
74
+ React.createElement(Spacing, { size: "tiny", vertical: true }),
75
+ React.createElement(Spinner, { position: "inline", description: "" })));
76
+ var loadingOrHasSuggestions = loading || options.length;
77
+ if (!loadingOrHasSuggestions || !isOpen)
78
+ return null;
79
+ return (React.createElement("div", { className: "ecc-auto-suggestion-box__dropdown", style: { left: left }, ref: dropdownRef }, loading ? (Loader) : (React.createElement(Menu, null, options.map(function (item, index) { return (React.createElement(MenuItem, { key: index, internalProps: {
80
+ active: currentlyFocusedIndex === index,
81
+ onMouseDown: function (e) { return e.preventDefault(); },
82
+ onClick: function () { return onItemSelectionChange(item); },
83
+ text: (React.createElement(Item, { ref: generateRef(index), item: item })),
84
+ onMouseEnter: function () { return setHoveredItem(item); },
85
+ onMouseLeave: function () { return setHoveredItem(undefined); },
86
+ onMouseOver: function () {
87
+ if (item.value !== (hoveredItem === null || hoveredItem === void 0 ? void 0 : hoveredItem.value)) {
88
+ setHoveredItem(item);
89
+ }
90
+ },
91
+ } })); })))));
92
+ };
93
+ //# sourceMappingURL=AutoSuggestionList.js.map