windmill-components 1.70.0 → 1.75.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 (408) hide show
  1. package/assets/app.css +12 -1
  2. package/components/AppConnect.svelte +4 -3
  3. package/components/DisplayResult.svelte +27 -9
  4. package/components/FieldHeader.svelte +12 -8
  5. package/components/FlowBuilder.svelte +107 -39
  6. package/components/FlowBuilder.svelte.d.ts +5 -0
  7. package/components/FlowGraphViewer.svelte +5 -4
  8. package/components/FlowJobResult.svelte +3 -3
  9. package/components/FlowPreviewContent.svelte +3 -8
  10. package/components/FlowStatusViewer.svelte +21 -8
  11. package/components/GroupEditor.svelte +8 -0
  12. package/components/InputTransformForm.svelte +13 -20
  13. package/components/InputTransformSchemaForm.svelte +103 -0
  14. package/components/InputTransformSchemaForm.svelte.d.ts +24 -0
  15. package/components/LogViewer.svelte +1 -1
  16. package/components/ModulePreview.svelte +3 -2
  17. package/components/Multiselect.svelte +1 -1
  18. package/components/Path.svelte +15 -11
  19. package/components/Popover.svelte +2 -13
  20. package/components/ResourcePicker.svelte +33 -14
  21. package/components/RunChart.svelte +24 -5
  22. package/components/RunForm.svelte +5 -6
  23. package/components/RunForm.svelte.d.ts +1 -0
  24. package/components/SchemaForm.svelte +59 -57
  25. package/components/SchemaForm.svelte.d.ts +0 -5
  26. package/components/ScriptBuilder.svelte +30 -14
  27. package/components/ScriptPicker.svelte +3 -0
  28. package/components/SimpleEditor.svelte +4 -1
  29. package/components/SimpleEditor.svelte.d.ts +2 -0
  30. package/components/Slider.svelte +6 -1
  31. package/components/Slider.svelte.d.ts +1 -0
  32. package/components/TemplateEditor.svelte +1 -1
  33. package/components/TestJobLoader.svelte +2 -2
  34. package/components/Toggle.svelte +17 -4
  35. package/components/Toggle.svelte.d.ts +2 -0
  36. package/components/Tooltip.svelte +1 -1
  37. package/components/UserSettings.svelte +2 -0
  38. package/components/apps/components/buttons/AppButton.svelte +38 -22
  39. package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
  40. package/components/apps/components/buttons/AppForm.svelte +16 -6
  41. package/components/apps/components/buttons/AppForm.svelte.d.ts +3 -0
  42. package/components/apps/components/buttons/AppFormButton.svelte +12 -4
  43. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +3 -0
  44. package/components/apps/components/display/AppBarChart.svelte +15 -7
  45. package/components/apps/components/display/AppBarChart.svelte.d.ts +3 -0
  46. package/components/apps/components/display/AppDisplayComponent.svelte +17 -12
  47. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +1 -0
  48. package/components/apps/components/display/AppHtml.svelte +18 -4
  49. package/components/apps/components/display/AppHtml.svelte.d.ts +3 -0
  50. package/components/apps/components/display/AppIcon.svelte +20 -8
  51. package/components/apps/components/display/AppIcon.svelte.d.ts +3 -0
  52. package/components/apps/components/display/AppImage.svelte +17 -10
  53. package/components/apps/components/display/AppImage.svelte.d.ts +3 -0
  54. package/components/apps/components/display/AppMap.svelte +214 -0
  55. package/components/apps/components/display/AppMap.svelte.d.ts +23 -0
  56. package/components/apps/components/display/AppPdf.svelte +304 -0
  57. package/components/apps/components/display/AppPdf.svelte.d.ts +24 -0
  58. package/components/apps/components/display/AppPieChart.svelte +15 -7
  59. package/components/apps/components/display/AppPieChart.svelte.d.ts +3 -0
  60. package/components/apps/components/display/AppScatterChart.svelte +12 -4
  61. package/components/apps/components/display/AppScatterChart.svelte.d.ts +3 -0
  62. package/components/apps/components/display/AppText.svelte +38 -32
  63. package/components/apps/components/display/AppText.svelte.d.ts +1 -0
  64. package/components/apps/components/display/AppTimeseries.svelte +12 -4
  65. package/components/apps/components/display/AppTimeseries.svelte.d.ts +3 -0
  66. package/components/apps/components/display/PlotlyHtml.svelte +8 -14
  67. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +1 -1
  68. package/components/apps/components/display/VegaLiteHtml.svelte +3 -8
  69. package/components/apps/components/display/VegaLiteHtml.svelte.d.ts +1 -0
  70. package/components/apps/components/display/index.d.ts +3 -0
  71. package/components/apps/components/display/index.js +3 -0
  72. package/components/apps/components/display/table/AppAggridTable.svelte +16 -7
  73. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
  74. package/components/apps/components/display/table/AppTable.svelte +65 -20
  75. package/components/apps/components/display/table/AppTable.svelte.d.ts +3 -1
  76. package/components/apps/components/display/table/AppTableFooter.svelte +8 -1
  77. package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +2 -0
  78. package/components/apps/components/helpers/AlignWrapper.svelte +13 -7
  79. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +3 -1
  80. package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
  81. package/components/apps/components/helpers/InputValue.svelte +38 -15
  82. package/components/apps/components/helpers/NonRunnableComponent.svelte +18 -3
  83. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -0
  84. package/components/apps/components/helpers/RefreshButton.svelte +1 -1
  85. package/components/apps/components/helpers/ResizeWrapper.svelte +24 -0
  86. package/components/apps/components/helpers/ResizeWrapper.svelte.d.ts +19 -0
  87. package/components/apps/components/helpers/RunnableComponent.svelte +76 -68
  88. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -1
  89. package/components/apps/components/helpers/RunnableWrapper.svelte +9 -5
  90. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +3 -1
  91. package/components/apps/components/inputs/AppCheckbox.svelte +8 -2
  92. package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +3 -0
  93. package/components/apps/components/inputs/AppDateInput.svelte +25 -18
  94. package/components/apps/components/inputs/AppDateInput.svelte.d.ts +6 -1
  95. package/components/apps/components/inputs/AppFileInput.svelte +22 -14
  96. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +3 -0
  97. package/components/apps/components/inputs/AppMultiSelect.svelte +82 -0
  98. package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +27 -0
  99. package/components/apps/components/inputs/AppNumberInput.svelte +20 -16
  100. package/components/apps/components/inputs/AppNumberInput.svelte.d.ts +5 -0
  101. package/components/apps/components/inputs/AppRangeInput.svelte +55 -14
  102. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +3 -0
  103. package/components/apps/components/inputs/AppSelect.svelte +58 -21
  104. package/components/apps/components/inputs/AppSelect.svelte.d.ts +3 -0
  105. package/components/apps/components/inputs/AppSliderInputs.svelte +41 -9
  106. package/components/apps/components/inputs/AppSliderInputs.svelte.d.ts +3 -0
  107. package/components/apps/components/inputs/AppTextInput.svelte +53 -19
  108. package/components/apps/components/inputs/AppTextInput.svelte.d.ts +6 -0
  109. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +13 -3
  110. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +3 -0
  111. package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -0
  112. package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +1 -0
  113. package/components/apps/components/layout/AppContainer.svelte +21 -13
  114. package/components/apps/components/layout/AppContainer.svelte.d.ts +3 -0
  115. package/components/apps/components/layout/AppDivider.svelte +24 -4
  116. package/components/apps/components/layout/AppDivider.svelte.d.ts +3 -1
  117. package/components/apps/components/layout/AppDrawer.svelte +89 -0
  118. package/components/apps/components/layout/AppDrawer.svelte.d.ts +24 -0
  119. package/components/apps/components/layout/AppSplitpanes.svelte +88 -0
  120. package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +26 -0
  121. package/components/apps/components/layout/AppTabs.svelte +62 -21
  122. package/components/apps/components/layout/AppTabs.svelte.d.ts +3 -0
  123. package/components/apps/components/layout/index.d.ts +2 -0
  124. package/components/apps/components/layout/index.js +2 -0
  125. package/components/apps/editor/AppEditor.svelte +83 -19
  126. package/components/apps/editor/AppEditor.svelte.d.ts +3 -1
  127. package/components/apps/editor/AppEditorHeader.svelte +107 -32
  128. package/components/apps/editor/AppInputs.svelte +3 -3
  129. package/components/apps/editor/AppPreview.svelte +20 -7
  130. package/components/apps/editor/ComponentHeader.svelte +14 -3
  131. package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -0
  132. package/components/apps/editor/GridEditor.svelte +85 -71
  133. package/components/apps/editor/GridPanel.svelte +29 -0
  134. package/components/apps/editor/GridPanel.svelte.d.ts +18 -0
  135. package/components/apps/editor/RecomputeAllComponents.svelte +8 -6
  136. package/components/apps/editor/SettingsPanel.svelte +14 -24
  137. package/components/apps/editor/SubGridEditor.svelte +46 -18
  138. package/components/apps/editor/SubGridEditor.svelte.d.ts +5 -0
  139. package/components/apps/editor/appUtils.d.ts +12 -2
  140. package/components/apps/editor/appUtils.js +121 -21
  141. package/components/apps/editor/component/Component.svelte +282 -57
  142. package/components/apps/editor/component/Component.svelte.d.ts +3 -1
  143. package/components/apps/editor/component/ComponentNavigation.svelte +125 -0
  144. package/components/apps/editor/component/ComponentNavigation.svelte.d.ts +14 -0
  145. package/components/apps/editor/component/components.d.ts +14 -2
  146. package/components/apps/editor/component/components.js +417 -43
  147. package/components/apps/editor/component/default-codes.js +6 -6
  148. package/components/apps/editor/component/sets.js +11 -3
  149. package/components/apps/editor/componentsPanel/ComponentList.svelte +72 -29
  150. package/components/apps/editor/componentsPanel/CssProperty.svelte +59 -23
  151. package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +2 -1
  152. package/components/apps/editor/componentsPanel/CssSettings.svelte +56 -9
  153. package/components/apps/editor/componentsPanel/ListItem.svelte +23 -12
  154. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +1 -0
  155. package/components/apps/editor/componentsPanel/componentStaticValues.js +14 -2
  156. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  157. package/components/apps/editor/contextPanel/ContextPanel.svelte +107 -61
  158. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +13 -3
  159. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
  160. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +63 -25
  161. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +5 -0
  162. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +11 -5
  163. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
  164. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +26 -17
  165. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +95 -85
  166. package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -9
  167. package/components/apps/editor/inlineScriptsPanel/utils.js +19 -8
  168. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +10 -9
  169. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +21 -12
  170. package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +1 -1
  171. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +95 -56
  172. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +1 -0
  173. package/components/apps/editor/settingsPanel/GridPane.svelte +75 -0
  174. package/components/apps/editor/settingsPanel/GridPane.svelte.d.ts +20 -0
  175. package/components/apps/editor/settingsPanel/GridTab.svelte +5 -5
  176. package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +2 -0
  177. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
  178. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +1 -1
  179. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +13 -6
  180. package/components/apps/editor/settingsPanel/Recompute.svelte +1 -1
  181. package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +1 -1
  182. package/components/apps/editor/settingsPanel/TableActions.svelte +28 -1
  183. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +2 -2
  184. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +48 -0
  185. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +19 -0
  186. package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +1 -1
  187. package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +1 -1
  188. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +27 -3
  189. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +2 -0
  190. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -2
  191. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +2 -1
  192. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +54 -6
  193. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +1 -0
  194. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +7 -9
  195. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +1 -1
  196. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +1 -0
  197. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +1 -0
  198. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +1 -1
  199. package/components/apps/inputType.d.ts +6 -5
  200. package/components/apps/rx.js +2 -1
  201. package/components/apps/store.d.ts +6 -1
  202. package/components/apps/types.d.ts +14 -4
  203. package/components/apps/utils.d.ts +2 -2
  204. package/components/apps/utils.js +21 -49
  205. package/components/common/button/ButtonPopup.svelte +2 -0
  206. package/components/common/button/ButtonPopup.svelte.d.ts +1 -0
  207. package/components/common/button/UndoRedo.svelte +32 -0
  208. package/components/common/button/UndoRedo.svelte.d.ts +20 -0
  209. package/components/common/drawer/Drawer.svelte +10 -4
  210. package/components/common/drawer/Drawer.svelte.d.ts +3 -1
  211. package/components/common/drawer/DrawerContent.svelte +0 -1
  212. package/components/common/fileInput/FileInput.svelte +47 -21
  213. package/components/common/fileInput/FileInput.svelte.d.ts +3 -1
  214. package/components/common/fileInput/model.d.ts +1 -0
  215. package/components/common/fileInput/model.js +1 -0
  216. package/components/common/index.d.ts +1 -0
  217. package/components/common/index.js +1 -0
  218. package/components/common/menu/Menu.svelte +3 -2
  219. package/components/common/menu/Menu.svelte.d.ts +2 -1
  220. package/components/common/modal/Modal.svelte +9 -4
  221. package/components/common/modal/Modal.svelte.d.ts +2 -0
  222. package/components/common/table/AppRow.svelte +13 -4
  223. package/components/common/table/AppRow.svelte.d.ts +1 -0
  224. package/components/common/table/FlowRow.svelte +21 -8
  225. package/components/common/table/FlowRow.svelte.d.ts +1 -0
  226. package/components/common/table/ScriptRow.svelte +42 -10
  227. package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  228. package/components/common/tabs/Tab.svelte +12 -5
  229. package/components/common/tabs/Tab.svelte.d.ts +4 -1
  230. package/components/common/tabs/Tabs.svelte +8 -6
  231. package/components/common/tabs/Tabs.svelte.d.ts +3 -1
  232. package/components/flows/FlowEditor.svelte +6 -4
  233. package/components/flows/common/FlowCardHeader.svelte +4 -1
  234. package/components/flows/content/BranchPredicateEditor.svelte +3 -4
  235. package/components/flows/content/CapturePayload.svelte +1 -2
  236. package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
  237. package/components/flows/content/FlowConstants.svelte +7 -13
  238. package/components/flows/content/FlowEditorPanel.svelte +4 -3
  239. package/components/flows/content/FlowFailureModule.svelte +2 -1
  240. package/components/flows/content/FlowInput.svelte +4 -2
  241. package/components/flows/content/FlowLoop.svelte +3 -4
  242. package/components/flows/content/FlowModuleComponent.svelte +23 -11
  243. package/components/flows/content/FlowModuleEarlyStop.svelte +3 -1
  244. package/components/flows/content/FlowModuleHeader.svelte +26 -3
  245. package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
  246. package/components/flows/content/FlowModuleSleep.svelte +2 -2
  247. package/components/flows/content/FlowModuleWrapper.svelte +2 -8
  248. package/components/flows/content/FlowSchedules.svelte +1 -2
  249. package/components/flows/content/FlowSettings.svelte +17 -37
  250. package/components/flows/content/ScriptEditorDrawer.svelte +98 -0
  251. package/components/flows/content/ScriptEditorDrawer.svelte.d.ts +19 -0
  252. package/components/flows/flowState.d.ts +2 -3
  253. package/components/flows/flowState.js +1 -4
  254. package/components/flows/flowStateUtils.d.ts +7 -6
  255. package/components/flows/flowStateUtils.js +5 -9
  256. package/components/flows/flowStore.d.ts +5 -4
  257. package/components/flows/flowStore.js +5 -17
  258. package/components/flows/header/FlowImportExportMenu.svelte +2 -1
  259. package/components/flows/map/FlowConstantsItem.svelte +2 -2
  260. package/components/flows/map/FlowErrorHandlerItem.svelte +12 -13
  261. package/components/flows/map/FlowInputsItem.svelte +2 -3
  262. package/components/flows/map/FlowModuleSchemaItem.svelte +88 -91
  263. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +3 -3
  264. package/components/flows/map/FlowModuleSchemaMap.svelte +164 -138
  265. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
  266. package/components/flows/map/FlowSettingsItem.svelte +5 -4
  267. package/components/flows/map/InsertModuleButton.svelte +12 -10
  268. package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -0
  269. package/components/flows/map/MapItem.svelte +176 -103
  270. package/components/flows/map/MapItem.svelte.d.ts +20 -2
  271. package/components/flows/map/VirtualItem.svelte +129 -0
  272. package/components/flows/map/VirtualItem.svelte.d.ts +44 -0
  273. package/components/flows/pickers/WorkspaceScriptPicker.svelte +1 -1
  274. package/components/flows/previousResults.d.ts +1 -1
  275. package/components/flows/previousResults.js +32 -17
  276. package/components/flows/types.d.ts +13 -1
  277. package/components/flows/utils.js +1 -1
  278. package/components/graph/FlowGraph.svelte +227 -167
  279. package/components/graph/FlowGraph.svelte.d.ts +14 -1
  280. package/components/graph/model.d.ts +6 -36
  281. package/components/graph/model.js +1 -1
  282. package/components/graph/svelvet/LICENSE +21 -0
  283. package/components/graph/svelvet/collapsible/controllers/util.d.ts +15 -0
  284. package/components/graph/svelvet/collapsible/controllers/util.js +144 -0
  285. package/components/graph/svelvet/collapsible/models/Collapsible.d.ts +17 -0
  286. package/components/graph/svelvet/collapsible/models/Collapsible.js +25 -0
  287. package/components/graph/svelvet/collapsible/types/types.d.ts +8 -0
  288. package/components/graph/svelvet/collapsible/types/types.js +1 -0
  289. package/components/graph/svelvet/container/README.md +7 -0
  290. package/components/graph/svelvet/container/controllers/middleware.d.ts +18 -0
  291. package/components/graph/svelvet/container/controllers/middleware.js +101 -0
  292. package/components/graph/svelvet/container/views/GraphView.svelte +252 -0
  293. package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +25 -0
  294. package/components/graph/svelvet/container/views/Svelvet.svelte +131 -0
  295. package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +41 -0
  296. package/components/graph/svelvet/customCss/controllers/getCss.d.ts +2 -0
  297. package/components/graph/svelvet/customCss/controllers/getCss.js +57 -0
  298. package/components/graph/svelvet/d3/controllers/README.md +3 -0
  299. package/components/graph/svelvet/d3/controllers/d3.d.ts +5 -0
  300. package/components/graph/svelvet/d3/controllers/d3.js +59 -0
  301. package/components/graph/svelvet/d3/controllers/d3Old.d.ts +1 -0
  302. package/components/graph/svelvet/d3/controllers/d3Old.js +43 -0
  303. package/components/graph/svelvet/docs/CHANGELOG.md +145 -0
  304. package/components/graph/svelvet/docs/DESIGN_PATTERNS.md +44 -0
  305. package/components/graph/svelvet/docs/DOCUMENTATION.md +5 -0
  306. package/components/graph/svelvet/docs/README.md +34 -0
  307. package/components/graph/svelvet/docs/TODO.md +14 -0
  308. package/components/graph/svelvet/docs/Tutorials.md +25 -0
  309. package/components/graph/svelvet/docs/images/css-background-after.png +0 -0
  310. package/components/graph/svelvet/docs/images/css-background-before.png +0 -0
  311. package/components/graph/svelvet/docs/images/custom-edges-after.png +0 -0
  312. package/components/graph/svelvet/docs/images/custom-edges-before.png +0 -0
  313. package/components/graph/svelvet/docs/images/custom-nodes-after.png +0 -0
  314. package/components/graph/svelvet/docs/images/custom-nodes-before.png +0 -0
  315. package/components/graph/svelvet/docs/images/custom-svelte-components-after.png +0 -0
  316. package/components/graph/svelvet/docs/images/custom-svelte-components-before.png +0 -0
  317. package/components/graph/svelvet/docs/images/html-docs-after.png +0 -0
  318. package/components/graph/svelvet/docs/images/html-docs-before.png +0 -0
  319. package/components/graph/svelvet/docs/images/minimap-after.png +0 -0
  320. package/components/graph/svelvet/docs/images/minimap-before.png +0 -0
  321. package/components/graph/svelvet/docs/images/node-classes-after.png +0 -0
  322. package/components/graph/svelvet/docs/images/node-classes-before.png +0 -0
  323. package/components/graph/svelvet/docs/images/node-create-after.png +0 -0
  324. package/components/graph/svelvet/docs/images/node-create-before.png +0 -0
  325. package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +4 -0
  326. package/components/graph/svelvet/edges/controllers/anchorCbDev.js +92 -0
  327. package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +57 -0
  328. package/components/graph/svelvet/edges/controllers/anchorCbUser.js +73 -0
  329. package/components/graph/svelvet/edges/controllers/util.d.ts +37 -0
  330. package/components/graph/svelvet/edges/controllers/util.js +72 -0
  331. package/components/graph/svelvet/edges/models/Anchor.d.ts +48 -0
  332. package/components/graph/svelvet/edges/models/Anchor.js +122 -0
  333. package/components/graph/svelvet/edges/models/Edge.d.ts +47 -0
  334. package/components/graph/svelvet/edges/models/Edge.js +107 -0
  335. package/components/graph/svelvet/edges/types/types.d.ts +18 -0
  336. package/components/graph/svelvet/edges/types/types.js +1 -0
  337. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +105 -0
  338. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +18 -0
  339. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte +12 -0
  340. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte.d.ts +17 -0
  341. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +43 -0
  342. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +17 -0
  343. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +137 -0
  344. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +17 -0
  345. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +176 -0
  346. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +60 -0
  347. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +8 -0
  348. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +25 -0
  349. package/components/graph/svelvet/edges/views/Edges/types.d.ts +52 -0
  350. package/components/graph/svelvet/edges/views/Edges/types.js +1 -0
  351. package/components/graph/svelvet/edges/views/Edges/utils.d.ts +33 -0
  352. package/components/graph/svelvet/edges/views/Edges/utils.js +31 -0
  353. package/components/graph/svelvet/editEdges/views/EditEdge.svelte +151 -0
  354. package/components/graph/svelvet/editEdges/views/EditEdge.svelte.d.ts +20 -0
  355. package/components/graph/svelvet/nodes/controllers/util.d.ts +9 -0
  356. package/components/graph/svelvet/nodes/controllers/util.js +13 -0
  357. package/components/graph/svelvet/nodes/models/Node.d.ts +78 -0
  358. package/components/graph/svelvet/nodes/models/Node.js +195 -0
  359. package/components/graph/svelvet/nodes/views/EditNode.svelte +147 -0
  360. package/components/graph/svelvet/nodes/views/EditNode.svelte.d.ts +33 -0
  361. package/components/graph/svelvet/nodes/views/Node.svelte +85 -0
  362. package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +22 -0
  363. package/components/graph/svelvet/resizableNodes/controllers/util.d.ts +11 -0
  364. package/components/graph/svelvet/resizableNodes/controllers/util.js +24 -0
  365. package/components/graph/svelvet/resizableNodes/models/ResizeNode.d.ts +33 -0
  366. package/components/graph/svelvet/resizableNodes/models/ResizeNode.js +71 -0
  367. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte +81 -0
  368. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte.d.ts +20 -0
  369. package/components/graph/svelvet/store/controllers/storeApi.d.ts +32 -0
  370. package/components/graph/svelvet/store/controllers/storeApi.js +111 -0
  371. package/components/graph/svelvet/store/controllers/userApi.d.ts +3 -0
  372. package/components/graph/svelvet/store/controllers/userApi.js +18 -0
  373. package/components/graph/svelvet/store/controllers/util.d.ts +31 -0
  374. package/components/graph/svelvet/store/controllers/util.js +180 -0
  375. package/components/graph/svelvet/store/models/store.d.ts +12 -0
  376. package/components/graph/svelvet/store/models/store.js +9 -0
  377. package/components/graph/svelvet/store/types/types.d.ts +134 -0
  378. package/components/graph/svelvet/store/types/types.js +1 -0
  379. package/components/graph/svelvet/types/README.md +3 -0
  380. package/components/graph/svelvet/types/index.d.ts +2 -0
  381. package/components/graph/svelvet/types/index.js +1 -0
  382. package/components/graph/svelvet/types/types.d.ts +49 -0
  383. package/components/graph/svelvet/types/types.js +18 -0
  384. package/components/graph/util.js +2 -2
  385. package/components/home/ItemsList.svelte +53 -5
  386. package/components/home/ItemsList.svelte.d.ts +1 -0
  387. package/components/home/ListFilters.svelte +7 -2
  388. package/components/jobs/JobDetail.svelte +12 -1
  389. package/components/propertyPicker/ObjectViewer.svelte +6 -4
  390. package/consts.d.ts +1 -0
  391. package/consts.js +1 -0
  392. package/defaults.d.ts +4 -0
  393. package/defaults.js +4 -0
  394. package/history.d.ts +9 -0
  395. package/history.js +56 -0
  396. package/package.json +92 -8
  397. package/script_helpers.d.ts +1 -1
  398. package/script_helpers.js +1 -0
  399. package/scripts.d.ts +1 -1
  400. package/scripts.js +8 -1
  401. package/utils.d.ts +9 -4
  402. package/utils.js +44 -8
  403. package/components/apps/editor/TablePanel.svelte +0 -19
  404. package/components/apps/editor/TablePanel.svelte.d.ts +0 -17
  405. package/components/flows/map/FlowBranchAllMap.svelte +0 -100
  406. package/components/flows/map/FlowBranchAllMap.svelte.d.ts +0 -17
  407. package/components/flows/map/FlowBranchOneMap.svelte +0 -124
  408. package/components/flows/map/FlowBranchOneMap.svelte.d.ts +0 -17
