windmill-components 1.60.4 → 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 (549) hide show
  1. package/assets/app.css +15 -1
  2. package/common.d.ts +5 -1
  3. package/components/ApiConnectForm.svelte +66 -5
  4. package/components/AppConnect.svelte +26 -10
  5. package/components/ArgInput.svelte +1 -1
  6. package/components/CliHelpBox.svelte +49 -0
  7. package/components/CliHelpBox.svelte.d.ts +14 -0
  8. package/components/DisplayResult.svelte +78 -10
  9. package/components/DisplayResult.svelte.d.ts +1 -0
  10. package/components/Editor.svelte +17 -7
  11. package/components/EditorBar.svelte +129 -111
  12. package/components/FieldHeader.svelte +12 -8
  13. package/components/FlowBuilder.svelte +107 -39
  14. package/components/FlowBuilder.svelte.d.ts +5 -0
  15. package/components/FlowGraphViewer.svelte +5 -4
  16. package/components/FlowJobResult.svelte +13 -5
  17. package/components/FlowJobResult.svelte.d.ts +1 -0
  18. package/components/FlowMetadata.svelte +24 -8
  19. package/components/FlowPreviewContent.svelte +5 -11
  20. package/components/FlowStatusViewer.svelte +62 -17
  21. package/components/FolderEditor.svelte +3 -2
  22. package/components/GroupEditor.svelte +8 -0
  23. package/components/HighlightCode.svelte +7 -1
  24. package/components/InlineCodeCopy.svelte +11 -0
  25. package/components/InlineCodeCopy.svelte.d.ts +16 -0
  26. package/components/InputTransformForm.svelte +22 -25
  27. package/components/InputTransformSchemaForm.svelte +103 -0
  28. package/components/InputTransformSchemaForm.svelte.d.ts +24 -0
  29. package/components/LogViewer.svelte +7 -1
  30. package/components/LogViewer.svelte.d.ts +1 -0
  31. package/components/ModulePreview.svelte +13 -3
  32. package/components/MoveDrawer.svelte +1 -1
  33. package/components/Multiselect.svelte +1 -1
  34. package/components/Multiselect.svelte.d.ts +2 -2
  35. package/components/ObjectResourceInput.svelte +6 -1
  36. package/components/Path.svelte +29 -16
  37. package/components/Popover.svelte +10 -15
  38. package/components/Popover.svelte.d.ts +1 -0
  39. package/components/Range.svelte.d.ts +2 -2
  40. package/components/ResourceEditor.svelte +39 -16
  41. package/components/ResourcePicker.svelte +33 -15
  42. package/components/RunChart.svelte +24 -5
  43. package/components/RunForm.svelte +26 -3
  44. package/components/RunForm.svelte.d.ts +2 -0
  45. package/components/ScheduleEditor.svelte +1 -1
  46. package/components/SchemaEditor.svelte +2 -2
  47. package/components/SchemaForm.svelte +72 -60
  48. package/components/SchemaForm.svelte.d.ts +1 -5
  49. package/components/ScriptBuilder.svelte +69 -30
  50. package/components/ScriptBuilder.svelte.d.ts +1 -0
  51. package/components/ScriptEditor.svelte +1 -0
  52. package/components/ScriptPicker.svelte +3 -0
  53. package/components/SharedBadge.svelte +5 -5
  54. package/components/SimpleEditor.svelte +4 -1
  55. package/components/SimpleEditor.svelte.d.ts +2 -0
  56. package/components/Slider.svelte +19 -0
  57. package/components/Slider.svelte.d.ts +20 -0
  58. package/components/StringTypeNarrowing.svelte +0 -1
  59. package/components/SuperadminSettings.svelte +11 -3
  60. package/components/SuperadminSettings.svelte.d.ts +2 -0
  61. package/components/TemplateEditor.svelte +1 -1
  62. package/components/TemplateEditor.svelte.d.ts +204 -0
  63. package/components/TestJobLoader.svelte +5 -5
  64. package/components/Toggle.svelte +18 -6
  65. package/components/Toggle.svelte.d.ts +2 -0
  66. package/components/Tooltip.svelte +1 -1
  67. package/components/UserSettings.svelte +13 -3
  68. package/components/UserSettings.svelte.d.ts +2 -0
  69. package/components/VariableEditor.svelte +1 -1
  70. package/components/WhitelistIp.svelte +23 -0
  71. package/components/WhitelistIp.svelte.d.ts +14 -0
  72. package/components/apps/components/buttons/AppButton.svelte +79 -17
  73. package/components/apps/components/buttons/AppButton.svelte.d.ts +4 -0
  74. package/components/apps/components/{form → buttons}/AppForm.svelte +19 -7
  75. package/components/apps/components/{form → buttons}/AppForm.svelte.d.ts +3 -0
  76. package/components/apps/components/buttons/AppFormButton.svelte +145 -0
  77. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +28 -0
  78. package/components/apps/components/buttons/index.d.ts +3 -0
  79. package/components/apps/components/buttons/index.js +3 -0
  80. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte +27 -8
  81. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte.d.ts +4 -0
  82. package/components/apps/components/display/AppDisplayComponent.svelte +36 -0
  83. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +24 -0
  84. package/components/apps/components/display/AppHtml.svelte +46 -0
  85. package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +4 -1
  86. package/components/apps/components/display/AppIcon.svelte +47 -0
  87. package/components/apps/components/display/AppIcon.svelte.d.ts +25 -0
  88. package/components/apps/components/display/AppImage.svelte +34 -0
  89. package/components/apps/components/display/AppImage.svelte.d.ts +25 -0
  90. package/components/apps/components/display/AppMap.svelte +214 -0
  91. package/components/apps/components/display/AppMap.svelte.d.ts +23 -0
  92. package/components/apps/components/display/AppPdf.svelte +304 -0
  93. package/components/apps/components/display/AppPdf.svelte.d.ts +24 -0
  94. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte +16 -7
  95. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte.d.ts +4 -0
  96. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte +13 -4
  97. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte.d.ts +4 -0
  98. package/components/apps/components/{dataDisplay → display}/AppText.svelte +42 -34
  99. package/components/apps/components/{dataDisplay → display}/AppText.svelte.d.ts +4 -0
  100. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte +14 -5
  101. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte.d.ts +4 -0
  102. package/components/apps/components/display/PlotlyHtml.svelte +32 -0
  103. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +24 -0
  104. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte +4 -10
  105. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +2 -0
  106. package/components/apps/components/display/index.d.ts +15 -0
  107. package/components/apps/components/display/index.js +15 -0
  108. package/components/apps/components/display/table/AppAggridTable.svelte +92 -0
  109. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +25 -0
  110. package/components/apps/components/{table → display/table}/AppTable.svelte +85 -29
  111. package/components/apps/components/{table → display/table}/AppTable.svelte.d.ts +6 -2
  112. package/components/apps/components/{table → display/table}/AppTableFooter.svelte +9 -2
  113. package/components/apps/components/{table → display/table}/AppTableFooter.svelte.d.ts +2 -0
  114. package/components/apps/components/helpers/AlignWrapper.svelte +29 -23
  115. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +6 -2
  116. package/components/apps/components/helpers/HiddenComponent.svelte +23 -0
  117. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +25 -0
  118. package/components/apps/components/helpers/InputDefaultValue.svelte +17 -0
  119. package/components/apps/components/helpers/InputDefaultValue.svelte.d.ts +17 -0
  120. package/components/apps/components/helpers/InputValue.svelte +39 -18
  121. package/components/apps/components/helpers/InputValue.svelte.d.ts +0 -1
  122. package/components/apps/components/helpers/NonRunnableComponent.svelte +18 -3
  123. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -0
  124. package/components/apps/components/helpers/RefreshButton.svelte +1 -1
  125. package/components/apps/components/helpers/ResizeWrapper.svelte +24 -0
  126. package/components/apps/components/helpers/ResizeWrapper.svelte.d.ts +19 -0
  127. package/components/apps/components/helpers/RunnableComponent.svelte +99 -102
  128. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -2
  129. package/components/apps/components/helpers/RunnableWrapper.svelte +16 -7
  130. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +5 -2
  131. package/components/apps/components/helpers/index.d.ts +10 -0
  132. package/components/apps/components/helpers/index.js +10 -0
  133. package/components/apps/components/icon.d.ts +1 -0
  134. package/components/apps/components/icon.js +18 -0
  135. package/components/apps/components/index.d.ts +5 -0
  136. package/components/apps/components/index.js +5 -0
  137. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte +12 -4
  138. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte.d.ts +3 -0
  139. package/components/apps/components/inputs/AppDateInput.svelte +47 -0
  140. package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte.d.ts +6 -1
  141. package/components/apps/components/inputs/AppFileInput.svelte +42 -0
  142. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +23 -0
  143. package/components/apps/components/inputs/AppMultiSelect.svelte +82 -0
  144. package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +27 -0
  145. package/components/apps/components/inputs/AppNumberInput.svelte +52 -0
  146. package/components/apps/components/{numberInputs → inputs}/AppNumberInput.svelte.d.ts +5 -0
  147. package/components/apps/components/inputs/AppRangeInput.svelte +85 -0
  148. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +26 -0
  149. package/components/apps/components/inputs/AppSelect.svelte +127 -0
  150. package/components/apps/components/{selectInputs → inputs}/AppSelect.svelte.d.ts +5 -0
  151. package/components/apps/components/inputs/AppSliderInputs.svelte +73 -0
  152. package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte.d.ts +3 -0
  153. package/components/apps/components/inputs/AppTextInput.svelte +71 -0
  154. package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte.d.ts +6 -0
  155. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +59 -0
  156. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +24 -0
  157. package/components/apps/components/inputs/currency/CurrencyInput.svelte +183 -0
  158. package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +33 -0
  159. package/components/apps/components/inputs/index.d.ts +9 -0
  160. package/components/apps/components/inputs/index.js +9 -0
  161. package/components/apps/components/layout/AppContainer.svelte +40 -0
  162. package/components/apps/components/layout/AppContainer.svelte.d.ts +24 -0
  163. package/components/apps/components/layout/AppDivider.svelte +40 -0
  164. package/components/apps/components/layout/AppDivider.svelte.d.ts +24 -0
  165. package/components/apps/components/layout/AppDrawer.svelte +89 -0
  166. package/components/apps/components/layout/AppDrawer.svelte.d.ts +24 -0
  167. package/components/apps/components/layout/AppSplitpanes.svelte +88 -0
  168. package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +26 -0
  169. package/components/apps/components/layout/AppTabs.svelte +99 -0
  170. package/components/apps/components/layout/AppTabs.svelte.d.ts +27 -0
  171. package/components/apps/components/layout/index.d.ts +5 -0
  172. package/components/apps/components/layout/index.js +5 -0
  173. package/components/apps/editor/AppComponentInput.svelte +33 -0
  174. package/components/apps/editor/AppComponentInput.svelte.d.ts +18 -0
  175. package/components/apps/editor/AppComponentInputs.svelte +13 -0
  176. package/components/apps/editor/AppComponentInputs.svelte.d.ts +20 -0
  177. package/components/apps/editor/AppEditor.svelte +134 -35
  178. package/components/apps/editor/AppEditor.svelte.d.ts +4 -1
  179. package/components/apps/editor/AppEditorHeader.svelte +178 -47
  180. package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  181. package/components/apps/editor/AppInputs.svelte +60 -0
  182. package/components/apps/editor/AppInputs.svelte.d.ts +14 -0
  183. package/components/apps/editor/AppPreview.svelte +30 -12
  184. package/components/apps/editor/ComponentHeader.svelte +52 -3
  185. package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -1
  186. package/components/apps/editor/GridEditor.svelte +134 -77
  187. package/components/apps/editor/GridEditor.svelte.d.ts +2 -0
  188. package/components/apps/editor/GridPanel.svelte +29 -0
  189. package/components/apps/editor/GridPanel.svelte.d.ts +18 -0
  190. package/components/apps/editor/RecomputeAllComponents.svelte +8 -6
  191. package/components/apps/editor/SettingsPanel.svelte +26 -8
  192. package/components/apps/editor/SubGridEditor.svelte +139 -0
  193. package/components/apps/editor/SubGridEditor.svelte.d.ts +29 -0
  194. package/components/apps/editor/appUtils.d.ts +19 -0
  195. package/components/apps/editor/appUtils.js +241 -0
  196. package/components/apps/editor/component/Component.svelte +434 -0
  197. package/components/apps/editor/{ComponentEditor.svelte.d.ts → component/Component.svelte.d.ts} +7 -5
  198. package/components/apps/editor/component/ComponentNavigation.svelte +125 -0
  199. package/components/apps/editor/component/ComponentNavigation.svelte.d.ts +14 -0
  200. package/components/apps/editor/component/README.md +15 -0
  201. package/components/apps/editor/component/components.d.ts +77 -0
  202. package/components/apps/editor/component/components.js +1476 -0
  203. package/components/apps/editor/component/default-codes.d.ts +3 -0
  204. package/components/apps/editor/component/default-codes.js +322 -0
  205. package/components/apps/editor/component/index.d.ts +4 -0
  206. package/components/apps/editor/component/index.js +4 -0
  207. package/components/apps/editor/component/sets.d.ts +2 -0
  208. package/components/apps/editor/component/sets.js +55 -0
  209. package/components/apps/editor/componentsPanel/ComponentList.svelte +75 -108
  210. package/components/apps/editor/componentsPanel/CssProperty.svelte +67 -0
  211. package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +21 -0
  212. package/components/apps/editor/componentsPanel/CssSettings.svelte +188 -0
  213. package/components/apps/editor/componentsPanel/CssSettings.svelte.d.ts +14 -0
  214. package/components/apps/editor/componentsPanel/ListItem.svelte +39 -0
  215. package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +20 -0
  216. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +5 -1
  217. package/components/apps/editor/componentsPanel/componentStaticValues.js +16 -1
  218. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  219. package/components/apps/editor/contextPanel/ContextPanel.svelte +115 -67
  220. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +109 -10
  221. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
  222. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +88 -41
  223. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +5 -0
  224. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +32 -6
  225. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
  226. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +75 -8
  227. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +128 -72
  228. package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -5
  229. package/components/apps/editor/inlineScriptsPanel/utils.js +48 -7
  230. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  231. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte.d.ts +1 -1
  232. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +14 -10
  233. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +68 -1
  234. package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +1 -1
  235. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +130 -61
  236. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +6 -3
  237. package/components/apps/editor/settingsPanel/GridPane.svelte +75 -0
  238. package/components/apps/editor/settingsPanel/GridPane.svelte.d.ts +20 -0
  239. package/components/apps/editor/settingsPanel/GridTab.svelte +73 -0
  240. package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +20 -0
  241. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +5 -1
  242. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
  243. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +93 -78
  244. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  245. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +92 -0
  246. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +18 -0
  247. package/components/apps/editor/settingsPanel/Recompute.svelte +5 -2
  248. package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +1 -1
  249. package/components/apps/editor/settingsPanel/TableActions.svelte +45 -7
  250. package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  251. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +6 -4
  252. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +48 -0
  253. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +19 -0
  254. package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +1 -1
  255. package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +1 -1
  256. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +107 -0
  257. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +21 -0
  258. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -2
  259. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +2 -1
  260. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +59 -6
  261. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +3 -0
  262. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +21 -0
  263. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +17 -0
  264. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +1 -0
  265. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +1 -0
  266. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +4 -21
  267. package/components/apps/gridUtils.d.ts +3 -1
  268. package/components/apps/gridUtils.js +5 -3
  269. package/components/apps/inputType.d.ts +34 -6
  270. package/components/apps/rx.js +2 -1
  271. package/components/apps/store.d.ts +6 -1
  272. package/components/apps/types.d.ts +47 -42
  273. package/components/apps/types.js +1 -1
  274. package/components/apps/utils.d.ts +6 -5
  275. package/components/apps/utils.js +63 -95
  276. package/components/common/button/Button.svelte +12 -5
  277. package/components/common/button/Button.svelte.d.ts +3 -1
  278. package/components/common/button/ButtonPopup.svelte +2 -0
  279. package/components/common/button/ButtonPopup.svelte.d.ts +2 -1
  280. package/components/common/button/UndoRedo.svelte +32 -0
  281. package/components/common/button/UndoRedo.svelte.d.ts +20 -0
  282. package/components/common/button/model.d.ts +2 -2
  283. package/components/common/button/model.js +21 -6
  284. package/components/common/confirmationModal/ConfirmationModal.svelte +8 -1
  285. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +4 -4
  286. package/components/common/drawer/Drawer.svelte +13 -5
  287. package/components/common/drawer/Drawer.svelte.d.ts +3 -1
  288. package/components/common/drawer/DrawerContent.svelte +0 -1
  289. package/components/common/fileInput/FileInput.svelte +138 -0
  290. package/components/common/fileInput/FileInput.svelte.d.ts +29 -0
  291. package/components/common/fileInput/model.d.ts +1 -0
  292. package/components/common/fileInput/model.js +1 -0
  293. package/components/common/index.d.ts +2 -0
  294. package/components/common/index.js +2 -0
  295. package/components/common/kbd/Kbd.svelte.d.ts +2 -2
  296. package/components/common/menu/Menu.svelte +3 -2
  297. package/components/common/menu/Menu.svelte.d.ts +2 -1
  298. package/components/common/modal/Modal.svelte +79 -0
  299. package/components/common/modal/Modal.svelte.d.ts +24 -0
  300. package/components/common/popup/Popup.svelte +34 -17
  301. package/components/common/popup/Popup.svelte.d.ts +11 -4
  302. package/components/common/table/AppRow.svelte +13 -4
  303. package/components/common/table/AppRow.svelte.d.ts +1 -0
  304. package/components/common/table/FlowRow.svelte +40 -8
  305. package/components/common/table/FlowRow.svelte.d.ts +1 -0
  306. package/components/common/table/LanguageBadge.svelte +10 -4
  307. package/components/common/table/Row.svelte +1 -1
  308. package/components/common/table/ScriptRow.svelte +44 -12
  309. package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  310. package/components/common/tabs/Tab.svelte +12 -5
  311. package/components/common/tabs/Tab.svelte.d.ts +4 -1
  312. package/components/common/tabs/Tabs.svelte +12 -8
  313. package/components/common/tabs/Tabs.svelte.d.ts +6 -2
  314. package/components/flows/CreateActionsFlow.svelte +2 -3
  315. package/components/flows/FlowEditor.svelte +6 -4
  316. package/components/flows/common/FlowCardHeader.svelte +4 -1
  317. package/components/flows/content/BranchPredicateEditor.svelte +13 -12
  318. package/components/flows/content/CapturePayload.svelte +1 -2
  319. package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
  320. package/components/flows/content/FlowConstants.svelte +7 -13
  321. package/components/flows/content/FlowEditorPanel.svelte +4 -3
  322. package/components/flows/content/FlowFailureModule.svelte +2 -1
  323. package/components/flows/content/FlowInput.svelte +4 -2
  324. package/components/flows/content/FlowInputs.svelte +109 -99
  325. package/components/flows/content/FlowLoop.svelte +4 -5
  326. package/components/flows/content/FlowModuleComponent.svelte +26 -13
  327. package/components/flows/content/FlowModuleEarlyStop.svelte +3 -1
  328. package/components/flows/content/FlowModuleHeader.svelte +26 -3
  329. package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
  330. package/components/flows/content/FlowModuleSleep.svelte +2 -2
  331. package/components/flows/content/FlowModuleWrapper.svelte +2 -8
  332. package/components/flows/content/FlowRetries.svelte +8 -6
  333. package/components/flows/content/FlowSchedules.svelte +1 -2
  334. package/components/flows/content/FlowSettings.svelte +77 -51
  335. package/components/flows/content/ScriptEditorDrawer.svelte +98 -0
  336. package/components/flows/content/ScriptEditorDrawer.svelte.d.ts +19 -0
  337. package/components/flows/flowState.d.ts +2 -2
  338. package/components/flows/flowState.js +1 -3
  339. package/components/flows/flowStateUtils.d.ts +7 -6
  340. package/components/flows/flowStateUtils.js +9 -11
  341. package/components/flows/flowStore.d.ts +5 -3
  342. package/components/flows/flowStore.js +6 -17
  343. package/components/flows/header/FlowImportExportMenu.svelte +2 -1
  344. package/components/flows/map/FlowConstantsItem.svelte +2 -2
  345. package/components/flows/map/FlowErrorHandlerItem.svelte +12 -13
  346. package/components/flows/map/FlowInputsItem.svelte +2 -3
  347. package/components/flows/map/FlowModuleSchemaItem.svelte +88 -91
  348. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +3 -3
  349. package/components/flows/map/FlowModuleSchemaMap.svelte +163 -130
  350. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -1
  351. package/components/flows/map/FlowSettingsItem.svelte +5 -4
  352. package/components/flows/map/InsertModuleButton.svelte +34 -18
  353. package/components/flows/map/InsertModuleButton.svelte.d.ts +2 -0
  354. package/components/flows/map/MapItem.svelte +176 -101
  355. package/components/flows/map/MapItem.svelte.d.ts +20 -2
  356. package/components/flows/map/VirtualItem.svelte +129 -0
  357. package/components/flows/map/VirtualItem.svelte.d.ts +44 -0
  358. package/components/flows/pickers/WorkspaceScriptPicker.svelte +1 -1
  359. package/components/flows/previousResults.d.ts +1 -1
  360. package/components/flows/previousResults.js +32 -17
  361. package/components/flows/types.d.ts +13 -1
  362. package/components/flows/utils.js +17 -11
  363. package/components/graph/FlowGraph.svelte +247 -164
  364. package/components/graph/FlowGraph.svelte.d.ts +15 -1
  365. package/components/graph/model.d.ts +6 -36
  366. package/components/graph/model.js +1 -1
  367. package/components/graph/svelvet/LICENSE +21 -0
  368. package/components/graph/svelvet/collapsible/controllers/util.d.ts +15 -0
  369. package/components/graph/svelvet/collapsible/controllers/util.js +144 -0
  370. package/components/graph/svelvet/collapsible/models/Collapsible.d.ts +17 -0
  371. package/components/graph/svelvet/collapsible/models/Collapsible.js +25 -0
  372. package/components/graph/svelvet/collapsible/types/types.d.ts +8 -0
  373. package/components/graph/svelvet/collapsible/types/types.js +1 -0
  374. package/components/graph/svelvet/container/README.md +7 -0
  375. package/components/graph/svelvet/container/controllers/middleware.d.ts +18 -0
  376. package/components/graph/svelvet/container/controllers/middleware.js +101 -0
  377. package/components/graph/svelvet/container/views/GraphView.svelte +252 -0
  378. package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +25 -0
  379. package/components/graph/svelvet/container/views/Svelvet.svelte +131 -0
  380. package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +41 -0
  381. package/components/graph/svelvet/customCss/controllers/getCss.d.ts +2 -0
  382. package/components/graph/svelvet/customCss/controllers/getCss.js +57 -0
  383. package/components/graph/svelvet/d3/controllers/README.md +3 -0
  384. package/components/graph/svelvet/d3/controllers/d3.d.ts +5 -0
  385. package/components/graph/svelvet/d3/controllers/d3.js +59 -0
  386. package/components/graph/svelvet/d3/controllers/d3Old.d.ts +1 -0
  387. package/components/graph/svelvet/d3/controllers/d3Old.js +43 -0
  388. package/components/graph/svelvet/docs/CHANGELOG.md +145 -0
  389. package/components/graph/svelvet/docs/DESIGN_PATTERNS.md +44 -0
  390. package/components/graph/svelvet/docs/DOCUMENTATION.md +5 -0
  391. package/components/graph/svelvet/docs/README.md +34 -0
  392. package/components/graph/svelvet/docs/TODO.md +14 -0
  393. package/components/graph/svelvet/docs/Tutorials.md +25 -0
  394. package/components/graph/svelvet/docs/images/css-background-after.png +0 -0
  395. package/components/graph/svelvet/docs/images/css-background-before.png +0 -0
  396. package/components/graph/svelvet/docs/images/custom-edges-after.png +0 -0
  397. package/components/graph/svelvet/docs/images/custom-edges-before.png +0 -0
  398. package/components/graph/svelvet/docs/images/custom-nodes-after.png +0 -0
  399. package/components/graph/svelvet/docs/images/custom-nodes-before.png +0 -0
  400. package/components/graph/svelvet/docs/images/custom-svelte-components-after.png +0 -0
  401. package/components/graph/svelvet/docs/images/custom-svelte-components-before.png +0 -0
  402. package/components/graph/svelvet/docs/images/html-docs-after.png +0 -0
  403. package/components/graph/svelvet/docs/images/html-docs-before.png +0 -0
  404. package/components/graph/svelvet/docs/images/minimap-after.png +0 -0
  405. package/components/graph/svelvet/docs/images/minimap-before.png +0 -0
  406. package/components/graph/svelvet/docs/images/node-classes-after.png +0 -0
  407. package/components/graph/svelvet/docs/images/node-classes-before.png +0 -0
  408. package/components/graph/svelvet/docs/images/node-create-after.png +0 -0
  409. package/components/graph/svelvet/docs/images/node-create-before.png +0 -0
  410. package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +4 -0
  411. package/components/graph/svelvet/edges/controllers/anchorCbDev.js +92 -0
  412. package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +57 -0
  413. package/components/graph/svelvet/edges/controllers/anchorCbUser.js +73 -0
  414. package/components/graph/svelvet/edges/controllers/util.d.ts +37 -0
  415. package/components/graph/svelvet/edges/controllers/util.js +72 -0
  416. package/components/graph/svelvet/edges/models/Anchor.d.ts +48 -0
  417. package/components/graph/svelvet/edges/models/Anchor.js +122 -0
  418. package/components/graph/svelvet/edges/models/Edge.d.ts +47 -0
  419. package/components/graph/svelvet/edges/models/Edge.js +107 -0
  420. package/components/graph/svelvet/edges/types/types.d.ts +18 -0
  421. package/components/graph/svelvet/edges/types/types.js +1 -0
  422. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +105 -0
  423. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +18 -0
  424. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte +12 -0
  425. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte.d.ts +17 -0
  426. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +43 -0
  427. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +17 -0
  428. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +137 -0
  429. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +17 -0
  430. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +176 -0
  431. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +60 -0
  432. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +8 -0
  433. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +25 -0
  434. package/components/graph/svelvet/edges/views/Edges/types.d.ts +52 -0
  435. package/components/graph/svelvet/edges/views/Edges/types.js +1 -0
  436. package/components/graph/svelvet/edges/views/Edges/utils.d.ts +33 -0
  437. package/components/graph/svelvet/edges/views/Edges/utils.js +31 -0
  438. package/components/graph/svelvet/editEdges/views/EditEdge.svelte +151 -0
  439. package/components/graph/svelvet/editEdges/views/EditEdge.svelte.d.ts +20 -0
  440. package/components/graph/svelvet/nodes/controllers/util.d.ts +9 -0
  441. package/components/graph/svelvet/nodes/controllers/util.js +13 -0
  442. package/components/graph/svelvet/nodes/models/Node.d.ts +78 -0
  443. package/components/graph/svelvet/nodes/models/Node.js +195 -0
  444. package/components/graph/svelvet/nodes/views/EditNode.svelte +147 -0
  445. package/components/graph/svelvet/nodes/views/EditNode.svelte.d.ts +33 -0
  446. package/components/graph/svelvet/nodes/views/Node.svelte +85 -0
  447. package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +22 -0
  448. package/components/graph/svelvet/resizableNodes/controllers/util.d.ts +11 -0
  449. package/components/graph/svelvet/resizableNodes/controllers/util.js +24 -0
  450. package/components/graph/svelvet/resizableNodes/models/ResizeNode.d.ts +33 -0
  451. package/components/graph/svelvet/resizableNodes/models/ResizeNode.js +71 -0
  452. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte +81 -0
  453. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte.d.ts +20 -0
  454. package/components/graph/svelvet/store/controllers/storeApi.d.ts +32 -0
  455. package/components/graph/svelvet/store/controllers/storeApi.js +111 -0
  456. package/components/graph/svelvet/store/controllers/userApi.d.ts +3 -0
  457. package/components/graph/svelvet/store/controllers/userApi.js +18 -0
  458. package/components/graph/svelvet/store/controllers/util.d.ts +31 -0
  459. package/components/graph/svelvet/store/controllers/util.js +180 -0
  460. package/components/graph/svelvet/store/models/store.d.ts +12 -0
  461. package/components/graph/svelvet/store/models/store.js +9 -0
  462. package/components/graph/svelvet/store/types/types.d.ts +134 -0
  463. package/components/graph/svelvet/store/types/types.js +1 -0
  464. package/components/graph/svelvet/types/README.md +3 -0
  465. package/components/graph/svelvet/types/index.d.ts +2 -0
  466. package/components/graph/svelvet/types/index.js +1 -0
  467. package/components/graph/svelvet/types/types.d.ts +49 -0
  468. package/components/graph/svelvet/types/types.js +18 -0
  469. package/components/graph/util.js +2 -2
  470. package/components/home/ItemsList.svelte +53 -5
  471. package/components/home/ItemsList.svelte.d.ts +1 -0
  472. package/components/home/ListFilters.svelte +7 -2
  473. package/components/icons/SquareIcon.svelte +9 -0
  474. package/components/icons/SquareIcon.svelte.d.ts +17 -0
  475. package/components/icons/index.d.ts +2 -0
  476. package/components/icons/index.js +2 -0
  477. package/components/jobs/JobDetail.svelte +40 -5
  478. package/components/propertyPicker/ObjectViewer.svelte +14 -9
  479. package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
  480. package/components/propertyPicker/PropPicker.svelte +8 -1
  481. package/components/propertyPicker/PropPickerResult.svelte +1 -1
  482. package/components/random_positive_adjetive.d.ts +1 -0
  483. package/components/random_positive_adjetive.js +961 -0
  484. package/components/scriptEditor/LogPanel.svelte +2 -1
  485. package/components/sidebar/SidebarContent.svelte +1 -1
  486. package/components/sidebar/UserMenu.svelte +46 -16
  487. package/components/sidebar/UserMenu.svelte.d.ts +0 -3
  488. package/components/sidebar/WorkspaceMenu.svelte +3 -1
  489. package/components/sidebar/settings.d.ts +2 -0
  490. package/components/sidebar/settings.js +2 -0
  491. package/consts.d.ts +1 -0
  492. package/consts.js +1 -0
  493. package/defaults.d.ts +4 -0
  494. package/defaults.js +4 -0
  495. package/gen/core/OpenAPI.js +1 -1
  496. package/gen/models/CompletedJob.d.ts +1 -0
  497. package/gen/models/FlowModule.d.ts +0 -1
  498. package/gen/models/QueuedJob.d.ts +1 -0
  499. package/gen/models/WorkerPing.d.ts +1 -1
  500. package/gen/services/FlowService.d.ts +9 -0
  501. package/gen/services/FlowService.js +15 -0
  502. package/gen/services/JobService.d.ts +97 -15
  503. package/gen/services/JobService.js +74 -15
  504. package/gen/services/ScriptService.d.ts +10 -1
  505. package/gen/services/ScriptService.js +16 -1
  506. package/gen/services/VariableService.d.ts +4 -2
  507. package/gen/services/VariableService.js +8 -2
  508. package/gen/services/WorkspaceService.d.ts +17 -0
  509. package/gen/services/WorkspaceService.js +16 -0
  510. package/history.d.ts +9 -0
  511. package/history.js +56 -0
  512. package/infer.js +3 -0
  513. package/init_scripts/python_failure_module.py +10 -0
  514. package/init_scripts/python_init_code.py +37 -0
  515. package/init_scripts/python_init_code_clear.py +5 -0
  516. package/init_scripts/python_init_code_trigger.py +14 -0
  517. package/logout.js +2 -1
  518. package/package.json +661 -522
  519. package/script_helpers.d.ts +6 -5
  520. package/script_helpers.js +8 -73
  521. package/scripts.d.ts +1 -1
  522. package/scripts.js +8 -1
  523. package/stores.d.ts +5 -1
  524. package/stores.js +8 -1
  525. package/user.d.ts +1 -1
  526. package/user.js +14 -8
  527. package/utils.d.ts +10 -5
  528. package/utils.js +51 -14
  529. package/components/apps/components/DisplayComponent.svelte +0 -16
  530. package/components/apps/components/DisplayComponent.svelte.d.ts +0 -20
  531. package/components/apps/components/dataDisplay/AppHtml.svelte +0 -31
  532. package/components/apps/components/dateInputs/AppDateInput.svelte +0 -34
  533. package/components/apps/components/numberInputs/AppNumberInput.svelte +0 -33
  534. package/components/apps/components/numberInputs/AppSliderInputs.svelte +0 -37
  535. package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
  536. package/components/apps/components/textInputs/AppTextInput.svelte +0 -31
  537. package/components/apps/editor/ComponentEditor.svelte +0 -145
  538. package/components/apps/editor/TablePanel.svelte +0 -17
  539. package/components/apps/editor/TablePanel.svelte.d.ts +0 -17
  540. package/components/apps/editor/componentsPanel/data.d.ts +0 -3
  541. package/components/apps/editor/componentsPanel/data.js +0 -499
  542. package/components/apps/editorUtils.d.ts +0 -1
  543. package/components/apps/editorUtils.js +0 -292
  544. package/components/flows/map/FlowBranchAllMap.svelte +0 -100
  545. package/components/flows/map/FlowBranchAllMap.svelte.d.ts +0 -17
  546. package/components/flows/map/FlowBranchOneMap.svelte +0 -124
  547. package/components/flows/map/FlowBranchOneMap.svelte.d.ts +0 -17
  548. /package/components/apps/components/{table → display/table}/tableOptions.d.ts +0 -0
  549. /package/components/apps/components/{table → display/table}/tableOptions.js +0 -0
