windmill-components 1.52.0 → 1.55.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 (349) hide show
  1. package/components/ApiConnectForm.svelte +42 -7
  2. package/components/ApiConnectForm.svelte.d.ts +2 -1
  3. package/components/AppConnect.svelte +19 -11
  4. package/components/ArgInfo.svelte +6 -2
  5. package/components/ArgInput.svelte +9 -3
  6. package/components/ArgInput.svelte.d.ts +1 -0
  7. package/components/CenteredPage.svelte +1 -1
  8. package/components/CenteredPage.svelte.d.ts +6 -2
  9. package/components/CronInput.svelte +1 -1
  10. package/components/DisplayResult.svelte +39 -2
  11. package/components/Dropdown.svelte +73 -100
  12. package/components/Dropdown.svelte.d.ts +1 -3
  13. package/components/Editor.svelte +16 -5
  14. package/components/EditorBar.svelte +69 -63
  15. package/components/EditorBar.svelte.d.ts +1 -0
  16. package/components/FlowBuilder.svelte +74 -68
  17. package/components/FlowGraphViewer.svelte +136 -34
  18. package/components/FlowGraphViewer.svelte.d.ts +1 -0
  19. package/components/FlowJobResult.svelte +6 -1
  20. package/components/FlowJobResult.svelte.d.ts +2 -0
  21. package/components/FlowMetadata.svelte +4 -2
  22. package/components/FlowPreviewContent.svelte +10 -23
  23. package/components/FlowPreviewContent.svelte.d.ts +3 -0
  24. package/components/FlowStatusViewer.svelte +155 -30
  25. package/components/FlowStatusViewer.svelte.d.ts +4 -2
  26. package/components/FlowViewer.svelte +3 -3
  27. package/components/FlowViewer.svelte.d.ts +1 -0
  28. package/components/HighlightCode.svelte +1 -1
  29. package/components/HighlightCode.svelte.d.ts +1 -0
  30. package/components/IconedPath.svelte +16 -6
  31. package/components/IconedPath.svelte.d.ts +2 -0
  32. package/components/IconedResourceType.svelte +5 -2
  33. package/components/InputTransformForm.svelte +92 -73
  34. package/components/InviteGlobalUser.svelte +2 -2
  35. package/components/InviteGlobalUser.svelte.d.ts +1 -1
  36. package/components/InviteUser.svelte +20 -6
  37. package/components/InviteUser.svelte.d.ts +1 -1
  38. package/components/ItemPicker.svelte +38 -27
  39. package/components/ItemPicker.svelte.d.ts +2 -1
  40. package/components/JobStatus.svelte +19 -13
  41. package/components/LogViewer.svelte +11 -3
  42. package/components/LogViewer.svelte.d.ts +1 -0
  43. package/components/ModuleStatus.svelte +38 -0
  44. package/components/ModuleStatus.svelte.d.ts +18 -0
  45. package/components/ObjectResourceInput.svelte +8 -52
  46. package/components/ObjectResourceInput.svelte.d.ts +0 -1
  47. package/components/Path.svelte +2 -2
  48. package/components/Path.svelte.d.ts +1 -1
  49. package/components/Popover.svelte +7 -1
  50. package/components/Popover.svelte.d.ts +3 -1
  51. package/components/ResourceEditor.svelte +57 -29
  52. package/components/ResourcePicker.svelte +12 -2
  53. package/components/SchemaEditor.svelte +2 -1
  54. package/components/SchemaForm.svelte +2 -1
  55. package/components/SchemaForm.svelte.d.ts +1 -0
  56. package/components/SchemaModal.svelte +11 -10
  57. package/components/ScriptBuilder.svelte +207 -192
  58. package/components/ScriptBuilder.svelte.d.ts +1 -1
  59. package/components/ScriptEditor.svelte +49 -45
  60. package/components/ScriptEditor.svelte.d.ts +1 -0
  61. package/components/ScriptPicker.svelte.d.ts +1 -1
  62. package/components/ScriptSchema.svelte +11 -30
  63. package/components/ScriptSchema.svelte.d.ts +0 -1
  64. package/components/SharedBadge.svelte +2 -3
  65. package/components/SimpleEditor.svelte +6 -7
  66. package/components/SimpleEditor.svelte.d.ts +1 -0
  67. package/components/Star.svelte +2 -2
  68. package/components/SuperadminSettings.svelte +9 -38
  69. package/components/TableSimple.svelte +1 -1
  70. package/components/TestJobLoader.svelte +20 -8
  71. package/components/ToggleHubWorkspace.svelte +16 -0
  72. package/components/ToggleHubWorkspace.svelte.d.ts +16 -0
  73. package/components/Tooltip.svelte.d.ts +1 -1
  74. package/components/VariableEditor.svelte +22 -9
  75. package/components/apps/CreateApp.svelte +5 -2
  76. package/components/apps/CreateApp.svelte.d.ts +1 -1
  77. package/components/apps/components/DisplayComponent.svelte +7 -14
  78. package/components/apps/components/DisplayComponent.svelte.d.ts +3 -2
  79. package/components/apps/components/buttons/AppButton.svelte +34 -27
  80. package/components/apps/components/buttons/AppButton.svelte.d.ts +6 -6
  81. package/components/apps/components/dataDisplay/AppBarChart.svelte +33 -9
  82. package/components/apps/components/dataDisplay/AppBarChart.svelte.d.ts +3 -5
  83. package/components/apps/components/dataDisplay/AppPieChart.svelte +33 -12
  84. package/components/apps/components/dataDisplay/AppPieChart.svelte.d.ts +3 -5
  85. package/components/apps/components/dataDisplay/AppTable.svelte +27 -30
  86. package/components/apps/components/dataDisplay/AppTable.svelte.d.ts +4 -8
  87. package/components/apps/components/dataDisplay/AppText.svelte +16 -9
  88. package/components/apps/components/dataDisplay/AppText.svelte.d.ts +3 -2
  89. package/components/apps/components/dataDisplay/app.md +49 -0
  90. package/components/apps/components/form/AppForm.svelte +50 -0
  91. package/components/apps/components/form/AppForm.svelte.d.ts +25 -0
  92. package/components/apps/components/helpers/AlignWrapper.svelte +2 -1
  93. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +1 -0
  94. package/components/apps/components/helpers/DebouncedInput.svelte +9 -1
  95. package/components/apps/components/helpers/DebouncedInput.svelte.d.ts +2 -1
  96. package/components/apps/components/helpers/InputValue.svelte +15 -6
  97. package/components/apps/components/helpers/InputValue.svelte.d.ts +2 -2
  98. package/components/apps/components/helpers/NonRunnableComponent.svelte +20 -0
  99. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +21 -0
  100. package/components/apps/components/helpers/RunnableComponent.svelte +36 -30
  101. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +6 -7
  102. package/components/apps/components/helpers/RunnableWrapper.svelte +32 -0
  103. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +26 -0
  104. package/components/apps/components/numberInputs/AppNumberInput.svelte +36 -0
  105. package/components/apps/components/numberInputs/AppNumberInput.svelte.d.ts +20 -0
  106. package/components/apps/components/selectInputs/AppCheckbox.svelte +4 -2
  107. package/components/apps/components/selectInputs/AppCheckbox.svelte.d.ts +2 -2
  108. package/components/apps/components/textInputs/AppTextInput.svelte +21 -0
  109. package/components/apps/components/textInputs/AppTextInput.svelte.d.ts +20 -0
  110. package/components/apps/editor/AppEditor.svelte +66 -55
  111. package/components/apps/editor/AppEditorHeader.svelte +4 -4
  112. package/components/apps/editor/AppPreview.svelte +42 -0
  113. package/components/apps/editor/AppPreview.svelte.d.ts +17 -0
  114. package/components/apps/editor/ComponentEditor.svelte +41 -20
  115. package/components/apps/editor/ComponentEditor.svelte.d.ts +2 -0
  116. package/components/apps/editor/ComponentHeader.svelte +28 -0
  117. package/components/apps/editor/ComponentHeader.svelte.d.ts +20 -0
  118. package/components/apps/editor/GridEditor.svelte +54 -5
  119. package/components/apps/editor/GridEditor.svelte.d.ts +1 -1
  120. package/components/apps/editor/RecomputeAllComponents.svelte +28 -0
  121. package/components/apps/editor/RecomputeAllComponents.svelte.d.ts +14 -0
  122. package/components/apps/editor/componentsPanel/ComponentList.svelte +94 -26
  123. package/components/apps/editor/componentsPanel/ComponentList.svelte.d.ts +1 -1
  124. package/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +2 -6
  125. package/components/apps/editor/componentsPanel/componentDefaultProps.js +1 -5
  126. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +2 -0
  127. package/components/apps/editor/componentsPanel/componentStaticValues.js +3 -1
  128. package/components/apps/editor/componentsPanel/data.js +191 -76
  129. package/components/apps/editor/contextPanel/ContextPanel.svelte +56 -48
  130. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +67 -0
  131. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +55 -0
  132. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +154 -129
  133. package/components/apps/editor/settingsPanel/ConnectedInputEditor.svelte +70 -0
  134. package/components/apps/editor/settingsPanel/ConnectedInputEditor.svelte.d.ts +17 -0
  135. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +6 -6
  136. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
  137. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +55 -87
  138. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +3 -4
  139. package/components/apps/editor/settingsPanel/PickFlow.svelte +3 -2
  140. package/components/apps/editor/settingsPanel/PickFlow.svelte.d.ts +1 -1
  141. package/components/apps/editor/settingsPanel/PickInlineScript.svelte +3 -3
  142. package/components/apps/editor/settingsPanel/Recompute.svelte +46 -0
  143. package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +17 -0
  144. package/components/apps/editor/settingsPanel/StaticInputEditor.svelte +31 -14
  145. package/components/apps/editor/settingsPanel/StaticInputEditor.svelte.d.ts +3 -3
  146. package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +17 -0
  147. package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +19 -0
  148. package/components/apps/editor/settingsPanel/TableActionLabel.svelte +10 -0
  149. package/components/apps/editor/settingsPanel/TableActionLabel.svelte.d.ts +17 -0
  150. package/components/apps/editor/settingsPanel/TableActions.svelte +13 -9
  151. package/components/apps/editor/settingsPanel/UserInputEditor.svelte.d.ts +1 -1
  152. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +3 -2
  153. package/components/apps/editor/settingsPanel/common/PanelSection.svelte.d.ts +1 -0
  154. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +53 -0
  155. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +21 -0
  156. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +98 -0
  157. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +18 -0
  158. package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte +81 -0
  159. package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte.d.ts +20 -0
  160. package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte +81 -0
  161. package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte.d.ts +20 -0
  162. package/components/apps/inputType.d.ts +62 -0
  163. package/components/apps/inputType.js +1 -0
  164. package/components/apps/rx.d.ts +4 -4
  165. package/components/apps/rx.js +16 -4
  166. package/components/apps/types.d.ts +20 -54
  167. package/components/apps/utils.d.ts +11 -34
  168. package/components/apps/utils.js +54 -18
  169. package/components/common/alert/Alert.svelte +2 -1
  170. package/components/common/alert/Alert.svelte.d.ts +1 -0
  171. package/components/common/button/Button.svelte +1 -1
  172. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +1 -1
  173. package/components/common/drawer/DrawerContent.svelte +23 -22
  174. package/components/common/drawer/DrawerContent.svelte.d.ts +1 -3
  175. package/components/common/kbd/Kbd.svelte.d.ts +2 -2
  176. package/components/common/languageIcons/LanguageIcon.svelte +4 -2
  177. package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
  178. package/components/common/menu/Menu.svelte +0 -1
  179. package/components/common/menu/MenuItem.svelte.d.ts +6 -2
  180. package/components/common/popup/Popup.svelte +0 -11
  181. package/components/common/table/AppRow.svelte +42 -26
  182. package/components/common/table/AppRow.svelte.d.ts +1 -1
  183. package/components/common/table/FlowRow.svelte +54 -49
  184. package/components/common/table/LanguageBadge.svelte +1 -1
  185. package/components/common/table/Row.svelte +27 -16
  186. package/components/common/table/Row.svelte.d.ts +2 -1
  187. package/components/common/table/RowIcon.svelte +13 -8
  188. package/components/common/table/ScriptRow.svelte +65 -57
  189. package/components/common/table/Table.svelte.d.ts +6 -2
  190. package/components/flows/CreateActionsFlow.svelte +14 -41
  191. package/components/flows/CreateActionsFlow.svelte.d.ts +1 -1
  192. package/components/flows/common/FlowCardHeader.svelte +7 -8
  193. package/components/flows/content/BranchPredicateEditor.svelte +30 -0
  194. package/components/flows/content/BranchPredicateEditor.svelte.d.ts +23 -0
  195. package/components/flows/content/CapturePayload.svelte +12 -8
  196. package/components/flows/content/DynamicInputHelpBox.svelte.d.ts +1 -1
  197. package/components/flows/content/FlowBranchAllWrapper.svelte +2 -2
  198. package/components/flows/content/FlowBranchOneWrapper.svelte +4 -36
  199. package/components/flows/content/FlowBranchesAllWrapper.svelte +91 -0
  200. package/components/flows/content/FlowBranchesAllWrapper.svelte.d.ts +18 -0
  201. package/components/flows/content/FlowBranchesOneWrapper.svelte +88 -0
  202. package/components/flows/content/FlowBranchesOneWrapper.svelte.d.ts +18 -0
  203. package/components/flows/content/FlowFailureModule.svelte.d.ts +1 -1
  204. package/components/flows/content/FlowInput.svelte +1 -2
  205. package/components/flows/content/FlowInput.svelte.d.ts +1 -1
  206. package/components/flows/content/FlowInputs.svelte +28 -26
  207. package/components/flows/content/FlowInputsFlow.svelte +101 -0
  208. package/components/flows/content/FlowInputsFlow.svelte.d.ts +20 -0
  209. package/components/flows/content/FlowLoop.svelte +10 -3
  210. package/components/flows/content/FlowModuleComponent.svelte +46 -35
  211. package/components/flows/content/FlowModuleEarlyStop.svelte +4 -3
  212. package/components/flows/content/FlowModuleHeader.svelte +22 -21
  213. package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
  214. package/components/flows/content/FlowModuleSleep.svelte +69 -0
  215. package/components/flows/content/FlowModuleSleep.svelte.d.ts +18 -0
  216. package/components/flows/content/FlowModuleSuspend.svelte +5 -63
  217. package/components/flows/content/FlowModuleSuspend.svelte.d.ts +0 -1
  218. package/components/flows/content/FlowModuleWrapper.svelte +59 -35
  219. package/components/flows/content/FlowPathViewer.svelte +20 -0
  220. package/components/flows/content/FlowPathViewer.svelte.d.ts +17 -0
  221. package/components/flows/content/FlowSchedules.svelte.d.ts +1 -1
  222. package/components/flows/content/FlowSettings.svelte +8 -12
  223. package/components/flows/flowState.js +2 -2
  224. package/components/flows/flowStateUtils.d.ts +7 -3
  225. package/components/flows/flowStateUtils.js +29 -8
  226. package/components/flows/header/FlowImportExportMenu.svelte.d.ts +1 -1
  227. package/components/flows/header/FlowPreviewButtons.svelte +6 -2
  228. package/components/flows/header/FlowPreviewButtons.svelte.d.ts +1 -1
  229. package/components/flows/map/FlowErrorHandlerItem.svelte +5 -5
  230. package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -1
  231. package/components/flows/map/FlowInputsItem.svelte.d.ts +1 -1
  232. package/components/flows/map/FlowModuleSchemaItem.svelte +30 -11
  233. package/components/flows/map/FlowModuleSchemaMap.svelte +26 -20
  234. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -1
  235. package/components/flows/map/FlowSettingsItem.svelte +1 -1
  236. package/components/flows/map/FlowSettingsItem.svelte.d.ts +1 -1
  237. package/components/flows/map/InsertModuleButton.svelte +20 -4
  238. package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -1
  239. package/components/flows/map/MapItem.svelte +11 -5
  240. package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
  241. package/components/flows/pickers/PickHubFlow.svelte +72 -0
  242. package/components/flows/pickers/PickHubFlow.svelte.d.ts +20 -0
  243. package/components/flows/pickers/PickHubScript.svelte +65 -56
  244. package/components/flows/pickers/PickHubScript.svelte.d.ts +3 -1
  245. package/components/flows/pickers/PickScript.svelte +2 -2
  246. package/components/flows/pickers/WorkspaceScriptPicker.svelte +79 -19
  247. package/components/flows/pickers/WorkspaceScriptPicker.svelte.d.ts +5 -1
  248. package/components/flows/previousResults.d.ts +1 -0
  249. package/components/flows/previousResults.js +2 -1
  250. package/components/flows/propPicker/PropPickerWrapper.svelte +9 -1
  251. package/components/flows/utils.d.ts +0 -1
  252. package/components/flows/utils.js +6 -6
  253. package/components/graph/FlowGraph.svelte +120 -54
  254. package/components/graph/FlowGraph.svelte.d.ts +3 -2
  255. package/components/graph/model.d.ts +11 -0
  256. package/components/home/ItemsList.svelte +265 -0
  257. package/components/home/ItemsList.svelte.d.ts +16 -0
  258. package/components/home/ListFilters.svelte +37 -0
  259. package/components/home/ListFilters.svelte.d.ts +18 -0
  260. package/components/home/NoItemFound.svelte +6 -0
  261. package/components/home/NoItemFound.svelte.d.ts +23 -0
  262. package/components/icons/DatadogIcon.svelte +48 -0
  263. package/components/icons/DatadogIcon.svelte.d.ts +17 -0
  264. package/components/icons/FunkwhaleIcon.svelte +90 -0
  265. package/components/icons/FunkwhaleIcon.svelte.d.ts +17 -0
  266. package/components/icons/GdocsIcon.svelte +9 -0
  267. package/components/icons/GdocsIcon.svelte.d.ts +17 -0
  268. package/components/icons/HubspotIcon.svelte +9 -0
  269. package/components/icons/HubspotIcon.svelte.d.ts +17 -0
  270. package/components/icons/LinkedinIcon.svelte +9 -0
  271. package/components/icons/LinkedinIcon.svelte.d.ts +17 -0
  272. package/components/icons/Mail.svelte +9 -53
  273. package/components/icons/Mysql.svelte +8 -8
  274. package/components/icons/NextcloudIcon.svelte +9 -0
  275. package/components/icons/NextcloudIcon.svelte.d.ts +17 -0
  276. package/components/icons/QRCodeIcon.svelte +5 -0
  277. package/components/icons/QRCodeIcon.svelte.d.ts +16 -0
  278. package/components/icons/SendflakeIcon.svelte +15 -0
  279. package/components/icons/SendflakeIcon.svelte.d.ts +17 -0
  280. package/components/icons/StripeIcon.svelte +9 -0
  281. package/components/icons/StripeIcon.svelte.d.ts +17 -0
  282. package/components/icons/TelegramIcon.svelte +9 -0
  283. package/components/icons/TelegramIcon.svelte.d.ts +17 -0
  284. package/components/icons/WindmillIcon.svelte +3 -3
  285. package/components/icons/index.d.ts +23 -1
  286. package/components/icons/index.js +23 -1
  287. package/components/jobs/JobDetail.svelte +2 -2
  288. package/components/preview/FlowPreviewStatus.svelte +12 -23
  289. package/components/propertyPicker/PropPicker.svelte +16 -0
  290. package/components/propertyPicker/PropPickerResult.svelte +2 -3
  291. package/components/propertyPicker/WarningMessage.svelte.d.ts +6 -2
  292. package/components/scriptEditor/LogPanel.svelte +11 -4
  293. package/components/scripts/CreateActionsScript.svelte +13 -59
  294. package/components/scripts/CreateActionsScript.svelte.d.ts +1 -1
  295. package/components/sidebar/FavoriteMenu.svelte +52 -0
  296. package/components/sidebar/FavoriteMenu.svelte.d.ts +21 -0
  297. package/components/sidebar/SidebarContent.svelte +10 -19
  298. package/components/sidebar/SidebarContent.svelte.d.ts +0 -4
  299. package/components/sidebar/UserMenu.svelte +21 -4
  300. package/components/sidebar/WorkspaceMenu.svelte +6 -7
  301. package/editorUtils.d.ts +2 -0
  302. package/editorUtils.js +3 -1
  303. package/gen/core/OpenAPI.js +1 -1
  304. package/gen/index.d.ts +1 -0
  305. package/gen/models/CompletedJob.d.ts +1 -0
  306. package/gen/models/CreateWorkspace.d.ts +0 -1
  307. package/gen/models/EditWorkspaceUser.d.ts +2 -0
  308. package/gen/models/FlowModuleValue.d.ts +2 -1
  309. package/gen/models/FlowStatus.d.ts +3 -1
  310. package/gen/models/FlowStatusModule.d.ts +1 -1
  311. package/gen/models/FlowStatusModule.js +1 -1
  312. package/gen/models/Identity.d.ts +1 -0
  313. package/gen/models/ListableResource.d.ts +1 -0
  314. package/gen/models/ListableVariable.d.ts +1 -0
  315. package/gen/models/PathFlow.d.ts +6 -0
  316. package/gen/models/PathFlow.js +4 -0
  317. package/gen/models/PathScript.d.ts +1 -0
  318. package/gen/models/QueuedJob.d.ts +1 -0
  319. package/gen/models/Schedule.d.ts +2 -0
  320. package/gen/models/Usage.d.ts +1 -3
  321. package/gen/models/WorkspaceInvite.d.ts +1 -0
  322. package/gen/services/AppService.d.ts +7 -1
  323. package/gen/services/AppService.js +2 -1
  324. package/gen/services/JobService.d.ts +35 -5
  325. package/gen/services/JobService.js +14 -5
  326. package/gen/services/OauthService.d.ts +1 -1
  327. package/gen/services/ResourceService.d.ts +6 -2
  328. package/gen/services/ResourceService.js +2 -1
  329. package/gen/services/UserService.d.ts +6 -0
  330. package/gen/services/UserService.js +11 -0
  331. package/gen/services/WorkspaceService.d.ts +35 -0
  332. package/gen/services/WorkspaceService.js +41 -0
  333. package/package.json +56 -17
  334. package/script_helpers.d.ts +2 -1
  335. package/script_helpers.js +20 -3
  336. package/scripts.d.ts +1 -0
  337. package/scripts.js +8 -1
  338. package/stores.d.ts +11 -2
  339. package/stores.js +24 -6
  340. package/utils.d.ts +3 -1
  341. package/utils.js +11 -4
  342. package/components/ButtonAndDropdown.svelte +0 -25
  343. package/components/ButtonAndDropdown.svelte.d.ts +0 -23
  344. package/components/apps/components/index.d.ts +0 -22
  345. package/components/apps/components/index.js +0 -42
  346. package/components/apps/editor/settingsPanel/DynamicInputEditor.svelte +0 -64
  347. package/components/apps/editor/settingsPanel/DynamicInputEditor.svelte.d.ts +0 -17
  348. package/components/flows/content/FlowBranchesWrapper.svelte +0 -140
  349. package/components/flows/content/FlowBranchesWrapper.svelte.d.ts +0 -19