package/assets/app.css CHANGED
@@ -50,12 +50,23 @@
50
50
  .Template-editor span.mtk20 {
51
51
  color: black !important;
52
52
  }
53
+
54
+ ::-webkit-scrollbar {
55
+ width: 9px;
56
+ height: 9px;
57
+ }
58
+ ::-webkit-scrollbar-track {
59
+ background: transparent;
60
+ }
61
+ ::-webkit-scrollbar-thumb {
62
+ background-color: rgba(155, 155, 155, 0.5);
63
+ border: transparent;
64
+ }
53
65
  }
54
66
 
55
67
  @layer components {
56
68
  /* Flow graph viewer -> Svelvet library internal class overwrite */
57
69
  .Node {
58
70
  display: flex !important;
59
- cursor: pointer !important;
60
71
  }
61
72
  }
@@ -72,7 +72,7 @@ let args = {};
72
72
  $: key =
73
73
  apiTokenApps[resource_type]?.key ??
74
74
  (args != undefined
75
- ? Object.keys(args).filter((x) => ['token', 'password', 'api_key'].includes(x))[0]
75
+ ? Object.keys(args).filter((x) => ['token', 'password', 'api_key', 'key'].includes(x))[0]
76
76
  : undefined);
77
77
  let scopes = [];
78
78
  let extra_params = [];
