windmill-components 1.309.7 → 1.352.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 (509) hide show
  1. package/package/assets/app.css +22 -13
  2. package/package/ata/index.js +1 -0
  3. package/package/autosize.js +2 -2
  4. package/package/common.d.ts +14 -2
  5. package/package/common.js +6 -1
  6. package/package/components/AllFlowLogs.svelte +30 -0
  7. package/package/components/AllFlowLogs.svelte.d.ts +18 -0
  8. package/package/components/ApiConnectForm.svelte +10 -4
  9. package/package/components/AppConnectDrawer.svelte +74 -0
  10. package/package/components/AppConnectDrawer.svelte.d.ts +20 -0
  11. package/package/components/AppConnectInner.svelte +507 -0
  12. package/package/components/AppConnectInner.svelte.d.ts +28 -0
  13. package/package/components/ArgEnum.svelte +4 -1
  14. package/package/components/ArgEnum.svelte.d.ts +3 -1
  15. package/package/components/ArgInfo.svelte +19 -3
  16. package/package/components/ArgInput.svelte +222 -122
  17. package/package/components/ArgInput.svelte.d.ts +11 -7
  18. package/package/components/ArrayTypeNarrowing.svelte +29 -27
  19. package/package/components/CenteredPage.svelte +2 -2
  20. package/package/components/ConcurrentJobsChart.svelte +212 -0
  21. package/package/components/ConcurrentJobsChart.svelte.d.ts +23 -0
  22. package/package/components/CustomOauth.svelte +2 -2
  23. package/package/components/DateInput.svelte +47 -0
  24. package/package/components/DateInput.svelte.d.ts +24 -0
  25. package/package/components/DateTimeInput.svelte +25 -3
  26. package/package/components/DefaultScripts.svelte +5 -8
  27. package/package/components/DefaultTags.svelte +3 -2
  28. package/package/components/DefaultTags.svelte.d.ts +3 -1
  29. package/package/components/DefaultTagsInner.svelte +2 -11
  30. package/package/components/DefaultTagsInner.svelte.d.ts +3 -1
  31. package/package/components/Dev.svelte +72 -10
  32. package/package/components/DiffDrawer.svelte +1 -2
  33. package/package/components/DiffEditor.svelte +3 -0
  34. package/package/components/DisplayResult.svelte +467 -344
  35. package/package/components/DisplayResult.svelte.d.ts +1 -0
  36. package/package/components/DropdownV2.svelte.d.ts +2 -2
  37. package/package/components/DurationMs.svelte +11 -3
  38. package/package/components/DurationMs.svelte.d.ts +2 -0
  39. package/package/components/EditableSchemaForm.svelte +447 -100
  40. package/package/components/EditableSchemaForm.svelte.d.ts +16 -6
  41. package/package/components/Editor.svelte +112 -93
  42. package/package/components/Editor.svelte.d.ts +4 -2
  43. package/package/components/EditorBar.svelte +101 -10
  44. package/package/components/EditorBar.svelte.d.ts +0 -1
  45. package/package/components/ErrorOrRecoveryHandler.svelte +0 -1
  46. package/package/components/FlowBuilder.svelte +14 -6
  47. package/package/components/FlowGraphViewer.svelte +2 -1
  48. package/package/components/FlowGraphViewerStep.svelte +56 -10
  49. package/package/components/FlowGraphViewerStep.svelte.d.ts +2 -7
  50. package/package/components/FlowJobResult.svelte +14 -3
  51. package/package/components/FlowJobResult.svelte.d.ts +3 -0
  52. package/package/components/FlowMetadata.svelte +41 -36
  53. package/package/components/FlowMetadata.svelte.d.ts +3 -1
  54. package/package/components/FlowPreviewContent.svelte +18 -9
  55. package/package/components/FlowStatusViewer.svelte +4 -0
  56. package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
  57. package/package/components/FlowStatusViewerInner.svelte +96 -19
  58. package/package/components/FlowStatusViewerInner.svelte.d.ts +3 -0
  59. package/package/components/FlowTimeline.svelte +13 -0
  60. package/package/components/FlowTimeline.svelte.d.ts +2 -0
  61. package/package/components/FlowViewer.svelte +0 -5
  62. package/package/components/FolderEditor.svelte +25 -0
  63. package/package/components/FolderEditor.svelte.d.ts +2 -0
  64. package/package/components/GroupEditor.svelte +36 -91
  65. package/package/components/GroupInfo.svelte +1 -1
  66. package/package/components/HighlightCode.svelte +3 -0
  67. package/package/components/InputTransformForm.svelte +19 -1
  68. package/package/components/InputTransformForm.svelte.d.ts +2 -0
  69. package/package/components/InputTransformSchemaForm.svelte +6 -0
  70. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  71. package/package/components/InstanceSettings.svelte +196 -16
  72. package/package/components/InstanceSettings.svelte.d.ts +4 -0
  73. package/package/components/JobLogs.svelte +12 -0
  74. package/package/components/JobLogs.svelte.d.ts +16 -0
  75. package/package/components/JobStatus.svelte +3 -3
  76. package/package/components/Label.svelte +1 -1
  77. package/package/components/Label.svelte.d.ts +1 -0
  78. package/package/components/LightweightArgInput.svelte +342 -264
  79. package/package/components/LightweightArgInput.svelte.d.ts +6 -2
  80. package/package/components/LightweightResourcePicker.svelte +74 -26
  81. package/package/components/LightweightSchemaForm.svelte +49 -39
  82. package/package/components/LogViewer.svelte +52 -15
  83. package/package/components/LogViewer.svelte.d.ts +1 -0
  84. package/package/components/Login.svelte +288 -0
  85. package/package/components/Login.svelte.d.ts +19 -0
  86. package/package/components/ModulePreviewForm.svelte +4 -0
  87. package/package/components/NoMainFuncBadge.svelte +8 -0
  88. package/package/components/NoMainFuncBadge.svelte.d.ts +14 -0
  89. package/package/components/NumberTypeNarrowing.svelte +71 -44
  90. package/package/components/OauthExtraParams.svelte +1 -1
  91. package/package/components/OauthScopes.svelte +1 -1
  92. package/package/components/ObjectResourceInput.svelte +2 -0
  93. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  94. package/package/components/ObjectStoreConfigSettings.svelte +12 -1
  95. package/package/components/ObjectStoreConfigSettings.svelte.d.ts +1 -0
  96. package/package/components/ObjectTypeNarrowing.svelte +0 -1
  97. package/package/components/ParqetCsvTableRenderer.svelte +181 -0
  98. package/package/components/ParqetCsvTableRenderer.svelte.d.ts +21 -0
  99. package/package/components/Password.svelte +1 -0
  100. package/package/components/Password.svelte.d.ts +2 -0
  101. package/package/components/PasswordArgInput.svelte +49 -0
  102. package/package/components/PasswordArgInput.svelte.d.ts +17 -0
  103. package/package/components/Path.svelte +2 -2
  104. package/package/components/PersistentScriptDrawer.svelte +6 -3
  105. package/package/components/QueueMetricsDrawer.svelte +225 -0
  106. package/package/components/QueueMetricsDrawer.svelte.d.ts +18 -0
  107. package/package/components/Range.svelte +88 -286
  108. package/package/components/Range.svelte.d.ts +9 -23
  109. package/package/components/ResourceEditor.svelte +138 -140
  110. package/package/components/ResourceEditor.svelte.d.ts +9 -2
  111. package/package/components/ResourceEditorDrawer.svelte +45 -0
  112. package/package/components/ResourceEditorDrawer.svelte.d.ts +21 -0
  113. package/package/components/ResourcePicker.svelte +8 -9
  114. package/package/components/ResourceTypePicker.svelte +88 -36
  115. package/package/components/ResultJobLoader.svelte +2 -2
  116. package/package/components/ResultJobLoader.svelte.d.ts +9 -9
  117. package/package/components/RunChart.svelte +55 -5
  118. package/package/components/RunChart.svelte.d.ts +1 -0
  119. package/package/components/RunForm.svelte +1 -1
  120. package/package/components/S3FilePicker.svelte +21 -9
  121. package/package/components/S3FilePicker.svelte.d.ts +2 -0
  122. package/package/components/SavedInputs.svelte +49 -13
  123. package/package/components/ScheduleEditorInner.svelte +294 -264
  124. package/package/components/SchemaForm.svelte +193 -99
  125. package/package/components/SchemaForm.svelte.d.ts +17 -2
  126. package/package/components/ScriptBuilder.svelte +23 -14
  127. package/package/components/ScriptEditor.svelte +1 -2
  128. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  129. package/package/components/ScriptSchedules.svelte +11 -8
  130. package/package/components/ScriptSchema.svelte +3 -21
  131. package/package/components/ScriptVersionHistory.svelte +1 -1
  132. package/package/components/SimpleEditor.svelte +4 -1
  133. package/package/components/StringTypeNarrowing.svelte +229 -167
  134. package/package/components/StringTypeNarrowing.svelte.d.ts +6 -1
  135. package/package/components/TemplateEditor.svelte +1 -0
  136. package/package/components/TestJobLoader.svelte +14 -5
  137. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  138. package/package/components/Toggle.svelte +6 -3
  139. package/package/components/Toggle.svelte.d.ts +1 -0
  140. package/package/components/Tooltip.svelte +8 -2
  141. package/package/components/Tooltip.svelte.d.ts +1 -0
  142. package/package/components/UserSettings.svelte +24 -1
  143. package/package/components/WorkspaceGroup.svelte +84 -21
  144. package/package/components/WorkspaceGroup.svelte.d.ts +1 -0
  145. package/package/components/app_connect.d.ts +7 -0
  146. package/package/components/app_connect.js +78 -0
  147. package/package/components/apps/components/buttons/AppButton.svelte +2 -1
  148. package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
  149. package/package/components/apps/components/display/AppAlert.svelte +1 -1
  150. package/package/components/apps/components/display/AppCustomComponent.svelte +1 -1
  151. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -2
  152. package/package/components/apps/components/display/AppDownload.svelte +1 -1
  153. package/package/components/apps/components/display/AppFlowStatusComponent.svelte +13 -70
  154. package/package/components/apps/components/display/AppFlowStatusComponent.svelte.d.ts +1 -9
  155. package/package/components/apps/components/display/AppIcon.svelte +1 -1
  156. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +23 -10
  157. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte.d.ts +1 -3
  158. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +22 -10
  159. package/package/components/apps/components/display/AppJobIdLogComponent.svelte.d.ts +1 -3
  160. package/package/components/apps/components/display/AppLogsComponent.svelte +13 -70
  161. package/package/components/apps/components/display/AppLogsComponent.svelte.d.ts +1 -9
  162. package/package/components/apps/components/display/AppMap.svelte +3 -2
  163. package/package/components/apps/components/display/AppMenu.svelte +1 -1
  164. package/package/components/apps/components/display/AppPdf.svelte +3 -11
  165. package/package/components/apps/components/display/AppText.svelte +7 -2
  166. package/package/components/apps/components/display/charts/AppAgCharts.svelte +31 -18
  167. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +32 -30
  168. package/package/components/apps/components/display/dbtable/InsertRow.svelte +3 -6
  169. package/package/components/apps/components/display/dbtable/queries/delete.js +1 -1
  170. package/package/components/apps/components/display/dbtable/queries/insert.js +1 -12
  171. package/package/components/apps/components/display/dbtable/queries/select.js +1 -1
  172. package/package/components/apps/components/display/dbtable/queries/update.js +2 -2
  173. package/package/components/apps/components/display/dbtable/utils.d.ts +0 -1
  174. package/package/components/apps/components/display/dbtable/utils.js +0 -83
  175. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +75 -44
  176. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +5 -1
  177. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +172 -0
  178. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +27 -0
  179. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +38 -0
  180. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +28 -0
  181. package/package/components/apps/components/display/table/AppAggridTable.svelte +189 -56
  182. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -1
  183. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +13 -2
  184. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -0
  185. package/package/components/apps/components/display/table/AppCell.svelte +1 -3
  186. package/package/components/apps/components/display/table/AppTable.svelte +320 -281
  187. package/package/components/apps/components/display/table/AppTableFooter.svelte +42 -23
  188. package/package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +2 -2
  189. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +119 -0
  190. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +21 -0
  191. package/package/components/apps/components/display/table/theme/windmill-theme.css +656 -0
  192. package/package/components/apps/components/display/table/utils.js +22 -0
  193. package/package/components/apps/components/helpers/DebouncedInput.svelte +3 -2
  194. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
  195. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +35 -0
  196. package/package/components/apps/components/helpers/RefreshButton.svelte +30 -12
  197. package/package/components/apps/components/helpers/RefreshButton.svelte.d.ts +1 -3
  198. package/package/components/apps/components/helpers/RefreshIndicator.svelte +19 -0
  199. package/package/components/apps/components/helpers/RefreshIndicator.svelte.d.ts +16 -0
  200. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  201. package/package/components/apps/components/helpers/RunnableComponent.svelte +102 -41
  202. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +9 -5
  203. package/package/components/apps/components/helpers/RunnableWrapper.svelte +9 -1
  204. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +6 -0
  205. package/package/components/apps/components/helpers/eval.js +1 -36
  206. package/package/components/apps/components/inputs/AppDateInput.svelte +5 -1
  207. package/package/components/apps/components/inputs/AppFileInput.svelte +13 -2
  208. package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
  209. package/package/components/apps/components/inputs/AppMultiSelect.svelte +56 -50
  210. package/package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +1 -0
  211. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +178 -0
  212. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte.d.ts +24 -0
  213. package/package/components/apps/components/inputs/AppNumberInput.svelte +1 -1
  214. package/package/components/apps/components/inputs/AppQuillEditor.svelte +26 -0
  215. package/package/components/apps/components/inputs/AppRangeInput.svelte +38 -37
  216. package/package/components/apps/components/inputs/AppS3FileInput.svelte +3 -1
  217. package/package/components/apps/components/inputs/AppS3FileInput.svelte.d.ts +1 -0
  218. package/package/components/apps/components/inputs/AppSelect.svelte +21 -10
  219. package/package/components/apps/components/inputs/AppSliderInputs.svelte +26 -31
  220. package/package/components/apps/components/inputs/AppTextInput.svelte +1 -1
  221. package/package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +1 -1
  222. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +10 -3
  223. package/package/components/apps/components/layout/AppConditionalWrapper.svelte.d.ts +1 -0
  224. package/package/components/apps/components/layout/AppContainer.svelte +1 -1
  225. package/package/components/apps/components/layout/AppDecisionTree.svelte +1 -1
  226. package/package/components/apps/components/layout/AppDrawer.svelte +16 -3
  227. package/package/components/apps/components/layout/AppDrawer.svelte.d.ts +2 -0
  228. package/package/components/apps/components/layout/AppModal.svelte +85 -79
  229. package/package/components/apps/components/layout/AppModal.svelte.d.ts +2 -0
  230. package/package/components/apps/components/layout/AppStepper.svelte +7 -2
  231. package/package/components/apps/components/layout/AppStepper.svelte.d.ts +2 -0
  232. package/package/components/apps/components/layout/AppTabs.svelte +4 -2
  233. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  234. package/package/components/apps/editor/AppEditor.svelte +3 -2
  235. package/package/components/apps/editor/AppEditorHeader.svelte +68 -38
  236. package/package/components/apps/editor/AppInputs.svelte +1 -1
  237. package/package/components/apps/editor/AppPreview.svelte +18 -7
  238. package/package/components/apps/editor/ComponentHeader.svelte +37 -1
  239. package/package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -0
  240. package/package/components/apps/editor/GridEditor.svelte +15 -6
  241. package/package/components/apps/editor/GridEditorMenu.svelte +120 -49
  242. package/package/components/apps/editor/GridViewer.svelte +14 -5
  243. package/package/components/apps/editor/GridViewer.svelte.d.ts +5 -1
  244. package/package/components/apps/editor/RecomputeAllComponents.svelte +17 -3
  245. package/package/components/apps/editor/RunnableJobPanel.svelte +9 -5
  246. package/package/components/apps/editor/SettingsPanel.svelte +19 -5
  247. package/package/components/apps/editor/SubGridEditor.svelte +44 -27
  248. package/package/components/apps/editor/appUtils.d.ts +6 -1
  249. package/package/components/apps/editor/appUtils.js +85 -7
  250. package/package/components/apps/editor/component/Component.svelte +86 -18
  251. package/package/components/apps/editor/component/Component.svelte.d.ts +3 -0
  252. package/package/components/apps/editor/component/components.d.ts +285 -23
  253. package/package/components/apps/editor/component/components.js +178 -13
  254. package/package/components/apps/editor/component/default-codes.d.ts +1 -1
  255. package/package/components/apps/editor/component/default-codes.js +241 -9
  256. package/package/components/apps/editor/component/sets.d.ts +3 -0
  257. package/package/components/apps/editor/component/sets.js +12 -2
  258. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +15 -2
  259. package/package/components/apps/editor/componentsPanel/componentControlUtils.js +4 -2
  260. package/package/components/apps/editor/componentsPanel/cssUtils.js +1 -1
  261. package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +5 -0
  262. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +9 -5
  263. package/package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +1 -1
  264. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +46 -6
  265. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +1 -1
  266. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelWithTable.svelte +1 -1
  267. package/package/components/apps/editor/inlineScriptsPanel/utils.js +3 -1
  268. package/package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  269. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +5 -34
  270. package/package/components/apps/editor/settingsPanel/ComponentControl.svelte +1 -1
  271. package/package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +8 -5
  272. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +41 -29
  273. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +61 -0
  274. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte.d.ts +16 -0
  275. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +12 -10
  276. package/package/components/apps/editor/settingsPanel/DeleteComponent.svelte +29 -32
  277. package/package/components/apps/editor/settingsPanel/DeleteComponent.svelte.d.ts +0 -5
  278. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte +33 -0
  279. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte.d.ts +19 -0
  280. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte +103 -0
  281. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte.d.ts +18 -0
  282. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +14 -36
  283. package/package/components/apps/editor/settingsPanel/GridTab.svelte +4 -24
  284. package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte +2 -1
  285. package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte.d.ts +1 -0
  286. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +24 -3
  287. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +32 -2
  288. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  289. package/package/components/apps/editor/settingsPanel/StylePanel.svelte +4 -3
  290. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +0 -2
  291. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +0 -1
  292. package/package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +3 -2
  293. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +8 -1
  294. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +7 -14
  295. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +0 -1
  296. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +4 -4
  297. package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +6 -3
  298. package/package/components/apps/inputType.d.ts +4 -0
  299. package/package/components/apps/rx.d.ts +1 -1
  300. package/package/components/apps/rx.js +7 -0
  301. package/package/components/apps/svelte-grid/Grid.svelte +13 -4
  302. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +2 -1
  303. package/package/components/apps/svelte-grid/types.d.ts +1 -0
  304. package/package/components/apps/svelte-grid/utils/helper.js +1 -0
  305. package/package/components/apps/svelte-grid/utils/overlap.d.ts +3 -0
  306. package/package/components/apps/svelte-grid/utils/overlap.js +21 -0
  307. package/package/components/apps/svelte-select/lib/Select.svelte.d.ts +2 -2
  308. package/package/components/apps/svelte-select/lib/tailwind.css +1 -1
  309. package/package/components/apps/types.d.ts +1 -0
  310. package/package/components/apps/utils.js +13 -3
  311. package/package/components/auditLogs/AuditLogsTable.svelte +5 -2
  312. package/package/components/build_workers.js +1 -0
  313. package/package/components/common/alert/Alert.svelte +17 -17
  314. package/package/components/common/badge/Badge.svelte +6 -3
  315. package/package/components/common/badge/model.d.ts +1 -1
  316. package/package/components/common/button/Button.svelte +22 -14
  317. package/package/components/common/button/ButtonDropdown.svelte +1 -0
  318. package/package/components/common/calendarPicker/CalendarPicker.svelte +2 -0
  319. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -0
  320. package/package/components/common/drawer/ConditionalPortal.svelte +9 -0
  321. package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +18 -0
  322. package/package/components/common/drawer/Disposable.svelte +67 -0
  323. package/package/components/common/drawer/Disposable.svelte.d.ts +37 -0
  324. package/package/components/common/drawer/Drawer.svelte +40 -56
  325. package/package/components/common/drawer/Drawer.svelte.d.ts +2 -1
  326. package/package/components/common/fileDownload/FileDownload.svelte +4 -2
  327. package/package/components/common/fileInput/FileInput.svelte +3 -3
  328. package/package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
  329. package/package/components/common/fileUpload/FileUpload.svelte +5 -4
  330. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  331. package/package/components/common/modal/Modal.svelte +4 -1
  332. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  333. package/package/components/common/popup/Popup.svelte +1 -1
  334. package/package/components/common/table/RowIcon.svelte +4 -4
  335. package/package/components/common/table/ScriptRow.svelte +12 -1
  336. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  337. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -1
  338. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  339. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +45 -0
  340. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +24 -0
  341. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte +79 -0
  342. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte.d.ts +18 -0
  343. package/package/components/copilot/CronGen.svelte +2 -2
  344. package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
  345. package/package/components/copilot/RegexGen.svelte +17 -39
  346. package/package/components/copilot/ScriptGen.svelte +14 -5
  347. package/package/components/copilot/StepInputGen.svelte +2 -1
  348. package/package/components/copilot/StepInputsGen.svelte +2 -1
  349. package/package/components/copilot/completion.js +60 -9
  350. package/package/components/copilot/lib.js +5 -3
  351. package/package/components/copilot/prompts/edit.yaml +24 -0
  352. package/package/components/copilot/prompts/editPrompt.d.ts +3 -0
  353. package/package/components/copilot/prompts/editPrompt.js +3 -0
  354. package/package/components/copilot/prompts/fix.yaml +25 -0
  355. package/package/components/copilot/prompts/fixPrompt.d.ts +3 -0
  356. package/package/components/copilot/prompts/fixPrompt.js +3 -0
  357. package/package/components/copilot/prompts/gen.yaml +20 -0
  358. package/package/components/copilot/prompts/genPrompt.d.ts +3 -0
  359. package/package/components/copilot/prompts/genPrompt.js +3 -0
  360. package/package/components/copilot/utils.d.ts +2 -1
  361. package/package/components/copilot/utils.js +38 -0
  362. package/package/components/details/createAppFromScript.d.ts +26 -0
  363. package/package/components/details/createAppFromScript.js +50 -24
  364. package/package/components/flows/CreateActionsApp.svelte +1 -0
  365. package/package/components/flows/CreateActionsFlow.svelte +1 -0
  366. package/package/components/flows/content/FlowEditorPanel.svelte +16 -2
  367. package/package/components/flows/content/FlowInput.svelte +63 -53
  368. package/package/components/flows/content/FlowInputs.svelte +2 -2
  369. package/package/components/flows/content/FlowModuleComponent.svelte +41 -9
  370. package/package/components/flows/content/FlowModuleScript.svelte +40 -1
  371. package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
  372. package/package/components/flows/content/FlowModuleSuspend.svelte +99 -59
  373. package/package/components/flows/content/FlowModuleWrapper.svelte +16 -1
  374. package/package/components/flows/content/FlowSchedules.svelte +11 -8
  375. package/package/components/flows/content/ScriptEditorDrawer.svelte +6 -6
  376. package/package/components/flows/flowExplorer.js +4 -1
  377. package/package/components/flows/flowStateUtils.js +4 -1
  378. package/package/components/flows/map/FlowConstantsItem.svelte +1 -1
  379. package/package/components/flows/map/FlowErrorHandlerItem.svelte +1 -1
  380. package/package/components/flows/map/FlowModuleSchemaItem.svelte +19 -1
  381. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  382. package/package/components/flows/map/FlowModuleSchemaMap.svelte +6 -1
  383. package/package/components/flows/map/FlowSettingsItem.svelte +1 -1
  384. package/package/components/flows/map/MapItem.svelte +2 -0
  385. package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
  386. package/package/components/flows/types.d.ts +4 -0
  387. package/package/components/flows/utils.d.ts +5 -1
  388. package/package/components/flows/utils.js +36 -0
  389. package/package/components/graph/FlowGraph.svelte +6 -2
  390. package/package/components/graph/FlowGraph.svelte.d.ts +2 -0
  391. package/package/components/graph/svelvet/container/models/index.d.ts +0 -5
  392. package/package/components/graph/svelvet/container/models/index.js +1 -1
  393. package/package/components/graph/svelvet/container/views/Svelvet.svelte +2 -5
  394. package/package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +41 -16
  395. package/package/components/graph/util.d.ts +1 -37
  396. package/package/components/graph/util.js +0 -34
  397. package/package/components/home/ItemsList.svelte +44 -9
  398. package/package/components/home/TreeView.svelte +2 -0
  399. package/package/components/icons/AzureIcon.svelte +25 -1
  400. package/package/components/icons/PHPIcon.svelte +117 -0
  401. package/package/components/icons/PHPIcon.svelte.d.ts +17 -0
  402. package/package/components/instanceSettings.d.ts +1 -1
  403. package/package/components/instanceSettings.js +20 -3
  404. package/package/components/jobs/JobPreview.svelte +6 -1
  405. package/package/components/multiselect/MultiSelect.svelte +783 -0
  406. package/package/components/multiselect/MultiSelect.svelte.d.ts +98 -0
  407. package/package/components/multiselect/MultiSelectWrapper.svelte +89 -0
  408. package/package/components/multiselect/MultiSelectWrapper.svelte.d.ts +20 -0
  409. package/package/components/multiselect/types.d.ts +56 -0
  410. package/package/components/multiselect/types.js +1 -0
  411. package/package/components/multiselect/utils.d.ts +7 -0
  412. package/package/components/multiselect/utils.js +54 -0
  413. package/package/components/propertyPicker/ObjectViewer.svelte +19 -2
  414. package/package/components/runs/JobLoader.svelte +135 -17
  415. package/package/components/runs/JobLoader.svelte.d.ts +7 -2
  416. package/package/components/runs/JobPreview.svelte +44 -4
  417. package/package/components/runs/JobPreview.svelte.d.ts +2 -0
  418. package/package/components/runs/RunRow.svelte +99 -33
  419. package/package/components/runs/RunRow.svelte.d.ts +5 -1
  420. package/package/components/runs/RunsFilter.svelte +125 -9
  421. package/package/components/runs/RunsFilter.svelte.d.ts +4 -2
  422. package/package/components/runs/RunsTable.svelte +71 -10
  423. package/package/components/runs/RunsTable.svelte.d.ts +8 -1
  424. package/package/components/schema/AddProperty.svelte +149 -0
  425. package/package/components/schema/AddProperty.svelte.d.ts +23 -0
  426. package/package/components/schema/AddPropertyForm.svelte +33 -0
  427. package/package/components/schema/AddPropertyForm.svelte.d.ts +16 -0
  428. package/package/components/schema/EditableSchemaDrawer.svelte +198 -0
  429. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +21 -0
  430. package/package/components/schema/EditableSchemaWrapper.svelte +31 -0
  431. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +22 -0
  432. package/package/components/schema/FlowPropertyEditor.svelte +393 -0
  433. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +47 -0
  434. package/package/components/schema/PropertyEditor.svelte +185 -0
  435. package/package/components/schema/PropertyEditor.svelte.d.ts +46 -0
  436. package/package/components/schema/SchemaFormDND.svelte +75 -0
  437. package/package/components/schema/SchemaFormDND.svelte.d.ts +28 -0
  438. package/package/components/scriptEditor/LogPanel.svelte +46 -33
  439. package/package/components/scriptEditor/LogPanel.svelte.d.ts +1 -0
  440. package/package/components/scripts/CreateActionsScript.svelte +1 -1
  441. package/package/components/settings/WorkspaceUserSettings.svelte +246 -226
  442. package/package/components/sidebar/MenuButton.svelte +1 -1
  443. package/package/components/sidebar/MenuLink.svelte +1 -1
  444. package/package/components/sidebar/changelogs.js +40 -0
  445. package/package/components/table/AutoDataTable.svelte +124 -163
  446. package/package/components/table/Cell.svelte +4 -1
  447. package/package/components/table/Cell.svelte.d.ts +1 -0
  448. package/package/components/table/DataTable.svelte +13 -5
  449. package/package/components/table/DataTable.svelte.d.ts +1 -0
  450. package/package/components/table/DownloadCsv.svelte +30 -0
  451. package/package/components/table/DownloadCsv.svelte.d.ts +17 -0
  452. package/package/components/table/tableUtils.d.ts +8 -0
  453. package/package/components/table/tableUtils.js +37 -0
  454. package/package/components/vscode.js +1 -1
  455. package/package/components/wizards/AgGridWizard.svelte +27 -2
  456. package/package/components/wizards/AgGridWizard.svelte.d.ts +1 -0
  457. package/package/consts.js +7 -1
  458. package/package/defaults.d.ts +2 -2
  459. package/package/defaults.js +2 -2
  460. package/package/deno_fetch.d.ts.txt +36 -0
  461. package/package/editorUtils.js +2 -0
  462. package/package/gen/core/OpenAPI.js +5 -6
  463. package/package/gen/core/request.js +4 -1
  464. package/package/gen/index.d.ts +0 -1
  465. package/package/gen/index.js +0 -1
  466. package/package/gen/schemas.gen.d.ts +173 -428
  467. package/package/gen/schemas.gen.js +173 -433
  468. package/package/gen/services.gen.d.ts +3182 -1840
  469. package/package/gen/services.gen.js +3652 -2368
  470. package/package/gen/types.gen.d.ts +5445 -1529
  471. package/package/infer.d.ts +1 -1
  472. package/package/infer.js +6 -2
  473. package/package/inferArgSig.d.ts +10 -0
  474. package/package/inferArgSig.js +64 -4
  475. package/package/init_scripts/python_init_code.d.ts +1 -1
  476. package/package/init_scripts/python_init_code.js +1 -1
  477. package/package/process.d.ts.txt +1770 -0
  478. package/package/script_helpers.d.ts +3 -2
  479. package/package/script_helpers.js +28 -3
  480. package/package/scripts.d.ts +3 -1
  481. package/package/scripts.js +10 -3
  482. package/package/utils.d.ts +5 -1
  483. package/package/utils.js +53 -5
  484. package/package/windmill_fetch.d.ts.txt +16966 -0
  485. package/package/workspace_settings.d.ts +15 -0
  486. package/package/workspace_settings.js +81 -0
  487. package/package/zIndexes.d.ts +12 -0
  488. package/package/zIndexes.js +12 -0
  489. package/package.json +19 -10
  490. package/package/components/AppConnect.svelte +0 -566
  491. package/package/components/AppConnect.svelte.d.ts +0 -23
  492. package/package/components/ContextMenu.svelte +0 -89
  493. package/package/components/ContextMenu.svelte.d.ts +0 -28
  494. package/package/components/ParqetTableRenderer.svelte +0 -121
  495. package/package/components/ParqetTableRenderer.svelte.d.ts +0 -18
  496. package/package/components/PropertyRow.svelte +0 -80
  497. package/package/components/PropertyRow.svelte.d.ts +0 -23
  498. package/package/components/SchemaEditor.svelte +0 -344
  499. package/package/components/SchemaEditor.svelte.d.ts +0 -23
  500. package/package/components/SchemaModal.svelte +0 -350
  501. package/package/components/SchemaModal.svelte.d.ts +0 -31
  502. package/package/components/apps/components/display/index.d.ts +0 -17
  503. package/package/components/apps/components/display/index.js +0 -17
  504. package/package/components/apps/components/helpers/index.d.ts +0 -10
  505. package/package/components/apps/components/helpers/index.js +0 -10
  506. package/package/components/apps/components/index.d.ts +0 -5
  507. package/package/components/apps/components/index.js +0 -5
  508. package/package/components/apps/editor/settingsPanel/Recompute.svelte +0 -55
  509. package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +0 -20