@@ -0,0 +1,101 @@
1
+ <script>import { Badge, Skeleton } from '../../common';
2
+ import NoItemFound from '../../home/NoItemFound.svelte';
3
+ import SearchItems from '../../SearchItems.svelte';
4
+ import { FlowService } from '../../../gen';
5
+ import { workspaceStore } from '../../../stores';
6
+ import { emptyString } from '../../../utils';
7
+ import { createEventDispatcher } from 'svelte';
8
+ import { flip } from 'svelte/animate';
9
+ import { fade } from 'svelte/transition';
10
+ export let failureModule;
11
+ const dispatch = createEventDispatcher();
12
+ let items = undefined;
13
+ let filteredItems = undefined;
14
+ let filter = '';
15
+ $: $workspaceStore && loadFlows();
16
+ let ownerFilter = undefined;
17
+ $: prefilteredItems = ownerFilter ? items?.filter((x) => x.path.startsWith(ownerFilter)) : items;
18
+ $: owners = Array.from(new Set(filteredItems?.map((x) => x.path.split('/').slice(0, 2).join('/')) ?? [])).sort();
19
+ async function loadFlows() {
20
+ items = await FlowService.listFlows({ workspace: $workspaceStore });
21
+ }
22
+ </script>
23
+
24
+ <SearchItems
25
+ {filter}
26
+ items={prefilteredItems}
27
+ bind:filteredItems
28
+ f={(x) => (emptyString(x.summary) ? x.path : x.summary + ' (' + x.path + ')')}
29
+ />
30
+ <div class="flex flex-col min-h-0 p-4">
31
+ <h3 class="mb-4">Pick a Workspace Flow</h3>
32
+ <div class="w-full flex mt-1 items-center gap-2 mb-3">
33
+ <slot />
34
+
35
+ <input
36
+ type="text"
37
+ placeholder="Search Workspace Flow"
38
+ bind:value={filter}
39
+ class="text-2xl grow"
40
+ />
41
+ </div>
42
+
43
+ {#if filteredItems}
44
+ {#if owners.length > 0}
45
+ <div class="gap-2 w-full flex flex-wrap my-2">
46
+ {#each owners as owner (owner)}
47
+ <div in:fade={{ duration: 50 }} animate:flip={{ duration: 100 }}>
48
+ <Badge
49
+ class="cursor-pointer hover:bg-gray-200"
50
+ on:click={() => {
51
+ ownerFilter = ownerFilter == owner ? undefined : owner
52
+ }}
53
+ color={owner === ownerFilter ? 'blue' : 'gray'}
54
+ baseClass={owner === ownerFilter ? 'border border-blue-500' : 'border'}
55
+ >
56
+ {owner}
57
+ {#if owner === ownerFilter}&cross;{/if}
58
+ </Badge>
59
+ </div>
60
+ {/each}
61
+ </div>
62
+ {/if}
63
+ {#if filter.length > 0 && filteredItems.length == 0}
64
+ <NoItemFound />
65
+ {/if}
66
+ <ul class="divide-y divide-gray-200 overflow-auto">
67
+ {#each filteredItems as { path, summary, description, marked }}
68
+ <li class="flex flex-row w-full">
69
+ <button
70
+ class="py-4 px-1 gap-1 flex flex-row grow hover:bg-blue-50 bg-white transition-all text-black"
71
+ on:click={() => {
72
+ dispatch('pick', { path })
73
+ }}
74
+ >
75
+ <div class="flex flex-col">
76
+ <div class="text-sm font-semibold flex flex-col">
77
+ <span class="mr-2 text-left">
78
+ {#if marked}
79
+ {@html marked}
80
+ {:else}
81
+ {!summary || summary.length == 0 ? path : summary}
82
+ {/if}
83
+ </span>
84
+ <span class="font-normal text-xs text-left italic overflow-hidden"
85
+ >{path ?? ''}
86
+ </span>
87
+ </div>
88
+ <div class="text-xs font-light italic text-left">{description ?? ''}</div>
89
+ </div>
90
+ </button>
91
+ </li>
92
+ {/each}
93
+ </ul>
94
+ {:else}
95
+ <div class="mt-6" />
96
+
97
+ {#each new Array(6) as _}
98
+ <Skeleton layout={[[4], 0.7]} />
99
+ {/each}
100
+ {/if}
101
+ </div>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ failureModule: boolean;
5
+ };
6
+ events: {
7
+ pick: CustomEvent<any>;
8
+ } & {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {
12
+ default: {};
13
+ };
14
+ };
15
+ export type FlowInputsFlowProps = typeof __propDef.props;
16
+ export type FlowInputsFlowEvents = typeof __propDef.events;
17
+ export type FlowInputsFlowSlots = typeof __propDef.slots;
18
+ export default class FlowInputsFlow extends SvelteComponentTyped<FlowInputsFlowProps, FlowInputsFlowEvents, FlowInputsFlowSlots> {
19
+ }
20
+ export {};
@@ -12,6 +12,7 @@ import { Pane, Splitpanes } from 'svelte-splitpanes';
12
12
  import { getStepPropPicker } from '../previousResults';
13
13
  import { flowStateStore } from '../flowState';
14
14
  import { flowStore } from '../flowStore';
15
+ import FlowModuleSleep from './FlowModuleSleep.svelte';
15
16
  const { previewArgs } = getContext('FlowEditorContext');
16
17
  export let mod;
17
18
  export let parentModule;
@@ -81,8 +82,9 @@ $: stepPropPicker = getStepPropPicker($flowStateStore, parentModule, previousMod
81
82
  <Pane size={40} minSize={20} class="flex flex-col flex-1">
82
83
  <Tabs bind:selected>
83
84
  <!-- <Tab value="retries">Retries</Tab> -->
84
- <Tab value="early-stop">Early Stop</Tab>
85
- <Tab value="suspend">Sleep/Suspend</Tab>
85
+ <Tab value="early-stop">Early Stop/Break</Tab>
86
+ <Tab value="suspend">Suspend</Tab>
87
+ <Tab value="sleep">Sleep</Tab>
86
88
 
87
89
  <svelte:fragment slot="content">
88
90
  <div class="overflow-hidden bg-white" style="height:calc(100% - 32px);">
@@ -100,7 +102,12 @@ $: stepPropPicker = getStepPropPicker($flowStateStore, parentModule, previousMod
100
102
 
101
103
  <TabContent value="suspend" class="flex flex-col flex-1 h-full">
102
104
  <div class="p-4 overflow-y-auto">
103
- <FlowModuleSuspend previousModuleId={previousModule?.id} bind:flowModule={mod} />
105
+ <FlowModuleSuspend bind:flowModule={mod} />
106
+ </div>
107
+ </TabContent>
108
+ <TabContent value="sleep" class="flex flex-col flex-1 h-full">
109
+ <div class="p-4 overflow-y-auto">
110
+ <FlowModuleSleep previousModuleId={previousModule?.id} bind:flowModule={mod} />
104
111
  </div>
105
112
  </TabContent>
106
113
  </div>
@@ -11,7 +11,7 @@ import { RawScript } from '../../../gen';
11
11
  import FlowCard from '../common/FlowCard.svelte';
12
12
  import FlowModuleHeader from './FlowModuleHeader.svelte';
13
13
  import { flowStateStore } from '../flowState';
14
- import { scriptLangToEditorLang } from '../../../utils';
14
+ import { schemaToObject, scriptLangToEditorLang } from '../../../utils';
15
15
  import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
16
16
  import { afterUpdate, getContext, setContext } from 'svelte';
17
17
  import { loadSchemaFromModule } from '../utils';
@@ -22,11 +22,15 @@ import FlowRetries from './FlowRetries.svelte';
22
22
  import { getStepPropPicker } from '../previousResults';
23
23
  import Button from '../../common/button/Button.svelte';
24
24
  import Alert from '../../common/alert/Alert.svelte';
25
+ import FlowModuleSleep from './FlowModuleSleep.svelte';
26
+ import FlowPathViewer from './FlowPathViewer.svelte';
25
27
  const { selectedId, previewArgs } = getContext('FlowEditorContext');
26
28
  export let flowModule;
27
29
  export let failureModule = false;
28
30
  export let parentModule = undefined;
29
31
  export let previousModule;
32
+ let value = flowModule.value;
33
+ $: value = flowModule.value;
30
34
  let editor;
31
35
  let modulePreview;
32
36
  let websocketAlive = { pyright: false, black: false, deno: false, go: false };
@@ -36,18 +40,15 @@ let panes;
36
40
  let totalTopGap = 0;
37
41
  let validCode = true;
38
42
  let width = 1200;
39
- let inputTransforms = flowModule.value.type === 'rawscript' || flowModule.value.type === 'script'
40
- ? flowModule.value.input_transforms
41
- : {};
42
- $: if (flowModule.value.type === 'rawscript' || flowModule.value.type === 'script') {
43
- flowModule.value.input_transforms = inputTransforms;
44
- }
43
+ let inputTransforms = value.input_transforms;
44
+ $: value.input_transforms = inputTransforms;
45
45
  $: stepPropPicker = failureModule
46
46
  ? {
47
47
  pickableProperties: {
48
- flow_input: $flowStateStore.previewArgs,
48
+ flow_input: schemaToObject($flowStore.schema, $previewArgs),
49
49
  priorIds: {},
50
- previousId: undefined
50
+ previousId: undefined,
51
+ hasResume: false
51
52
  },
52
53
  extraLib: ''
53
54
  }
@@ -64,8 +65,7 @@ async function reload(flowModule) {
64
65
  const { input_transforms, schema } = await loadSchemaFromModule(flowModule);
65
66
  validCode = true;
66
67
  setTimeout(() => {
67
- if ((flowModule.value.type == 'script' || flowModule.value.type == 'rawscript') &&
68
- JSON.stringify(flowModule.value.input_transforms) !== JSON.stringify(input_transforms)) {
68
+ if (JSON.stringify(value.input_transforms) !== JSON.stringify(input_transforms)) {
69
69
  inputTransforms = input_transforms;
70
70
  }
71
71
  });
@@ -94,13 +94,14 @@ afterUpdate(() => {
94
94
 
95
95
  <svelte:window on:keydown={onKeyDown} />
96
96
 
97
- {#if flowModule.value.type === 'rawscript' || flowModule.value.type === 'script'}
97
+ {#if value}
98
98
  <div class="h-full" bind:this={wrapper} bind:clientWidth={width}>
99
99
  <FlowCard bind:flowModule>
100
100
  <svelte:fragment slot="header">
101
101
  <FlowModuleHeader
102
102
  bind:module={flowModule}
103
103
  on:toggleSuspend={() => (selected = 'advanced-suspend')}
104
+ on:toggleSleep={() => (selected = 'advanced-sleep')}
104
105
  on:toggleRetry={() => (selected = 'advanced-retries')}
105
106
  on:toggleStopAfterIf={() => (selected = 'advanced-early-stop')}
106
107
  on:fork={async () => {
@@ -120,12 +121,12 @@ afterUpdate(() => {
120
121
  />
121
122
  </svelte:fragment>
122
123
 
123
- {#if flowModule.value.type === 'rawscript'}
124
- <div class="border-b-2 shadow-sm px-1 mb-1">
124
+ {#if value.type === 'rawscript'}
125
+ <div class="border-b-2 shadow-sm px-1">
125
126
  <EditorBar
126
127
  {validCode}
127
128
  {editor}
128
- lang={flowModule.value['language'] ?? 'deno'}
129
+ lang={value['language'] ?? 'deno'}
129
130
  {websocketAlive}
130
131
  iconOnly={width < 768}
131
132
  />
@@ -138,21 +139,21 @@ afterUpdate(() => {
138
139
  style="max-height: calc(100% - {totalTopGap}px) !important;"
139
140
  >
140
141
  <Splitpanes horizontal>
141
- <Pane size={flowModule.value.type === 'script' ? 30 : 50} minSize={20}>
142
- {#if flowModule.value.type === 'rawscript'}
142
+ <Pane size={value.type === 'script' ? 30 : 50} minSize={20}>
143
+ {#if value.type === 'rawscript'}
143
144
  <div class="h-full">
144
145
  <Editor
145
146
  bind:websocketAlive
146
147
  bind:this={editor}
147
148
  class="h-full px-2"
148
- bind:code={flowModule.value.content}
149
- deno={flowModule.value.language === RawScript.language.DENO}
150
- lang={scriptLangToEditorLang(flowModule.value.language)}
149
+ bind:code={value.content}
150
+ deno={value.language === RawScript.language.DENO}
151
+ lang={scriptLangToEditorLang(value.language)}
151
152
  automaticLayout={true}
152
153
  cmdEnterAction={async () => {
153
154
  selected = 'test'
154
- if (flowModule.value.type === 'rawscript') {
155
- flowModule.value.content = editor.getCode()
155
+ if (value.type === 'rawscript') {
156
+ value.content = editor.getCode()
156
157
  }
157
158
  await reload(flowModule)
158
159
  modulePreview?.runTestWithStepArgs()
@@ -163,11 +164,13 @@ afterUpdate(() => {
163
164
  formatAction={() => reload(flowModule)}
164
165
  />
165
166
  </div>
166
- {:else if flowModule.value.type === 'script'}
167
- <FlowModuleScript path={flowModule.value.path} />
167
+ {:else if value.type === 'script'}
168
+ <FlowModuleScript path={value.path} />
169
+ {:else if value.type === 'flow'}
170
+ <FlowPathViewer path={value.path} />
168
171
  {/if}
169
172
  </Pane>
170
- <Pane size={flowModule.value.type === 'script' ? 70 : 50} minSize={20}>
173
+ <Pane size={value.type === 'script' ? 70 : 50} minSize={20}>
171
174
  <Tabs bind:selected>
172
175
  <Tab value="inputs"><span class="font-semibold">Step Input</span></Tab>
173
176
  <Tab value="test"><span class="font-semibold text-md">Test this step</span></Tab>
@@ -176,12 +179,15 @@ afterUpdate(() => {
176
179
  <div class="h-[calc(100%-32px)]">
177
180
  {#if selected === 'inputs'}
178
181
  <div class="h-full overflow-auto">
179
- <PropPickerWrapper pickableProperties={stepPropPicker.pickableProperties}>
182
+ <PropPickerWrapper
183
+ pickableProperties={stepPropPicker.pickableProperties}
184
+ error={failureModule}
185
+ >
180
186
  <SchemaForm
181
187
  schema={$flowStateStore[$selectedId]?.schema ?? {}}
182
188
  inputTransform={true}
183
189
  previousModuleId={previousModule?.id}
184
- bind:args={flowModule.value.input_transforms}
190
+ bind:args={value.input_transforms}
185
191
  bind:extraLib={stepPropPicker.extraLib}
186
192
  />
187
193
  </PropPickerWrapper>
@@ -196,9 +202,10 @@ afterUpdate(() => {
196
202
  <Tabs bind:selected>
197
203
  <Tab value="advanced-retries">Retries</Tab>
198
204
  {#if !$selectedId.includes('failure')}
199
- <Tab value="advanced-early-stop">Early Stop</Tab>
200
- <Tab value="advanced-suspend">Sleep/Suspend</Tab>
201
- <Tab value="advanced-same_worker">Same Worker/Shared dir</Tab>
205
+ <Tab value="advanced-early-stop">Early Stop/Break</Tab>
206
+ <Tab value="advanced-suspend">Suspend</Tab>
207
+ <Tab value="advanced-sleep">Sleep</Tab>
208
+ <Tab value="advanced-same_worker">Shared Directory</Tab>
202
209
  {/if}
203
210
  </Tabs>
204
211
  {#if selected === 'advanced-retries'}
@@ -207,19 +214,23 @@ afterUpdate(() => {
207
214
  <FlowModuleEarlyStop bind:flowModule class="px-4 pb-4 h-full overflow-auto" />
208
215
  {:else if selected === 'advanced-suspend'}
209
216
  <div class="px-4 pb-4 h-full overflow-auto">
210
- <FlowModuleSuspend previousModuleId={previousModule?.id} bind:flowModule />
217
+ <FlowModuleSuspend bind:flowModule />
218
+ </div>
219
+ {:else if selected === 'advanced-sleep'}
220
+ <div class="px-4 pb-4 h-full overflow-auto">
221
+ <FlowModuleSleep previousModuleId={previousModule?.id} bind:flowModule />
211
222
  </div>
212
223
  {:else if selected === 'advanced-same_worker'}
213
224
  <div class="p-4 h-full overflow-auto">
214
- <Alert type="info" title="Share a directory using same worker">
215
- If same worker is set, all steps will be run on the same worker and will share
216
- the folder `./shared` to pass data between each other.
225
+ <Alert type="info" title="Share a directory between steps">
226
+ If shared directory is set, will share a folder that will be mounted on
227
+ `./shared` for each of them to pass data between each other.
217
228
  </Alert>
218
229
  <Button
219
230
  btnClasses="mt-4"
220
231
  on:click={() => {
221
232
  $selectedId = 'settings-same-worker'
222
- }}>Set same worker in the flow settings</Button
233
+ }}>Set shared directory in the flow settings</Button
223
234
  >
224
235
  </div>
225
236
  {/if}
@@ -12,10 +12,11 @@ $: result = $flowStateStore[flowModule.id]?.previewResult ?? NEVER_TESTED_THIS_F
12
12
 
13
13
  <div class="flex flex-col items-start space-y-2 {$$props.class}">
14
14
  <h2 class="mt-2"
15
- >Early stop <Tooltip>
15
+ >Early stop/Break<Tooltip>
16
16
  If defined, at the end of the step, the predicate expression will be evaluated to decide if
17
17
  the flow should stop early. Skipped flows are just a label useful to not see them in the runs
18
- page.</Tooltip
18
+ page. If stop early is run within a forloop, it will just break the for-loop and have it stop
19
+ at that iteration instead of stopping the whole flow.</Tooltip
19
20
  ></h2
20
21
  >
21
22
  <Toggle
@@ -31,7 +32,7 @@ $: result = $flowStateStore[flowModule.id]?.previewResult ?? NEVER_TESTED_THIS_F
31
32
  }
32
33
  }}
33
34
  options={{
34
- right: 'Early stop if condition met'
35
+ right: 'Early stop or Break if condition met'
35
36
  }}
36
37
  />
37
38
 
@@ -1,43 +1,44 @@
1
1
  <script>import Button from '../../common/button/Button.svelte';
2
- import { EDITOR_BAR_WIDTH_THRESHOLD } from '../../EditorBar.svelte';
3
2
  import { classNames } from '../../../utils';
4
- import { faArrowRotateForward, faBed, faCodeBranch, faSave, faStop } from '@fortawesome/free-solid-svg-icons';
3
+ import { faBed, faCodeBranch, faSave, faStop } from '@fortawesome/free-solid-svg-icons';
5
4
  import { createEventDispatcher } from 'svelte';
6
5
  import Icon from 'svelte-awesome';
7
- import { isEmptyFlowModule } from '../utils';
6
+ import { PhoneIncoming, Repeat } from 'lucide-svelte';
8
7
  export let module;
9
8
  const dispatch = createEventDispatcher();
10
9
  let width = 0;
11
- $: shouldPick = isEmptyFlowModule(module);
12
- $: iconOnly = width < EDITOR_BAR_WIDTH_THRESHOLD;
13
10
  $: moduleRetry = module.retry?.constant || module.retry?.exponential;
14
11
  </script>
15
12
 
16
13
  <div class="flex flex-row space-x-2" bind:clientWidth={width}>
17
- {#if !shouldPick}
18
- <span
14
+ {#if module.value.type === 'script' || module.value.type === 'rawscript'}
15
+ <button
19
16
  class={classNames('badge', module.stop_after_if ? 'badge-on' : 'badge-off')}
20
17
  on:click={() => dispatch('toggleStopAfterIf')}
21
18
  >
22
19
  <Icon data={faStop} scale={0.8} />
23
- </span>
24
- <span
25
- class={classNames('badge', moduleRetry ? 'badge-on' : 'badge-off')}
20
+ </button>
21
+ <button
22
+ class={classNames('badge', moduleRetry ? 'badge-on' : 'badge-off', 'center-center')}
26
23
  on:click={() => dispatch('toggleRetry')}
27
24
  >
28
- <Icon data={faArrowRotateForward} scale={0.8} />
29
- </span>
30
- <span
31
- class={classNames(
32
- 'badge',
33
- Boolean(module.suspend) || Boolean(module.sleep) ? 'badge-on' : 'badge-off'
34
- )}
35
- on:click={() => dispatch('toggleSuspend')}
25
+ <Repeat size={14} />
26
+ </button>
27
+ <button
28
+ class={classNames('badge', Boolean(module.sleep) ? 'badge-on' : 'badge-off')}
29
+ on:click={() => dispatch('toggleSleep')}
36
30
  >
37
31
  <Icon data={faBed} scale={0.8} />
38
- </span>
32
+ </button>
33
+ <button
34
+ class={classNames('badge', Boolean(module.suspend) ? 'badge-on' : 'badge-off')}
35
+ on:click={() => dispatch('toggleSuspend')}
36
+ >
37
+ <PhoneIncoming size={14} />
38
+ </button>
39
39
  {/if}
40
- {#if module.value.type === 'script' && !shouldPick}
40
+ {#if module.value.type === 'script'}
41
+ <div class="w-2" />
41
42
  <Button
42
43
  size="xs"
43
44
  color="light"
@@ -50,7 +51,7 @@ $: moduleRetry = module.retry?.constant || module.retry?.exponential;
50
51
  </Button>
51
52
  {/if}
52
53
 
53
- {#if module.value.type === 'rawscript' && !shouldPick}
54
+ {#if module.value.type === 'rawscript'}
54
55
  <Button
55
56
  size="xs"
56
57
  color="light"
@@ -7,6 +7,7 @@ declare const __propDef: {
7
7
  events: {
8
8
  toggleStopAfterIf: CustomEvent<any>;
9
9
  toggleRetry: CustomEvent<any>;
10
+ toggleSleep: CustomEvent<any>;
10
11
  toggleSuspend: CustomEvent<any>;
11
12
  fork: CustomEvent<any>;
12
13
  createScriptFromInlineScript: CustomEvent<any>;
@@ -0,0 +1,69 @@
1
+ <script>import InputTransformForm from '../../InputTransformForm.svelte';
2
+ import Toggle from '../../Toggle.svelte';
3
+ import Tooltip from '../../Tooltip.svelte';
4
+ import { emptySchema } from '../../../utils';
5
+ import { getContext } from 'svelte';
6
+ import { flowStateStore } from '../flowState';
7
+ import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
8
+ export let flowModule;
9
+ export let previousModuleId;
10
+ const { selectedId } = getContext('FlowEditorContext');
11
+ let schema = emptySchema();
12
+ schema.properties['sleep'] = {
13
+ type: 'number',
14
+ description: 'Sleep time in seconds'
15
+ };
16
+ let editor = undefined;
17
+ const result = $flowStateStore[$selectedId]?.previewResult ?? {};
18
+ $: isSleepEnabled = Boolean(flowModule.sleep);
19
+ </script>
20
+
21
+ <h2 class="mt-2"
22
+ >Sleep<Tooltip>
23
+ If defined, at the end of the step, the flow will sleep for a number of seconds before
24
+ scheduling the next job (if any, no effect if the step is the last one). Sleeping is passive and
25
+ does not consume any resources.</Tooltip
26
+ ></h2
27
+ >
28
+ <Toggle
29
+ checked={isSleepEnabled}
30
+ on:change={() => {
31
+ if (isSleepEnabled && flowModule.sleep != undefined) {
32
+ flowModule.sleep = undefined
33
+ } else {
34
+ flowModule.sleep = {
35
+ type: 'static',
36
+ value: 0
37
+ }
38
+ }
39
+ }}
40
+ options={{
41
+ right: 'Sleep after module successful execution'
42
+ }}
43
+ />
44
+ <div>
45
+ <span class="text-xs font-bold">Sleep for duration (seconds)</span>
46
+
47
+ {#if flowModule.sleep && schema.properties['sleep']}
48
+ <div class="border">
49
+ <PropPickerWrapper
50
+ notSelectable
51
+ {result}
52
+ displayContext={false}
53
+ pickableProperties={undefined}
54
+ on:select={({ detail }) => {
55
+ editor?.insertAtCursor(detail)
56
+ }}
57
+ >
58
+ <InputTransformForm
59
+ bind:arg={flowModule.sleep}
60
+ argName="sleep"
61
+ {schema}
62
+ {previousModuleId}
63
+ />
64
+ </PropPickerWrapper>
65
+ </div>
66
+ {:else}
67
+ <input type="number" disabled />
68
+ {/if}
69
+ </div>
@@ -0,0 +1,18 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { FlowModule } from '../../../gen';
3
+ declare const __propDef: {
4
+ props: {
5
+ flowModule: FlowModule;
6
+ previousModuleId: string | undefined;
7
+ };
8
+ events: {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {};
12
+ };
13
+ export type FlowModuleSleepProps = typeof __propDef.props;
14
+ export type FlowModuleSleepEvents = typeof __propDef.events;
15
+ export type FlowModuleSleepSlots = typeof __propDef.slots;
16
+ export default class FlowModuleSleep extends SvelteComponentTyped<FlowModuleSleepProps, FlowModuleSleepEvents, FlowModuleSleepSlots> {
17
+ }
18
+ export {};
@@ -1,29 +1,21 @@
1
- <script>import InputTransformForm from '../../InputTransformForm.svelte';
2
- import Toggle from '../../Toggle.svelte';
1
+ <script>import Toggle from '../../Toggle.svelte';
3
2
  import Tooltip from '../../Tooltip.svelte';
4
3
  import { emptySchema } from '../../../utils';
5
- import { getContext } from 'svelte';
6
- import { flowStateStore } from '../flowState';
7
- import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
8
4
  export let flowModule;
9
- export let previousModuleId;
10
- const { selectedId } = getContext('FlowEditorContext');
11
5
  let schema = emptySchema();
12
6
  schema.properties['sleep'] = {
13
7
  type: 'number',
14
8
  description: 'Sleep time in seconds'
15
9
  };
16
- let editor = undefined;
17
- const result = $flowStateStore[$selectedId]?.previewResult ?? {};
18
10
  $: isSuspendEnabled = Boolean(flowModule.suspend);
19
- $: isSleepEnabled = Boolean(flowModule.sleep);
20
11
  </script>
21
12
 
22
13
  <h2 class="mt-2"
23
14
  >Suspend<Tooltip>
24
15
  If defined, at the end of the step, the flow will be suspended until it receives external
25
16
  requests to be resumed or canceled. This is most useful to implement approval steps but can be
26
- used flexibly for other purpose. To get the resume urls, use `wmill.getResumeEndpoints`.</Tooltip
17
+ used flexibly for other purpose. To get the resume urls, use `wmill.getResumeUrls()` in
18
+ Typescript, or `wmill.get_resume_urls()` in Python.</Tooltip
27
19
  ></h2
28
20
  >
29
21
  <Toggle
@@ -39,11 +31,11 @@ $: isSleepEnabled = Boolean(flowModule.sleep);
39
31
  }
40
32
  }}
41
33
  options={{
42
- right: 'Suspend flow execution until approvals received'
34
+ right: 'Suspend flow execution until events/approvals received'
43
35
  }}
44
36
  />
45
37
  <div class="mb-4">
46
- <span class="text-xs font-bold">Number of approvals required for resuming flow</span>
38
+ <span class="text-xs font-bold">Number of approvals/events required for resuming flow</span>
47
39
 
48
40
  {#if flowModule.suspend}
49
41
  <input bind:value={flowModule.suspend.required_events} type="number" min="1" placeholder="1" />
@@ -59,53 +51,3 @@ $: isSleepEnabled = Boolean(flowModule.sleep);
59
51
  <input type="number" disabled />
60
52
  {/if}
61
53
  </div>
62
-
63
- <h2 class="mt-4"
64
- >Sleep<Tooltip>
65
- If defined, at the end of the step, the flow will sleep for a number of seconds before
66
- scheduling the next job (if any, no effect if the step is the last one). Sleeping is passive and
67
- does not consume any resources.</Tooltip
68
- ></h2
69
- >
70
- <Toggle
71
- checked={isSleepEnabled}
72
- on:change={() => {
73
- if (isSleepEnabled && flowModule.sleep != undefined) {
74
- flowModule.sleep = undefined
75
- } else {
76
- flowModule.sleep = {
77
- type: 'static',
78
- value: 0
79
- }
80
- }
81
- }}
82
- options={{
83
- right: 'Sleep after module successful execution'
84
- }}
85
- />
86
- <div>
87
- <span class="text-xs font-bold">Sleep for duration (seconds)</span>
88
-
89
- {#if flowModule.sleep && schema.properties['sleep']}
90
- <div class="border">
91
- <PropPickerWrapper
92
- notSelectable
93
- {result}
94
- displayContext={false}
95
- pickableProperties={undefined}
96
- on:select={({ detail }) => {
97
- editor?.insertAtCursor(detail)
98
- }}
99
- >
100
- <InputTransformForm
101
- bind:arg={flowModule.sleep}
102
- argName="sleep"
103
- {schema}
104
- {previousModuleId}
105
- />
106
- </PropPickerWrapper>
107
- </div>
108
- {:else}
109
- <input type="number" disabled />
110
- {/if}
111
- </div>
@@ -3,7 +3,6 @@ import type { FlowModule } from '../../../gen';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  flowModule: FlowModule;
6
- previousModuleId: string | undefined;
7
6
  };
8
7
  events: {
9
8
  [evt: string]: CustomEvent<any>;