@@ -230,6 +230,7 @@ $: disabled =
230
230
  args['token'] == '' &&
231
231
  args['password'] == '' &&
232
232
  args['api_key'] == '' &&
233
+ args['key'] == '' &&
233
234
  key != undefined) ||
234
235
  (step == 3 && pathError != '') ||
235
236
  !isValid;
@@ -365,7 +366,7 @@ let filteredConnectsManual = [];
365
366
  bind:error={pathError}
366
367
  bind:path
367
368
  initialPath=""
368
- namePlaceholder="{resource_type}"
369
+ namePlaceholder={resource_type}
369
370
  kind="resource"
370
371
  />
371
372
 
@@ -402,7 +403,7 @@ let filteredConnectsManual = [];
402
403
  {:else}
403
404
  <Path
404
405
  initialPath=""
405
- namePlaceholder="{resource_type}"
406
+ namePlaceholder={resource_type}
406
407
  bind:error={pathError}
407
408
  bind:path
408
409
  kind="resource"
@@ -1,9 +1,10 @@
1
1
  <script>import { Highlight } from 'svelte-highlight';
2
2
  import { json } from 'svelte-highlight/languages';
3
3
  import TableCustom from './TableCustom.svelte';
4
- import { truncate } from '../utils';
5
- import { Button } from './common';
4
+ import { copyToClipboard, truncate } from '../utils';
5
+ import { Button, Drawer, DrawerContent } from './common';
6
6
  import autosize from 'svelte-autosize';