@@ -16,6 +16,8 @@ import WorkspaceScriptPicker from './flows/pickers/WorkspaceScriptPicker.svelte'
16
16
  import PickHubScript from './flows/pickers/PickHubScript.svelte';
17
17
  import ToggleHubWorkspace from './ToggleHubWorkspace.svelte';
18
18
  import Skeleton from './common/skeleton/Skeleton.svelte';
19
+ import Popover from './Popover.svelte';
20
+ import Kbd from './common/kbd/Kbd.svelte';
19
21
  export let lang;
20
22
  export let editor;
21
23
  export let websocketAlive;
@@ -202,121 +204,137 @@ async function onScriptPick(e) {
202
204
  <ResourceEditor bind:this={resourceEditor} on:refresh={resourcePicker.openDrawer} />
203
205
  <VariableEditor bind:this={variableEditor} on:create={variablePicker.openDrawer} />
204
206
 
205
- <div class="flex flex-row justify-between items-center overflow-hidden w-full px-1">
206
- <div class="flex flex-row divide-x items-center">
207
- <div class="mx-2">
208
- {#if validCode}
209
- <Badge color="green">Inputs</Badge>
210
- {:else}
211
- <Badge color="red">Inputs</Badge>
212
- {/if}
213
- </div>
214
- <div>
215
- <Button
216
- color="light"
217
- btnClasses="mr-1 !font-medium"
218
- on:click={contextualVariablePicker.openDrawer}
219
- size="xs"
220
- spacingSize="md"
221
- startIcon={{ icon: faDollarSign }}
222
- {iconOnly}
223
- >
224
- +Context Var
225
- </Button>
226
- </div>
227
- <div>
228
- <Button
229
- color="light"
230
- btnClasses="mx-1 !font-medium"
231
- on:click={variablePicker.openDrawer}
232
- size="xs"
233
- spacingSize="md"
234
- startIcon={{ icon: faDollarSign }}
235
- {iconOnly}
236
- >
237
- +Variable
238
- </Button>
239
- </div>
240
- <div>
241
- <Button
242
- btnClasses="mx-1 !font-medium"
243
- size="xs"
244
- spacingSize="md"
245
- color="light"
246
- on:click={resourcePicker.openDrawer}
247
- {iconOnly}
248
- startIcon={{ icon: faCube }}
249
- >
250
- +Resource
251
- </Button>
252
- </div>
253
- <div>
254
- <Button
255
- btnClasses="mx-1 !font-medium"
256
- size="xs"
257
- spacingSize="md"
258
- color="light"
259
- on:click={editor.clearContent}
260
- {iconOnly}
261
- startIcon={{ icon: faRotateLeft }}
262
- >
263
- Reset
264
- </Button>
265
- </div>
266
- <div>
267
- <Button
268
- btnClasses="!font-medium"
269
- size="xs"
270
- spacingSize="md"
271
- color="light"
272
- on:click={editor.reloadWebsocket}
273
- startIcon={{ icon: faRotate }}
274
- >
275
- {#if !iconOnly}
276
- Assistant
277
- {/if}
278
- <span class="ml-1 -my-1">
279
- {#if lang == 'deno'}
280
- (<span class={websocketAlive.deno ? 'green' : 'text-red-700'}>Deno</span>)
281
- {:else if lang == 'go'}
282
- (<span class={websocketAlive.go ? 'green' : 'text-red-700'}>Go</span>)
283
- {:else if lang == 'python3'}
284
- (<span class={websocketAlive.pyright ? 'green' : 'text-red-700'}>Pyright</span>
285
- <span class={websocketAlive.black ? 'green' : 'text-red-700'}>Black</span>)
207
+ <div class="flex justify-between items-center overflow-y-auto w-full p-1">
208
+ <div class="flex items-center">
209
+ <Badge color={validCode ? 'green' : 'red'} class="min-w-[60px] mr-3">
210
+ {validCode ? 'Valid' : 'Invalid'}
211
+ </Badge>
212
+ <div class="flex items-center divide-x">
213
+ <Popover notClickable placement="bottom" disapperTimoout={0} class="pr-1" disablePopup={!iconOnly}>
214
+ <Button
215
+ color="light"
216
+ btnClasses="!font-medium !h-full"
217
+ on:click={contextualVariablePicker.openDrawer}
218
+ size="xs"
219
+ spacingSize="md"
220
+ startIcon={{ icon: faDollarSign }}
221
+ {iconOnly}
222
+ >
223
+ +Context Var
224
+ </Button>
225
+ <svelte:fragment slot="text">
226
+ Add context variable
227
+ </svelte:fragment>
228
+ </Popover>
229
+ <Popover notClickable placement="bottom" disapperTimoout={0} class="px-1" disablePopup={!iconOnly}>
230
+ <Button
231
+ color="light"
232
+ btnClasses="!font-medium !h-full"
233
+ on:click={variablePicker.openDrawer}
234
+ size="xs"
235
+ spacingSize="md"
236
+ startIcon={{ icon: faDollarSign }}
237
+ {iconOnly}
238
+ >
239
+ +Variable
240
+ </Button>
241
+ <svelte:fragment slot="text">
242
+ Add variable
243
+ </svelte:fragment>
244
+ </Popover>
245
+ <Popover notClickable placement="bottom" disapperTimoout={0} class="px-1" disablePopup={!iconOnly}>
246
+ <Button
247
+ btnClasses="!font-medium !h-full"
248
+ size="xs"
249
+ spacingSize="md"
250
+ color="light"
251
+ on:click={resourcePicker.openDrawer}
252
+ {iconOnly}
253
+ startIcon={{ icon: faCube }}
254
+ >
255
+ +Resource
256
+ </Button>
257
+ <svelte:fragment slot="text">
258
+ Add resource
259
+ </svelte:fragment>
260
+ </Popover>
261
+ <Popover notClickable placement="bottom" disapperTimoout={0} class="px-1" disablePopup={!iconOnly}>
262
+ <Button
263
+ btnClasses="!font-medium !h-full"
264
+ size="xs"
265
+ spacingSize="md"
266
+ color="light"
267
+ on:click={editor.clearContent}
268
+ {iconOnly}
269
+ startIcon={{ icon: faRotateLeft }}
270
+ >
271
+ Reset
272
+ </Button>
273
+ <svelte:fragment slot="text">
274
+ Reset
275
+ </svelte:fragment>
276
+ </Popover>
277
+ <Popover notClickable placement="bottom" disapperTimoout={0} class="px-1" disablePopup={!iconOnly}>
278
+ <Button
279
+ btnClasses="!font-medium !h-full"
280
+ size="xs"
281
+ spacingSize="md"
282
+ color="light"
283
+ on:click={editor.reloadWebsocket}
284
+ startIcon={{ icon: faRotate }}
285
+ >
286
+ {#if !iconOnly}
287
+ Assistant
286
288
  {/if}
287
- </span>
288
- </Button></div
289
- >
290
- <div>
291
- <Button
292
- btnClasses="!font-medium"
293
- size="xs"
294
- spacingSize="md"
295
- color="light"
296
- on:click={editor.format}
297
- startIcon={{ icon: faBroom }}
298
- >
299
- {#if !iconOnly}
289
+ <span class="ml-1 -my-1">
290
+ {#if lang == 'deno'}
291
+ (<span class={websocketAlive.deno ? 'green' : 'text-red-700'}>Deno</span>)
292
+ {:else if lang == 'go'}
293
+ (<span class={websocketAlive.go ? 'green' : 'text-red-700'}>Go</span>)
294
+ {:else if lang == 'python3'}
295
+ (<span class={websocketAlive.pyright ? 'green' : 'text-red-700'}>Pyright</span>
296
+ <span class={websocketAlive.black ? 'green' : 'text-red-700'}>Black</span>)
297
+ {/if}
298
+ </span>
299
+ </Button>
300
+ <svelte:fragment slot="text">
301
+ Reload assistant
302
+ </svelte:fragment>
303
+ </Popover>
304
+ <Popover notClickable placement="bottom" disapperTimoout={0} class="px-1" disablePopup={!iconOnly}>
305
+ <Button
306
+ btnClasses="!font-medium"
307
+ size="xs"
308
+ spacingSize="md"
309
+ color="light"
310
+ on:click={editor.format}
311
+ {iconOnly}
312
+ startIcon={{ icon: faBroom }}
313
+ >
300
314
  Format (Ctrl+S)
301
- {/if}
302
- </Button></div
303
- >
304
- </div>
305
- <div class="py-1">
306
- <div>
307
- <Button
308
- btnClasses="mx-1 !font-medium"
309
- size="xs"
310
- spacingSize="md"
311
- color="light"
312
- on:click={scriptPicker.openDrawer}
313
- {iconOnly}
314
- startIcon={{ icon: faEye }}
315
- >
316
- Script
317
- </Button>
315
+ </Button>
316
+ <svelte:fragment slot="text">
317
+ Format <Kbd class="!text-gray-800">Ctrl</Kbd> + <Kbd class="!text-gray-800">S</Kbd>
318
+ </svelte:fragment>
319
+ </Popover>
318
320
  </div>
319
321
  </div>
322
+ <Popover notClickable placement="bottom" disapperTimoout={0} class="px-1" disablePopup={!iconOnly}>
323
+ <Button
324
+ btnClasses="!font-medium"
325
+ size="xs"
326
+ spacingSize="md"
327
+ color="light"
328
+ on:click={scriptPicker.openDrawer}
329
+ {iconOnly}
330
+ startIcon={{ icon: faEye }}
331
+ >
332
+ Script
333
+ </Button>
334
+ <svelte:fragment slot="text">
335
+ Script
336
+ </svelte:fragment>
337
+ </Popover>
320
338
  </div>
321
339
 
322
340
  <style>
@@ -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(`Success! flow saved at ${$flowStore.path}`);
112
- goto(`/flows/get/${$flowStore.path}`);
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'}
@@ -1,20 +1,28 @@
1
- <script>import DisplayResult from './DisplayResult.svelte';
1
+ <script>import { Loader2 } from 'lucide-svelte';
2
+ import DisplayResult from './DisplayResult.svelte';
2
3
  import LogViewer from './LogViewer.svelte';
3
4
  export let result;
4
5
  export let logs;
5
6
  export let col = false;
6
7
  export let noBorder = false;
8
+ export let loading;
7
9
  </script>
8
10
 
9
11
  <div
10
12
  class:border={!noBorder}
11
- 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"
12
14
  >
13
- <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">
14
16
  <span class="text-gray-500">Result</span>
15
- <DisplayResult {result} />
17
+ {#if result}
18
+ <DisplayResult {result} />
19
+ {:else if loading}
20
+ <Loader2 class="animate-spin" />
21
+ {:else}
22
+ <div class="text-gray-400">No result (result is undefined)</div>
23
+ {/if}
16
24
  </div>
17
- <div class="overflow-auto max-h-80 h-full relative">
25
+ <div class="overflow-auto {col ? '' : 'max-h-80'} h-full relative">
18
26
  <LogViewer content={logs ?? ''} isLoading={false} />
19
27
  </div>
20
28
  </div>
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  logs: string;
6
6
  col?: boolean | undefined;
7
7
  noBorder?: boolean | undefined;
8
+ loading: any;
8
9
  };
9
10
  events: {
10
11
  [evt: string]: CustomEvent<any>;
@@ -1,7 +1,7 @@
1
1
  <script>import JobStatus from './JobStatus.svelte';
2
2
  import Icon from 'svelte-awesome';
3
- import { displayDaysAgo } from '../utils';
4
- import { faCalendar, faClock, faRobot, faScroll, faUser, faBarsStaggered } from '@fortawesome/free-solid-svg-icons';
3
+ import { displayDate, displayDaysAgo } from '../utils';
4
+ import { faCalendar, faClock, faRobot, faScroll, faUser, faBarsStaggered, faMemory } from '@fortawesome/free-solid-svg-icons';
5
5
  import ScheduleEditor from './ScheduleEditor.svelte';
6
6
  import { onDestroy, onMount } from 'svelte';
7
7
  let time = Date.now();
@@ -27,16 +27,31 @@ let scheduleEditor;
27
27
  <Icon class="text-gray-700" data={faClock} scale={SMALL_ICON_SCALE} /><span
28
28
  class="mx-2 text-2xs text-gray-600"
29
29
  >
30
- {#key time}
31
- Received job {displayDaysAgo(job.created_at ?? '')}
32
- {/key}</span
30
+ {#if job['success'] != undefined}
31
+ Received job: {displayDate(job.created_at ?? '')}
32
+ {:else}
33
+ {#key time}
34
+ Received job {displayDaysAgo(job.created_at ?? '')}
35
+ {/key}
36
+ {/if}</span
33
37
  >
34
38
  </div>
35
39
  {#if job && 'started_at' in job && job.started_at}
36
40
  <div>
37
41
  <Icon class="text-gray-700" data={faClock} scale={SMALL_ICON_SCALE} /><span class="mx-2">
38
- {#key time}
39
- Started {displayDaysAgo(job.started_at ?? '')}{/key}</span
42
+ {#if job['success'] != undefined}
43
+ Started: {displayDate(job.started_at ?? '')}
44
+ {:else}
45
+ {#key time}
46
+ Started {displayDaysAgo(job.started_at ?? '')}{/key}
47
+ {/if}
48
+ </span>
49
+ </div>
50
+ {/if}
51
+ {#if job && job['mem_peak']}
52
+ <div>
53
+ <Icon class="text-gray-700" data={faMemory} scale={SMALL_ICON_SCALE} /><span class="mx-2">
54
+ Mem peak: {(job['mem_peak'] / 1024).toPrecision(5)}MB</span
40
55
  >
41
56
  </div>
42
57
  {/if}
@@ -78,7 +93,8 @@ let scheduleEditor;
78
93
  <div>
79
94
  <Icon class="text-gray-700" data={faUser} scale={SMALL_ICON_SCALE} /><span class="mx-2">
80
95
  By {job.created_by}
81
- {#if job.permissioned_as !== `u/${job.created_by}`}but permissioned as {job.permissioned_as}{/if}
96
+ {#if job.permissioned_as !== `u/${job.created_by}` && job.permissioned_as != job.created_by}but
97
+ permissioned as {job.permissioned_as}{/if}
82
98
  </span>
83
99
  </div>
84
100
  </div>