@@ -39,7 +39,8 @@ import Label from '../../Label.svelte';
39
39
  import { enterpriseLicense } from '../../../stores';
40
40
  import { isCloudHosted } from '../../../cloud';
41
41
  import { loadSchemaFromModule } from '../flowInfers';
42
- const { selectedId, previewArgs, flowStateStore, flowStore, pathStore, saveDraft } = getContext('FlowEditorContext');
42
+ import { initRequiredInputFilled, setRequiredInputFilled } from '../utils';
43
+ const { selectedId, previewArgs, flowStateStore, flowStore, pathStore, saveDraft, flowInputsStore } = getContext('FlowEditorContext');
43
44
  export let flowModule;
44
45
  export let failureModule = false;
45
46
  export let parentModule = undefined;
@@ -53,7 +54,6 @@ let diffEditor;
53
54
  let modulePreview;
54
55
  let websocketAlive = {
55
56
  pyright: false,
56
- black: false,
57
57
  deno: false,
58
58
  go: false,
59
59
  ruff: false,
@@ -111,6 +111,11 @@ async function reload(flowModule) {
111
111
  validCode = true;
112
112
  if (inputTransformSchemaForm) {
113
113
  inputTransformSchemaForm.setArgs(input_transforms);
114
+ if (!deepEqual(schema, $flowStateStore[flowModule.id]?.schema)) {
115
+ $flowInputsStore[flowModule?.id] = {
116
+ requiredInputsFilled: initRequiredInputFilled(flowModule.value, schema ?? {})
117
+ };
118
+ }
114
119
  }
115
120
  else {
116
121
  if (flowModule.value.type == 'rawscript' ||
@@ -151,6 +156,15 @@ afterUpdate(() => {
151
156
  let forceReload = 0;
152
157
  let editorPanelSize = noEditor ? 0 : flowModule.value.type == 'script' ? 30 : 50;
153
158
  let editorSettingsPanelSize = 100 - editorPanelSize;
159
+ function setFlowInput(argName) {
160
+ if ($flowInputsStore && $flowInputsStore?.[flowModule.id] === undefined) {
161
+ $flowInputsStore[flowModule.id] = {};
162
+ }
163
+ if ($flowInputsStore) {
164
+ const requiredInputsFilled = setRequiredInputFilled(argName, flowModule.value, $flowInputsStore[flowModule.id].requiredInputsFilled ?? {}, $flowStateStore[$selectedId]?.schema);
165
+ $flowInputsStore[flowModule.id].requiredInputsFilled = requiredInputsFilled;
166
+ }
167
+ }
154
168
  </script>
155
169
 
156
170
  <svelte:window on:keydown={onKeyDown} />
@@ -235,7 +249,7 @@ let editorSettingsPanelSize = 100 - editorPanelSize;
235
249
  {#key flowModule.id}
236
250
  <Editor
237
251
  folding
238
- path={flowModule.value.path}
252
+ path={$pathStore + '/' + flowModule.id}
239
253
  bind:websocketAlive
240
254
  bind:this={editor}
241
255
  class="h-full relative"
@@ -284,7 +298,11 @@ let editorSettingsPanelSize = 100 - editorPanelSize;
284
298
  {#if !noEditor}
285
299
  <div class="border-t">
286
300
  {#key forceReload}
287
- <FlowModuleScript path={flowModule.value.path} hash={flowModule.value.hash} />
301
+ <FlowModuleScript
302
+ showAllCode={false}
303
+ path={flowModule.value.path}
304
+ hash={flowModule.value.hash}
305
+ />
288
306
  {/key}
289
307
  </div>
290
308
  {/if}
@@ -315,6 +333,10 @@ let editorSettingsPanelSize = 100 - editorPanelSize;
315
333
  bind:args={flowModule.value.input_transforms}
316
334
  extraLib={stepPropPicker.extraLib}
317
335
  {enableAi}
336
+ on:changeArg={(e) => {
337
+ const { argName } = e.detail
338
+ setFlowInput(argName)
339
+ }}
318
340
  />
319
341
  </PropPickerWrapper>
320
342
  </div>
@@ -416,11 +438,21 @@ let editorSettingsPanelSize = 100 - editorPanelSize;
416
438
  bind:seconds={flowModule.value.concurrency_time_window_s}
417
439
  />
418
440
  </Label>
419
- <Label label="Custom concurrency key">
420
- <div class="text-tertiary text-xs"
421
- >Custom concurrency keys can only be set as the setting of a workspace
422
- script</div
423
- >
441
+ <Label label="Custom concurrency key (optional)">
442
+ <svelte:fragment slot="header">
443
+ <Tooltip>
444
+ Concurrency keys are global, you can have them be workspace specific
445
+ using the variable `$workspace`. You can also use an argument's value
446
+ using `$args[name_of_arg]`</Tooltip
447
+ >
448
+ </svelte:fragment>
449
+ <input
450
+ type="text"
451
+ autofocus
452
+ disabled={!$enterpriseLicense}
453
+ bind:value={flowModule.value.custom_concurrency_key}
454
+ placeholder={`$workspace/script/${$pathStore}-$args[foo]`}
455
+ />
424
456
  </Label>
425
457
  {:else}
426
458
  <Alert type="warning" title="Limitation" size="xs">
@@ -1,11 +1,16 @@
1
1
  <script>import HighlightCode from '../../HighlightCode.svelte';
2
+ import TimeAgo from '../../TimeAgo.svelte';
2
3
  import { ScriptService } from '../../../gen';
3
4
  import { getScriptByPath } from '../../../scripts';
4
5
  import { workspaceStore } from '../../../stores';
5
6
  export let path;
6
7
  export let hash = undefined;
8
+ export let showDate = false;
9
+ export let showAllCode = true;
7
10
  let code;
8
11
  let language;
12
+ let lock = undefined;
13
+ let date = undefined;
9
14
  let notFound = false;
10
15
  async function loadCode(path, hash) {
11
16
  try {
@@ -15,6 +20,8 @@ async function loadCode(path, hash) {
15
20
  : await getScriptByPath(path);
16
21
  code = script.content;
17
22
  language = script.language;
23
+ lock = script.lock;
24
+ date = script.created_at;
18
25
  }
19
26
  catch (e) {
20
27
  notFound = true;
@@ -22,12 +29,44 @@ async function loadCode(path, hash) {
22
29
  }
23
30
  }
24
31
  $: path && loadCode(path, hash);
32
+ function toggleShowAll() {
33
+ showAllCode = !showAllCode;
34
+ }
25
35
  </script>
26
36
 
27
37
  <div class="flex flex-col flex-1 h-full overflow-auto p-2">
38
+ {#if showDate && date}
39
+ <span class="text-xs text-tertiary mb-4"><TimeAgo {date} /></span>
40
+ {/if}
28
41
  {#if notFound}
29
42
  <div class="text-red-400">script not found at {path} in workspace {$workspaceStore}</div>
30
- {:else}
43
+ {:else if showAllCode}
31
44
  <HighlightCode {language} {code} />
45
+ {:else}
46
+ <div class="code-container h-full">
47
+ <HighlightCode {language} code={code?.split('\n').slice(0, 10).join('\n')} />
48
+ </div>
49
+ <button on:click={toggleShowAll}>Show all</button>
50
+ {/if}
51
+
52
+ {#if lock}
53
+ <h3 class="mb-2 mt-6">Lock</h3>
54
+ <pre class="bg-surface-secondary text-xs p-2 overflow-auto w-full">{lock}</pre>
32
55
  {/if}
33
56
  </div>
57
+
58
+ <style>
59
+ .code-container {
60
+ position: relative;
61
+ overflow: hidden;
62
+ }
63
+ .code-container::after {
64
+ content: '';
65
+ position: absolute;
66
+ bottom: 0;
67
+ left: 0;
68
+ right: 0;
69
+ height: 100px;
70
+ background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgb(var(--color-surface)));
71
+ pointer-events: none;
72
+ }</style>
@@ -3,6 +3,8 @@ declare const __propDef: {
3
3
  props: {
4
4
  path: string;
5
5
  hash?: string | undefined;
6
+ showDate?: boolean | undefined;
7
+ showAllCode?: boolean | undefined;
6
8
  };
7
9
  events: {
8
10
  [evt: string]: CustomEvent<any>;
@@ -1,8 +1,7 @@
1
- <script>import SchemaEditor from '../../SchemaEditor.svelte';
2
- import Toggle from '../../Toggle.svelte';
1
+ <script>import Toggle from '../../Toggle.svelte';
3
2
  import Tooltip from '../../Tooltip.svelte';
4
3
  import InputTransformForm from '../../InputTransformForm.svelte';
5
- import { getContext } from 'svelte';
4
+ import { getContext, tick } from 'svelte';
6
5
  import { Alert, Tab, Tabs } from '../../common';
7
6
  import { GroupService } from '../../../gen';
8
7
  import { emptySchema, emptyString } from '../../../utils';
@@ -12,6 +11,8 @@ import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
12
11
  import Section from '../../Section.svelte';
13
12
  import Label from '../../Label.svelte';
14
13
  import SuspendDrawer from './SuspendDrawer.svelte';
14
+ import EditableSchemaDrawer from '../../schema/EditableSchemaDrawer.svelte';
15
+ import AddProperty from '../../schema/AddProperty.svelte';
15
16
  const { selectedId, flowStateStore } = getContext('FlowEditorContext');
16
17
  const result = $flowStateStore[$selectedId]?.previewResult ?? {};
17
18
  let editor = undefined;
@@ -36,39 +37,40 @@ $: {
36
37
  loadGroups();
37
38
  }
38
39
  }
40
+ let jsonView = false;
39
41
  </script>
40
42
 
41
43
  <Section label="Suspend/Approval/Prompt" class="w-full">
44
+ <svelte:fragment slot="action">
45
+ <SuspendDrawer text="Approval/Prompt helpers" />
46
+ </svelte:fragment>
42
47
  <svelte:fragment slot="header">
43
- <Tooltip documentationLink="https://www.windmill.dev/docs/flows/flow_approval">
44
- If defined, at the end of the step, the flow will be suspended until it receives external
45
- requests to be resumed or canceled. This is most useful to implement approval steps but can be
46
- used flexibly for other purposes.
47
- </Tooltip>
48
- <div class="ml-4">
49
- <div class="flex">
50
- <SuspendDrawer text="Approval/Prompt helpers" />
51
- </div>
48
+ <div class="flex flex-row items-center gap-2">
49
+ <Tooltip documentationLink="https://www.windmill.dev/docs/flows/flow_approval">
50
+ If defined, at the end of the step, the flow will be suspended until it receives external
51
+ requests to be resumed or canceled. This is most useful to implement approval steps but can
52
+ be used flexibly for other purposes.
53
+ </Tooltip>
54
+ <Toggle
55
+ size="xs"
56
+ checked={isSuspendEnabled}
57
+ on:change={() => {
58
+ if (isSuspendEnabled && flowModule.suspend != undefined) {
59
+ flowModule.suspend = undefined
60
+ } else {
61
+ flowModule.suspend = {
62
+ required_events: 1,
63
+ timeout: 1800
64
+ }
65
+ }
66
+ }}
67
+ options={{
68
+ right: 'Suspend flow execution until events/approvals received'
69
+ }}
70
+ />
52
71
  </div>
53
72
  </svelte:fragment>
54
73
 
55
- <Toggle
56
- checked={isSuspendEnabled}
57
- on:change={() => {
58
- if (isSuspendEnabled && flowModule.suspend != undefined) {
59
- flowModule.suspend = undefined
60
- } else {
61
- flowModule.suspend = {
62
- required_events: 1,
63
- timeout: 1800
64
- }
65
- }
66
- }}
67
- options={{
68
- right: 'Suspend flow execution until events/approvals received'
69
- }}
70
- />
71
-
72
74
  <div class="overflow-x-auto scrollbar-hidden">
73
75
  <Tabs bind:selected={suspendTabSelected}>
74
76
  <Tab size="xs" value="core" disabled={!isSuspendEnabled}>
@@ -179,46 +181,84 @@ $: {
179
181
  {/if}
180
182
  </div>
181
183
  {:else}
182
- <div class="flex flex-col mt-4 gap-4">
183
- {#if flowModule.suspend}
184
- {#if emptyString($enterpriseLicense)}
185
- <Alert type="warning" title="Adding a form to the approval page is an EE feature" />
186
- {/if}
184
+ <div class="grid grid-cols-4 mt-4 gap-8">
185
+ <div class="col-span-2">
186
+ {#if flowModule?.suspend?.resume_form}
187
+ <EditableSchemaDrawer
188
+ bind:schema={flowModule.suspend.resume_form.schema}
189
+ on:change={(e) => {
190
+ const schema = e.detail
187
191
 
188
- <div class="flex gap-4">
189
- <Toggle
190
- checked={Boolean(flowModule.suspend.resume_form)}
191
- options={{
192
- right: 'Add a form to the approval page'
192
+ // If the schema is empty, remove the form
193
+ if (Object.keys(schema?.properties ?? {}).length === 0) {
194
+ tick().then(() => {
195
+ if (!flowModule.suspend) return
196
+ flowModule.suspend.resume_form = undefined
197
+ })
198
+ }
193
199
  }}
194
- disabled={emptyString($enterpriseLicense)}
195
- on:change={(e) => {
196
- if (flowModule.suspend) {
197
- if (e.detail) {
200
+ {jsonView}
201
+ />
202
+ {:else if emptyString($enterpriseLicense)}
203
+ <Alert type="warning" title="Adding a form to the approval page is an EE feature" />
204
+ {:else}
205
+ <div class="flex flex-col items-end mb-2 w-full">
206
+ <Toggle
207
+ checked={false}
208
+ label="JSON View"
209
+ size="xs"
210
+ options={{
211
+ right: 'JSON Editor',
212
+ rightTooltip:
213
+ 'Arguments can be edited either using the wizard, or by editing their JSON Schema.'
214
+ }}
215
+ lightMode
216
+ on:change={() => {
217
+ if (flowModule.suspend) {
198
218
  flowModule.suspend.resume_form = {
199
219
  schema: emptySchema()
200
220
  }
201
- } else {
202
- flowModule.suspend.resume_form = undefined
221
+ }
222
+ jsonView = true
223
+ }}
224
+ />
225
+ </div>
226
+ <AddProperty
227
+ on:change={(e) => {
228
+ jsonView = false
229
+ if (flowModule.suspend) {
230
+ flowModule.suspend.resume_form = {
231
+ schema: e.detail
203
232
  }
204
233
  }
205
234
  }}
235
+ schema={{}}
206
236
  />
207
- <div class="flex">
208
- <SuspendDrawer text="Default args & Dynamic enums help" />
237
+ {/if}
238
+ </div>
239
+ <div class="col-span-2 flex flex-col gap-4">
240
+ {#if flowModule.suspend}
241
+ {#if emptyString($enterpriseLicense)}
242
+ <Alert type="warning" title="Adding a form to the approval page is an EE feature" />
243
+ {/if}
244
+
245
+ <div class="flex flex-col gap-2">
246
+ <div class="flex">
247
+ <SuspendDrawer text="Default args & Dynamic enums help" />
248
+ </div>
209
249
  </div>
210
- </div>
211
- {/if}
212
- {#if flowModule.suspend?.resume_form}
213
- <Toggle
214
- bind:checked={flowModule.suspend.hide_cancel}
215
- size="xs"
216
- options={{
217
- right: 'Hide cancel button on approval page'
218
- }}
219
- />
220
- <SchemaEditor bind:schema={flowModule.suspend.resume_form.schema} />
221
- {/if}
250
+ {/if}
251
+ {#if flowModule.suspend}
252
+ <Toggle
253
+ bind:checked={flowModule.suspend.hide_cancel}
254
+ size="xs"
255
+ options={{
256
+ right: 'Hide cancel button on approval page'
257
+ }}
258
+ disabled={!Boolean(flowModule?.suspend?.resume_form)}
259
+ />
260
+ {/if}
261
+ </div>
222
262
  </div>
223
263
  {/if}
224
264
  </Section>
@@ -11,10 +11,11 @@ import FlowInputsFlow from './FlowInputsFlow.svelte';
11
11
  import FlowBranchesAllWrapper from './FlowBranchesAllWrapper.svelte';
12
12
  import FlowBranchesOneWrapper from './FlowBranchesOneWrapper.svelte';
13
13
  import FlowWhileLoop from './FlowWhileLoop.svelte';
14
+ import { initRequiredInputFilled } from '../utils';
14
15
  export let flowModule;
15
16
  export let noEditor = false;
16
17
  export let enableAi = false;
17
- const { selectedId, schedule, flowStateStore } = getContext('FlowEditorContext');
18
+ const { selectedId, schedule, flowStateStore, flowInputsStore } = getContext('FlowEditorContext');
18
19
  let scriptKind = 'script';
19
20
  let scriptTemplate = 'script';
20
21
  // These pointers are used to easily access previewArgs of parent module, and previous module
@@ -39,6 +40,11 @@ async function createModuleFromScript(path, summary, kind, hash) {
39
40
  }
40
41
  flowModule = module;
41
42
  $flowStateStore[module.id] = state;
43
+ if ($flowInputsStore) {
44
+ $flowInputsStore[module?.id] = {
45
+ requiredInputsFilled: initRequiredInputFilled(module?.value, $flowStateStore[module?.id]?.schema)
46
+ };
47
+ }
42
48
  }
43
49
  </script>
44
50
 
@@ -112,6 +118,15 @@ async function createModuleFromScript(path, summary, kind, hash) {
112
118
 
113
119
  flowModule = module
114
120
  $flowStateStore[module.id] = state
121
+
122
+ if ($flowInputsStore) {
123
+ $flowInputsStore[module.id] = {
124
+ requiredInputsFilled: initRequiredInputFilled(
125
+ module.value,
126
+ $flowStateStore[module.id].schema
127
+ )
128
+ }
129
+ }
115
130
  }}
116
131
  failureModule={$selectedId === 'failure'}
117
132
  />
@@ -8,6 +8,7 @@ import ScheduleEditor from '../../ScheduleEditor.svelte';
8
8
  import { ScheduleService } from '../../../gen';
9
9
  import { workspaceStore } from '../../../stores';
10
10
  import { Calendar } from 'lucide-svelte';
11
+ import Label from '../../Label.svelte';
11
12
  const { schedule, flowStore, initialPath } = getContext('FlowEditorContext');
12
13
  let schedules = undefined;
13
14
  async function loadSchedules() {
@@ -26,15 +27,17 @@ let scheduleEditor;
26
27
  $: initialPath && loadSchedules();
27
28
  </script>
28
29
 
29
- <div class="w-full py-2">
30
+ <div class="w-full flex flex-col gap-4 mb-4">
30
31
  <!-- svelte-ignore a11y-autofocus -->
31
- <input
32
- autofocus
33
- type="text"
34
- placeholder="Schedule summary"
35
- class="text-sm w-full font-semibold mb-4"
36
- bind:value={$schedule.summary}
37
- />
32
+ <Label label="Summary">
33
+ <input
34
+ autofocus
35
+ type="text"
36
+ placeholder="Short summary to be displayed when listed"
37
+ class="text-sm w-full"
38
+ bind:value={$schedule.summary}
39
+ />
40
+ </Label>
38
41
  </div>
39
42
 
40
43
  <CronInput bind:schedule={$schedule.cron} bind:timezone={$schedule.timezone} />
@@ -7,7 +7,6 @@ import { inferArgs } from '../../../infer';
7
7
  import { workspaceStore } from '../../../stores';
8
8
  import { Loader2, Save, DiffIcon } from 'lucide-svelte';
9
9
  import { cleanValueProperties, emptySchema, orderedJsonStringify, sendUserToast } from '../../../utils';
10
- import { cloneDeep } from 'lodash';
11
10
  import { createEventDispatcher } from 'svelte';
12
11
  import { fade } from 'svelte/transition';
13
12
  let scriptEditorDrawer;
@@ -19,7 +18,7 @@ export async function openDrawer(hash, cb) {
19
18
  workspace: $workspaceStore,
20
19
  hash
21
20
  });
22
- savedScript = cloneDeep(script);
21
+ savedScript = structuredClone(script);
23
22
  callback = cb;
24
23
  }
25
24
  let callback = undefined;
@@ -30,10 +29,11 @@ async function saveScript() {
30
29
  try {
31
30
  script.schema = script.schema ?? emptySchema();
32
31
  try {
33
- await inferArgs(script.language, script.content, script.schema);
32
+ const noMainFunc = await inferArgs(script.language, script.content, script.schema);
33
+ script.no_main_func = noMainFunc || undefined;
34
34
  }
35
35
  catch (error) {
36
- sendUserToast(`Impossible to infer the schema. Assuming this is a script without main function`, true);
36
+ sendUserToast(`Could not parse code, are you sure it is valid?`, true);
37
37
  }
38
38
  await ScriptService.createScript({
39
39
  workspace: $workspaceStore,
@@ -47,7 +47,7 @@ async function saveScript() {
47
47
  lock: undefined
48
48
  }
49
49
  });
50
- savedScript = cloneDeep(script);
50
+ savedScript = structuredClone(script);
51
51
  callback?.();
52
52
  }
53
53
  catch (error) {
@@ -185,7 +185,7 @@ async function checkForUnsavedChanges() {
185
185
  button: {
186
186
  text: 'Restore to saved',
187
187
  onClick: () => {
188
- script = cloneDeep(savedScript)
188
+ script = structuredClone(savedScript)
189
189
  diffDrawer.closeDrawer()
190
190
  }
191
191
  }
@@ -49,7 +49,10 @@ function filterDependentComponents(modules, id) {
49
49
  : Object.fromEntries(modules
50
50
  .map((mod) => [
51
51
  mod.id,
52
- getModuleExprs(mod).filter((expr) => expr.includes(`results.${id}`))
52
+ getModuleExprs(mod).filter((expr) => {
53
+ const pattern = new RegExp(`\\bresults\\.${id}(?:\\b|\\.)`);
54
+ return pattern.test(expr);
55
+ })
53
56
  ])
54
57
  .filter((x) => x[1].length > 0));
55
58
  }
@@ -16,7 +16,10 @@ export async function loadFlowModuleState(flowModule) {
16
16
  flowModule.value.type == 'flow') {
17
17
  flowModule.value.input_transforms = input_transforms;
18
18
  }
19
- return { schema, previewResult: NEVER_TESTED_THIS_FAR };
19
+ return {
20
+ schema,
21
+ previewResult: NEVER_TESTED_THIS_FAR
22
+ };
20
23
  }
21
24
  catch (e) {
22
25
  console.debug(e);
@@ -2,7 +2,7 @@
2
2
  import { classNames } from '../../../utils';
3
3
  import { DollarSign } from 'lucide-svelte';
4
4
  const { selectedId } = getContext('FlowEditorContext');
5
- $: settingsClass = classNames('border w-full rounded-sm p-2 bg-surface text-sm cursor-pointer flex items-center', $selectedId == 'constants' ? 'outline outline-offset-1 outline-2 outline-slate-900' : '');
5
+ $: settingsClass = classNames('border w-full rounded-sm p-2 bg-surface text-sm cursor-pointer flex items-center', $selectedId == 'constants' ? 'outline outline-offset-1 outline-2 outline-slate-900 dark:bg-white/5 dark:outline-slate-800/60 dark:border-gray-400' : '');
6
6
  </script>
7
7
 
8
8
  <button on:click={() => ($selectedId = 'constants')} class={settingsClass}>
@@ -44,7 +44,7 @@ const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotCon
44
44
  'z-10',
45
45
  $copilotCurrentStepStore !== undefined ? 'border-gray-500/75' : 'cursor-pointer',
46
46
  'border transition-colors duration-[400ms] ease-linear rounded-sm px-2 py-1 bg-surface text-sm flex justify-between items-center flex-row overflow-x-hidden relative',
47
- $selectedId?.includes('failure') ? 'outline outline-offset-1 outline-2 outline-slate-900' : ''
47
+ $selectedId?.includes('failure') ? 'outline outline-offset-1 outline-2 outline-slate-900 dark:outline-slate-900/0 dark:bg-surface-secondary dark:border-gray-400' : ''
48
48
  )}
49
49
  style={small ? 'min-width: 200px' : 'min-width: 275px'}
50
50
  >
@@ -1,7 +1,7 @@
1
1
  <script>import Badge from '../../common/badge/Badge.svelte';
2
2
  import Popover from '../../Popover.svelte';
3
3
  import { classNames } from '../../../utils';
4
- import { Bed, Database, Gauge, Move, PhoneIncoming, Repeat, Square, Voicemail, X } from 'lucide-svelte';
4
+ import { AlertTriangle, Bed, Database, Gauge, Move, PhoneIncoming, Repeat, Square, Voicemail, X } from 'lucide-svelte';
5
5
  import { createEventDispatcher, getContext } from 'svelte';
6
6
  import { fade } from 'svelte/transition';
7
7
  export let selected = false;
@@ -18,6 +18,8 @@ export let label;
18
18
  export let modType = undefined;
19
19
  export let bgColor = '';
20
20
  export let concurrency = false;
21
+ export let retries = undefined;
22
+ const { flowInputsStore } = getContext('FlowGraphContext');
21
23
  const dispatch = createEventDispatcher();
22
24
  const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotContext') || {};
23
25
  </script>
@@ -41,11 +43,13 @@ const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotCon
41
43
  transition:fade|local={{ duration: 200 }}
42
44
  class="center-center rounded border bg-surface border-gray-400 text-secondary px-1 py-0.5"
43
45
  >
46
+ {#if retries}<span class="text-red-400 mr-2">{retries}</span>{/if}
44
47
  <Repeat size={14} />
45
48
  </div>
46
49
  <svelte:fragment slot="text">Retries</svelte:fragment>
47
50
  </Popover>
48
51
  {/if}
52
+
49
53
  {#if concurrency}
50
54
  <Popover notClickable>
51
55
  <div
@@ -113,6 +117,7 @@ const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotCon
113
117
  </Popover>
114
118
  {/if}
115
119
  </div>
120
+
116
121
  <div
117
122
  class="flex gap-1 justify-between items-center w-full overflow-hidden rounded-sm
118
123
  border border-gray-400 p-2 text-2xs module text-primary"
@@ -147,6 +152,19 @@ hover:border-blue-700 {selected ? '' : '!hidden'}"
147
152
  >
148
153
  <Move class="mx-[3px]" size={14} strokeWidth={2} />
149
154
  </button>
155
+
156
+ {#if id && !Object.values($flowInputsStore?.[id]?.requiredInputsFilled || {}).every(Boolean)}
157
+ <div class="absolute -top-[10px] -left-[10px]">
158
+ <Popover>
159
+ <svelte:fragment slot="text">At least one required input is not set.</svelte:fragment>
160
+ <div
161
+ class="flex items-center justify-center h-full w-full rounded-md p-0.5 border border-yellow-600 text-yellow-600 bg-yellow-100 duration-150 hover:bg-yellow-300"
162
+ >
163
+ <AlertTriangle size={14} strokeWidth={2} />
164
+ </div>
165
+ </Popover>
166
+ </div>
167
+ {/if}
150
168
  {/if}
151
169
  </div>
152
170
 
@@ -15,6 +15,7 @@ declare const __propDef: {
15
15
  modType?: string | undefined;
16
16
  bgColor?: string | undefined;
17
17
  concurrency?: boolean | undefined;
18
+ retries?: number | undefined;
18
19
  };
19
20
  events: {
20
21
  click: MouseEvent;
@@ -22,7 +22,7 @@ export let disableTutorials = false;
22
22
  export let disableAi = false;
23
23
  export let smallErrorHandler = false;
24
24
  let flowTutorials = undefined;
25
- const { selectedId, moving, history, flowStateStore, flowStore } = getContext('FlowEditorContext');
25
+ const { selectedId, moving, history, flowStateStore, flowStore, flowInputsStore } = getContext('FlowEditorContext');
26
26
  async function insertNewModuleAtIndex(modules, index, kind, wsScript) {
27
27
  push(history, $flowStore);
28
28
  var module = emptyModule($flowStateStore, $flowStore, kind == 'flow');
@@ -195,6 +195,7 @@ const dispatch = createEventDispatcher();
195
195
  maxHeight={minHeight}
196
196
  modules={$flowStore.value?.modules}
197
197
  {selectedId}
198
+ {flowInputsStore}
198
199
  on:delete={({ detail }) => {
199
200
  let e = detail.detail
200
201
  dependents = getDependentComponents(e.id, $flowStore)
@@ -202,6 +203,10 @@ const dispatch = createEventDispatcher();
202
203
  push(history, $flowStore)
203
204
  selectNextId(e.id)
204
205
  removeAtId($flowStore.value.modules, e.id)
206
+
207
+ if ($flowInputsStore) {
208
+ delete $flowInputsStore[e.id]
209
+ }
205
210
  $flowStore = $flowStore
206
211
  }
207
212
 
@@ -4,7 +4,7 @@ import { Badge } from '../../common';
4
4
  import { SlidersHorizontal } from 'lucide-svelte';
5
5
  const { selectedId, flowStore } = getContext('FlowEditorContext');
6
6
  $: settingsClass = classNames('border w-full rounded-sm p-2 bg-surface text-sm cursor-pointer flex items-center', $selectedId?.startsWith('settings')
7
- ? 'outline outline-offset-1 outline-2 outline-slate-900'
7
+ ? 'outline outline-offset-1 outline-2 outline-slate-900 dark:bg-white/5 dark:outline-slate-800/60 dark:border-gray-400'
8
8
  : '');
9
9
  </script>
10
10