7
+ import { ClipboardCopy } from 'lucide-svelte';
7
8
  export let result;
8
9
  export let requireHtmlApproval = false;
9
10
  let resultKind;
@@ -70,16 +71,35 @@ function inferResultKind(result) {
70
71
  return 'json';
71
72
  }
72
73
  let payload = '';
74
+ let jsonViewer;
73
75
  </script>
74
76
 
77
+ <Drawer bind:this={jsonViewer} size="900px">
78
+ <DrawerContent title="Expanded Result" on:close={jsonViewer.closeDrawer}>
79
+ <svelte:fragment slot="actions">
80
+ <Button
81
+ on:click={() => copyToClipboard(JSON.stringify(result, null, 4))}
82
+ color="light"
83
+ size="xs"
84
+ >
85
+ <div class="flex gap-2 items-center">Copy to clipboard <ClipboardCopy /> </div>
86
+ </Button>
87
+ </svelte:fragment>
88
+ <Highlight language={json} code={JSON.stringify(result, null, 4).replace(/\\n/g, '\n')} />
89
+ </DrawerContent>
90
+ </Drawer>
91
+
75
92
  <div class="inline-highlight">
76
93
  {#if result != undefined}
77
94
  {#if resultKind && resultKind != 'json'}
78
95
  <div class="mb-2 text-gray-500 text-sm bg-gray-50/20">
79
- as JSON&nbsp;<input type="checkbox" bind:checked={forceJson} /></div
96
+ as JSON&nbsp;<input class="windmillapp" type="checkbox" bind:checked={forceJson} /></div
80
97
  >{/if}{#if typeof result == 'object' && Object.keys(result).length > 0}<div
81
- class="mb-2 text-sm text-gray-700"
82
- >The result keys are: <b>{truncate(Object.keys(result).join(', '), 50)}</b></div
98
+ class="mb-2 min-w-[400px] text-sm text-gray-700 relative"
99
+ >The result keys are: <b>{truncate(Object.keys(result).join(', '), 50)}</b>
100
+ <div class="text-gray-500 text-sm absolute top-0 right-2">
101
+ <button on:click={jsonViewer.openDrawer}>Expand JSON</button>
102
+ </div></div
83
103
  >{/if}{#if !forceJson && resultKind == 'table-col'}<div
84
104
  class="grid grid-flow-col-dense border border-gray-200 rounded-md "
85
105
  >
@@ -207,10 +227,8 @@ let payload = '';
207
227
  ><a rel="noreferrer" target="_blank" href={result['approvalPage']}>Approval Page</a></div
208
228
  >
209
229
  </div>
210
- {:else}<Highlight
211
- language={json}
212
- code={JSON.stringify(result, null, 4).replace(/\\n/g, '\n')}
213
- />
230
+ {:else}
231
+ <Highlight language={json} code={JSON.stringify(result, null, 4).replace(/\\n/g, '\n')} />
214
232
  {/if}
215
233
  {:else}
216
234
  <div class="text-gray-500 text-sm">No result</div>
@@ -7,17 +7,21 @@ export let required = false;
7
7
  export let itemsType = undefined;
8
8
  </script>
9
9
 
10
- <div class="inline-flex flex-row items-center">
10
+ <div class="inline-flex flex-row items-center truncated">
11
11
  <span class="font-semibold">
12
12
  {label}
13
13
  </span>
14
14
  <Required {required} class="!ml-0" />
15
15
 
16
- <span class="text-sm italic ml-1 text-indigo-800">
17
- ({type ?? 'any'}{contentEncoding && contentEncoding != ''
18
- ? `, encoding: ${contentEncoding}`
19
- : ''}{format && format != '' ? `, format: ${format}` : ''}{itemsType?.type
20
- ? ` of ${itemsType?.type}s`
21
- : ''})</span
22
- >
16
+ {#if format && format != ''}
17
+ <span class="text-sm italic ml-1 text-indigo-800">
18
+ ({format})
19
+ </span>
20
+ {:else}
21
+ <span class="text-sm italic ml-1 text-indigo-800">
22
+ ({type ?? 'any'}{contentEncoding && contentEncoding != ''
23
+ ? `, encoding: ${contentEncoding}`
24
+ : ''})</span
25
+ >
26
+ {/if}
23
27
  </div>
@@ -1,20 +1,18 @@
1
1
  <script>import { goto } from '$app/navigation';
2
- import { page } from '$app/stores';
3
2
  import { FlowService, ScheduleService } from '../gen';
3
+ import { initHistory, redo, undo } from '../history';
4
4
  import { userStore, workspaceStore } from '../stores';
5
5
  import { encodeState, formatCron, loadHubScripts, sendUserToast } from '../utils';
6
- import { faCalendarAlt, faEye, faPen, faSave } from '@fortawesome/free-solid-svg-icons';
6
+ import { faCalendarAlt, faPen, faSave } from '@fortawesome/free-solid-svg-icons';
7
7
  import { setContext } from 'svelte';
8
8
  import { writable } from 'svelte/store';
9
9
  import CenteredPage from './CenteredPage.svelte';
10
- import { Button, Drawer, DrawerContent } from './common';
10
+ import { Button, ButtonPopup, ButtonPopupItem, UndoRedo } from './common';
11
11
  import { dirtyStore } from './common/confirmationModal/dirtyStore';
12
- import UnsavedConfirmationModal from './common/confirmationModal/UnsavedConfirmationModal.svelte';
13
12
  import { OFFSET } from './CronInput.svelte';
14
- import FlowGraphViewer from './FlowGraphViewer.svelte';
13
+ import ScriptEditorDrawer from './flows/content/ScriptEditorDrawer.svelte';
15
14
  import FlowEditor from './flows/FlowEditor.svelte';
16
- import { flowStateStore } from './flows/flowState';
17
- import { flowStore } from './flows/flowStore';
15
+ import { dfs } from './flows/flowStore';
18
16
  import FlowImportExportMenu from './flows/header/FlowImportExportMenu.svelte';
19
17
  import FlowPreviewButtons from './flows/header/FlowPreviewButtons.svelte';
20
18
  import { loadFlowSchedule } from './flows/scheduleUtils';
@@ -23,7 +21,8 @@ export let initialPath = '';
23
21
  export let selectedId;
24
22
  export let initialArgs = {};
25
23
  export let loading = false;
26
- let pathError = '';
24
+ export let flowStore;
25
+ export let flowStateStore;
27
26
  async function createSchedule(path) {
28
27
  const { cron, args, enabled } = $scheduleStore;
29
28
  try {
@@ -44,7 +43,9 @@ async function createSchedule(path) {
44
43
  sendUserToast(`The primary schedule could not be created: ${err}`, true);
45
44
  }
46
45
  }
47
- async function saveFlow() {
46
+ let loadingSave = false;
47
+ async function saveFlow(leave) {
48
+ loadingSave = true;
48
49
  const flow = cleanInputs($flowStore);
49
50
  const { cron, args, enabled } = $scheduleStore;
50
51
  $dirtyStore = false;
@@ -108,8 +109,13 @@ async function saveFlow() {
108
109
  await createSchedule(flow.path);
109
110
  }
110
111
  }
111
- sendUserToast(`Flow saved at ${$flowStore.path}`);
112
- goto(`/flows/get/${$flowStore.path}?workspace_id=${$workspaceStore}`);
112
+ loadingSave = false;
113
+ if (leave) {
114
+ goto(`/flows/get/${$flowStore.path}?workspace_id=${$workspaceStore}`);
115
+ }
116
+ else if (initialPath !== $flowStore.path) {
117
+ goto(`/flows/edit/${$flowStore.path}?workspace_id=${$workspaceStore}`);
118
+ }
113
119
  }
114
120
  let timeout = undefined;
115
121
  $: {
@@ -131,17 +137,26 @@ function saveDraft() {
131
137
  }
132
138
  }, 500);
133
139
  }
134
- const selectedIdStore = writable(selectedId);
140
+ const selectedIdStore = writable(selectedId ?? 'settings-metadata');
135
141
  const scheduleStore = writable({ args: {}, cron: '', enabled: false });
136
142
  const previewArgsStore = writable(initialArgs);
143
+ const scriptEditorDrawer = writable(undefined);
144
+ const moving = writable(undefined);
145
+ const history = initHistory($flowStore);
146
+ const testStepStore = writable({});
137
147
  function select(selectedId) {
138
148
  selectedIdStore.set(selectedId);
139
149
  }
140
150
  setContext('FlowEditorContext', {
141
151
  selectedId: selectedIdStore,
142
152
  schedule: scheduleStore,
143
- select,
144
- previewArgs: previewArgsStore
153
+ previewArgs: previewArgsStore,
154
+ scriptEditorDrawer,
155
+ moving,
156
+ history,
157
+ flowStateStore,
158
+ flowStore,
159
+ testStepStore
145
160
  });
146
161
  async function loadSchedule() {
147
162
  loadFlowSchedule(initialPath, $workspaceStore)
@@ -159,38 +174,81 @@ async function loadSchedule() {
159
174
  $: selectedId && select(selectedId);
160
175
  $: initialPath && $workspaceStore && loadSchedule();
161
176
  loadHubScripts();
162
- let flowViewer;
177
+ function onKeyDown(event) {
178
+ switch (event.key) {
179
+ case 'Z':
180
+ if (event.ctrlKey) {
181
+ $flowStore = redo(history);
182
+ event.preventDefault();
183
+ }
184
+ break;
185
+ case 'z':
186
+ if (event.ctrlKey) {
187
+ $flowStore = undo(history, $flowStore);
188
+ $selectedIdStore = 'Input';
189
+ event.preventDefault();
190
+ }
191
+ break;
192
+ case 's':
193
+ if (event.ctrlKey) {
194
+ saveFlow(false);
195
+ event.preventDefault();
196
+ }
197
+ break;
198
+ case 'ArrowDown': {
199
+ let ids = generateIds();
200
+ let idx = ids.indexOf($selectedIdStore);
201
+ if (idx > -1 && idx < ids.length - 1) {
202
+ $selectedIdStore = ids[idx + 1];
203
+ event.preventDefault();
204
+ }
205
+ break;
206
+ }
207
+ case 'ArrowUp': {
208
+ let ids = generateIds();
209
+ let idx = ids.indexOf($selectedIdStore);
210
+ if (idx > 0 && idx < ids.length) {
211
+ $selectedIdStore = ids[idx - 1];
212
+ event.preventDefault();
213
+ }
214
+ break;
215
+ }
216
+ }
217
+ }
218
+ function generateIds() {
219
+ return [
220
+ 'settings-metadata',
221
+ 'constants',
222
+ ...dfs($flowStore.value.modules, (module) => module.id)
223
+ ];
224
+ }
163
225
  </script>
164
226
 
165
- {#if !$userStore?.operator}
166
- <UnsavedConfirmationModal />
227
+ <svelte:window on:keydown={onKeyDown} />
167
228
 
168
- <Drawer bind:this={flowViewer} size="75%">
169
- <DrawerContent title="View Graph" on:close={flowViewer.closeDrawer} noPadding>
170
- <div class="overflow-hidden h-full w-full">
171
- <FlowGraphViewer flow={$flowStore} />
172
- </div>
173
- </DrawerContent>
174
- </Drawer>
229
+ {#if !$userStore?.operator}
230
+ <ScriptEditorDrawer bind:this={$scriptEditorDrawer} />
175
231
 
176
232
  <div class="flex flex-col flex-1 h-screen">
177
233
  <!-- Nav between steps-->
178
234
  <div
179
235
  class="justify-between flex flex-row w-full items-center pl-2.5 pr-6 space-x-4 overflow-x-auto scrollbar-hidden max-h-12 h-full"
180
236
  >
181
- <div class="flex flex-row">
237
+ <div class="flex flex-row gap-4 items-center">
182
238
  <FlowImportExportMenu />
183
- <Button
184
- btnClasses="inline-flex"
185
- startIcon={{ icon: faEye }}
186
- variant="border"
187
- color="light"
188
- size="sm"
189
- on:click={flowViewer.openDrawer}
190
- >
191
- Graph
192
- </Button>
239
+ <UndoRedo
240
+ undoProps={{ disabled: $history.index === 0 }}
241
+ redoProps={{ disabled: $history.index === $history.history.length - 1 }}
242
+ on:undo={() => {
243
+ $flowStore = undo(history, $flowStore)
244
+ $selectedIdStore = 'Input'
245
+ }}
246
+ on:redo={() => {
247
+ $flowStore = redo(history)
248
+ }}
249
+ />
193
250
  </div>
251
+
194
252
  <div class="gap-1 flex-row hidden md:flex shrink overflow-hidden">
195
253
  {#if $scheduleStore.enabled}
196
254
  <Button
@@ -237,12 +295,22 @@ let flowViewer;
237
295
  <div class="flex flex-row space-x-2">
238
296
  <FlowPreviewButtons />
239
297
  <div class="center-center">
240
- <Button
241
- disabled={pathError != ''}
242
- startIcon={{ icon: faSave }}
298
+ <ButtonPopup
299
+ loading={loadingSave}
243
300
  size="sm"
244
- on:click={saveFlow}>Save</Button
301
+ startIcon={{ icon: faSave }}
302
+ on:click={() => saveFlow(false)}
245
303
  >
304
+ <svelte:fragment slot="main">Save</svelte:fragment>
305
+ <ButtonPopupItem on:click={() => saveFlow(true)}>Save and exit</ButtonPopupItem>
306
+ {#if initialPath != ''}
307
+ <ButtonPopupItem
308
+ on:click={() => {
309
+ window.open(`/flows/add?template=${initialPath}`)
310
+ }}>Fork</ButtonPopupItem
311
+ >
312
+ {/if}
313
+ </ButtonPopup>
246
314
  </div>
247
315
  </div>
248
316
  </div>
@@ -1,10 +1,15 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
+ import { type Flow } from '../gen';
3
+ import { type Writable } from 'svelte/store';
4
+ import type { FlowState } from './flows/flowState';
2
5
  declare const __propDef: {
3
6
  props: {
4
7
  initialPath?: string | undefined;
5
8
  selectedId: string | undefined;
6
9
  initialArgs?: Record<string, any> | undefined;
7
10
  loading?: boolean | undefined;
11
+ flowStore: Writable<Flow>;
12
+ flowStateStore: Writable<FlowState>;
8
13
  };
9
14
  events: {
10
15
  [evt: string]: CustomEvent<any>;
@@ -71,14 +71,13 @@ let topHeight = 0;
71
71
  </Drawer>
72
72
  <div class="grid grid-cols-3 w-full">
73
73
  <div
74
- bind:clientHeight={topHeight}
75
74
  class="{noSide
76
75
  ? 'col-span-3'
77
- : 'sm:col-span-2 col-span-3'} w-full border border-gray-400 h-screen"
76
+ : 'sm:col-span-2 col-span-3'} w-full border border-gray-400 max-h-screen"
78
77
  class:overflow-auto={overflowAuto}
79
78
  >
80
79
  <FlowGraph
81
- minHeight={topHeight}
80
+ minHeight={400}
82
81
  modules={flow?.value?.modules}
83
82
  failureModule={flow?.value?.failure_module}
84
83
  on:click={(e) => (stepDetail = e.detail)}
@@ -89,7 +88,9 @@ let topHeight = 0;
89
88
  class="w-full border-r border-b border-t border-gray-400 min-h-[150px] p-2 overflow-auto hidden sm:block"
90
89
  >
91
90
  {#if stepDetail == undefined}
92
- <span class="font-black text-lg w-full my-4">
91
+ <SchemaViewer schema={flow?.schema} />
92
+
93
+ <span class="font-black text-lg w-full my-4 mt-14">
93
94
  <span>Click on a step to see its details</span>
94
95
  </span>
95
96
  {:else if stepDetail == 'Input'}
@@ -10,9 +10,9 @@ export let loading;
10
10
 
11
11
  <div
12
12
  class:border={!noBorder}
13
- class="grid {!col ? 'grid-cols-2' : 'grid-rows-2'} shadow border-gray-400 h-full"
13
+ class="grid {!col ? 'grid-cols-2' : 'grid-rows-2'} shadow border-gray-400 h-full max-h-screen"
14
14
  >
15
- <div class="bg-white max-h-80 h-full p-1 overflow-auto relative">
15
+ <div class="bg-white {col ? '' : 'max-h-80'} h-full p-1 overflow-auto relative">
16
16
  <span class="text-gray-500">Result</span>
17
17
  {#if result}
18
18
  <DisplayResult {result} />
@@ -22,7 +22,7 @@ export let loading;
22
22
  <div class="text-gray-400">No result (result is undefined)</div>
23
23
  {/if}
24
24
  </div>
25
- <div class="overflow-auto max-h-80 h-full relative">
25
+ <div class="overflow-auto {col ? '' : 'max-h-80'} h-full relative">
26
26
  <LogViewer content={logs ?? ''} isLoading={false} />
27
27
  </div>
28
28
  </div>
@@ -4,12 +4,11 @@ import { faClose, faPlay, faRefresh } from '@fortawesome/free-solid-svg-icons';
4
4
  import { Button, Kbd } from './common';
5
5
  import { createEventDispatcher, getContext } from 'svelte';
6
6
  import Icon from 'svelte-awesome';
7
- import { dfs, flowStore } from './flows/flowStore';
7
+ import { dfs } from './flows/flowStore';
8
8
  import { runFlowPreview } from './flows/utils';
9
9
  import SchemaForm from './SchemaForm.svelte';
10
10
  import FlowStatusViewer from '../components/FlowStatusViewer.svelte';
11
11
  import FlowProgressBar from './flows/FlowProgressBar.svelte';
12
- import { flowStateStore } from './flows/flowState';
13
12
  import CapturePayload from './flows/content/CapturePayload.svelte';
14
13
  import { Loader2 } from 'lucide-svelte';
15
14
  let capturePayload;
@@ -17,10 +16,9 @@ export let previewMode;
17
16
  export let open;
18
17
  export let jobId = undefined;
19
18
  export let job = undefined;
20
- let isValid = true;
21
19
  let isRunning = false;
22
20
  let jobProgressReset;
23
- const { selectedId, previewArgs } = getContext('FlowEditorContext');
21
+ const { selectedId, previewArgs, flowStateStore, flowStore } = getContext('FlowEditorContext');
24
22
  const dispatch = createEventDispatcher();
25
23
  function sliceModules(modules, upTo, idOrders) {
26
24
  return modules
@@ -97,7 +95,6 @@ $: if (job?.type === 'CompletedJob') {
97
95
 
98
96
  {#if isRunning}
99
97
  <Button
100
- disabled={!isValid}
101
98
  color="red"
102
99
  on:click={async () => {
103
100
  isRunning = false
@@ -124,7 +121,6 @@ $: if (job?.type === 'CompletedJob') {
124
121
  color="blue"
125
122
  size="sm"
126
123
  btnClasses="w-full max-w-lg"
127
- disabled={!isValid}
128
124
  on:click={() => runPreview($previewArgs)}
129
125
  >
130
126
  Test flow <Kbd class="ml-2">Ctrl+Enter</Kbd>
@@ -141,14 +137,13 @@ $: if (job?.type === 'CompletedJob') {
141
137
  </div>
142
138
  <FlowProgressBar {job} bind:reset={jobProgressReset} />
143
139
 
144
- <div class="overflow-y-auto grow divide-y divide-gray-600 ">
140
+ <div class="overflow-y-auto grow divide-y divide-gray-600 pr-4">
145
141
  <div class="max-h-1/2 overflow-auto border-b border-gray-700">
146
142
  <SchemaForm
147
143
  noVariablePicker
148
144
  compact
149
145
  class="py-4 max-w-3xl"
150
146
  schema={$flowStore.schema}
151
- bind:isValid
152
147
  bind:args={$previewArgs}
153
148
  />
154
149
  </div>
@@ -68,7 +68,7 @@ function updateInnerModules() {
68
68
  if (mod.type === FlowStatusModule.type.WAITING_FOR_EVENTS &&
69
69
  localFlowModuleStates?.[innerModules?.[i - 1]?.id ?? '']?.type ==
70
70
  FlowStatusModule.type.SUCCESS) {
71
- localFlowModuleStates[mod.id ?? ''] = { type: mod.type };
71
+ localFlowModuleStates[mod.id ?? ''] = { type: mod.type, args: job?.args };
72
72
  }
73
73
  else if (mod.type === FlowStatusModule.type.WAITING_FOR_EXECUTOR &&
74
74
  localFlowModuleStates[mod.id ?? '']?.scheduled_for == undefined) {
@@ -80,7 +80,8 @@ function updateInnerModules() {
80
80
  type: mod.type,
81
81
  scheduled_for: 'scheduled for ' + displayDate(job?.['scheduled_for'], true),
82
82
  job_id: job?.id,
83
- parent_module: mod['parent_module']
83
+ parent_module: mod['parent_module'],
84
+ args: job?.args
84
85
  };
85
86
  });
86
87
  }
@@ -292,10 +293,12 @@ function isSuccess(arg) {
292
293
  type: FlowStatusModule.type.IN_PROGRESS,
293
294
  logs: e.detail.logs,
294
295
  job_id: e.detail.id,
296
+ args: e.detail.args,
295
297
  iteration_total: flowJobIds?.flowJobs.length
296
298
  }
297
299
  } else {
298
300
  localFlowModuleStates[flowJobIds.moduleId] = {
301
+ args: e.detail.args,
299
302
  type: e.detail.success
300
303
  ? FlowStatusModule.type.SUCCESS
301
304
  : FlowStatusModule.type.FAILURE,
@@ -360,10 +363,12 @@ function isSuccess(arg) {
360
363
  localFlowModuleStates[mod.id] = {
361
364
  type: FlowStatusModule.type.IN_PROGRESS,
362
365
  logs: e.detail.logs,
366
+ args: e.detail.args,
363
367
  parent_module: mod['parent_module']
364
368
  }
365
369
  } else {
366
370
  localFlowModuleStates[mod.id] = {
371
+ args: e.detail.args,
367
372
  type: e.detail.success
368
373
  ? FlowStatusModule.type.SUCCESS
369
374
  : FlowStatusModule.type.FAILURE,
@@ -410,13 +415,17 @@ function isSuccess(arg) {
410
415
  <FlowGraph
411
416
  success={isSuccess(job?.['success'])}
412
417
  flowModuleStates={localFlowModuleStates}
413
- on:click={(e) => {
414
- if (e.detail.id) {
418
+ on:select={(e) => {
419
+ if (typeof e.detail == 'string') {
420
+ if (e.detail == 'Input') {
421
+ selectedNode = 'start'
422
+ } else if (e.detail == 'Result') {
423
+ selectedNode = 'end'
424
+ } else {
425
+ selectedNode = e.detail
426
+ }
427
+ } else {
415
428
  selectedNode = e.detail.id
416
- } else if (e.detail == 'Result') {
417
- selectedNode = 'end'
418
- } else if (e.detail == 'Input') {
419
- selectedNode = 'start'
420
429
  }
421
430
  }}
422
431
  modules={job.raw_flow?.modules ?? []}
@@ -460,6 +469,10 @@ function isSuccess(arg) {
460
469
  </div>
461
470
  {/if}
462
471
  </div>
472
+ <div class="px-1 border-b border-black">
473
+ <JobArgs args={node.args} />
474
+ </div>
475
+
463
476
  <FlowJobResult
464
477
  loading={job['running'] == true}
465
478
  noBorder
@@ -219,6 +219,14 @@ function getRole(x) {
219
219
  name,
220
220
  requestBody: { username: member_name }
221
221
  })
222
+ await GranularAclService.removeGranularAcls({
223
+ workspace: $workspaceStore ?? '',
224
+ path: name,
225
+ kind: 'group_',
226
+ requestBody: {
227
+ owner: 'u/' + member_name
228
+ }
229
+ })
222
230
  loadGroup()
223
231
  }}>remove</button
224
232
  >
@@ -57,17 +57,10 @@ function isStaticTemplate(inputCat) {
57
57
  return inputCat === 'string' || inputCat === 'sql' || inputCat == 'yaml';
58
58
  }
59
59
  function connectProperty(rawValue) {
60
- if (isStaticTemplate(inputCat)) {
61
- arg.value = `\$\{${rawValue}}`;
62
- setPropertyType(arg.value);
63
- monacoTemplate?.setCode(arg.value);
64
- }
65
- else {
66
- arg.expr = getDefaultExpr(undefined, previousModuleId, rawValue);
67
- arg.type = 'javascript';
68
- propertyType = 'javascript';
69
- monaco?.setCode(arg.expr);
70
- }
60
+ arg.expr = getDefaultExpr(undefined, previousModuleId, rawValue);
61
+ arg.type = 'javascript';
62
+ propertyType = 'javascript';
63
+ monaco?.setCode(arg.expr);
71
64
  }
72
65
  function onFocus() {
73
66
  if (isStaticTemplate(inputCat)) {
@@ -126,7 +119,7 @@ $: schema.properties[argName].default && setDefaultCode();
126
119
  {/if}
127
120
  </div>
128
121
  {#if !noDynamicToggle}
129
- <div class="flex flex-row gap-x-4 gap-y-1 flex-wrap">
122
+ <div class="flex flex-row gap-x-4 gap-y-1 flex-wrap z-10">
130
123
  <ToggleButtonGroup
131
124
  bind:selected={propertyType}
132
125
  on:selected={(e) => {
@@ -168,10 +161,10 @@ $: schema.properties[argName].default && setDefaultCode();
168
161
  >
169
162
  {#if isStaticTemplate(inputCat)}
170
163
  <ToggleButton light position="left" value="static" size="xs">
171
- {'${} '}Template &nbsp; <Tooltip
172
- >Write javascript expressions between "{openBracket}" and "{closeBracket}". You may
173
- refer to contextual objects like 'flow_input', or 'result' or functions like
174
- 'resource' and 'variable'
164
+ {'${} '}&nbsp;
165
+ <Tooltip
166
+ >Write text or surround javascript with "{openBracket}" and "{closeBracket}". Use
167
+ `result` to connect to another node's output.
175
168
  </Tooltip></ToggleButton
176
169
  >
177
170
  {:else}
@@ -184,9 +177,11 @@ $: schema.properties[argName].default && setDefaultCode();
184
177
  value="javascript"
185
178
  startIcon={{ icon: faCode }}
186
179
  size="xs"
180
+ >&nbsp;<Tooltip
181
+ >Write javascript expressions directly, using 'flow_input' or 'result'. You can use
182
+ multiline javascript.
183
+ </Tooltip></ToggleButton
187
184
  >
188
- Dynamic (JS)
189
- </ToggleButton>
190
185
  </ToggleButtonGroup>
191
186
  <Button
192
187
  variant="contained"
@@ -277,6 +272,4 @@ $: schema.properties[argName].default && setDefaultCode();
277
272
  Not recognized input type {argName}
278
273
  {/if}
279
274
  </div>
280
- {:else}
281
- <p class="text-sm text-gray-700">Argument at {argName} is undefined</p>
282
275
  {/if}