windmill-components 1.60.3 → 1.70.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 (335) hide show
  1. package/assets/app.css +3 -0
  2. package/common.d.ts +5 -1
  3. package/components/ApiConnectForm.svelte +66 -5
  4. package/components/AppConnect.svelte +24 -9
  5. package/components/ArgInput.svelte +1 -1
  6. package/components/CliHelpBox.svelte +49 -0
  7. package/components/CliHelpBox.svelte.d.ts +14 -0
  8. package/components/DisplayResult.svelte +51 -1
  9. package/components/DisplayResult.svelte.d.ts +1 -0
  10. package/components/Editor.svelte +17 -7
  11. package/components/EditorBar.svelte +129 -111
  12. package/components/FlowBuilder.svelte +2 -2
  13. package/components/FlowJobResult.svelte +10 -2
  14. package/components/FlowJobResult.svelte.d.ts +1 -0
  15. package/components/FlowMetadata.svelte +24 -8
  16. package/components/FlowPreviewContent.svelte +3 -4
  17. package/components/FlowStatusViewer.svelte +41 -9
  18. package/components/FolderEditor.svelte +4 -3
  19. package/components/HighlightCode.svelte +7 -1
  20. package/components/InlineCodeCopy.svelte +11 -0
  21. package/components/InlineCodeCopy.svelte.d.ts +16 -0
  22. package/components/InputTransformForm.svelte +9 -5
  23. package/components/LogViewer.svelte +6 -0
  24. package/components/LogViewer.svelte.d.ts +1 -0
  25. package/components/ModulePreview.svelte +11 -2
  26. package/components/MoveDrawer.svelte +1 -1
  27. package/components/Multiselect.svelte.d.ts +2 -2
  28. package/components/ObjectResourceInput.svelte +6 -1
  29. package/components/Path.svelte +14 -5
  30. package/components/Popover.svelte +8 -2
  31. package/components/Popover.svelte.d.ts +1 -0
  32. package/components/Range.svelte.d.ts +2 -2
  33. package/components/ResourceEditor.svelte +39 -16
  34. package/components/ResourcePicker.svelte +0 -1
  35. package/components/RunForm.svelte +26 -2
  36. package/components/RunForm.svelte.d.ts +1 -0
  37. package/components/ScheduleEditor.svelte +1 -1
  38. package/components/SchemaEditor.svelte +2 -2
  39. package/components/SchemaForm.svelte +14 -4
  40. package/components/SchemaForm.svelte.d.ts +1 -0
  41. package/components/ScriptBuilder.svelte +45 -22
  42. package/components/ScriptBuilder.svelte.d.ts +1 -0
  43. package/components/ScriptEditor.svelte +1 -0
  44. package/components/SharedBadge.svelte +5 -5
  45. package/components/Slider.svelte +14 -0
  46. package/components/Slider.svelte.d.ts +19 -0
  47. package/components/StringTypeNarrowing.svelte +0 -1
  48. package/components/SuperadminSettings.svelte +11 -3
  49. package/components/SuperadminSettings.svelte.d.ts +2 -0
  50. package/components/TemplateEditor.svelte.d.ts +204 -0
  51. package/components/TestJobLoader.svelte +3 -3
  52. package/components/Toggle.svelte +1 -2
  53. package/components/UserSettings.svelte +25 -28
  54. package/components/UserSettings.svelte.d.ts +2 -0
  55. package/components/VariableEditor.svelte +1 -1
  56. package/components/WhitelistIp.svelte +23 -0
  57. package/components/WhitelistIp.svelte.d.ts +14 -0
  58. package/components/apps/components/buttons/AppButton.svelte +52 -6
  59. package/components/apps/components/buttons/AppButton.svelte.d.ts +3 -0
  60. package/components/apps/components/{form → buttons}/AppForm.svelte +3 -1
  61. package/components/apps/components/buttons/AppFormButton.svelte +137 -0
  62. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +25 -0
  63. package/components/apps/components/buttons/index.d.ts +3 -0
  64. package/components/apps/components/buttons/index.js +3 -0
  65. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte +15 -4
  66. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte.d.ts +1 -0
  67. package/components/apps/components/display/AppDisplayComponent.svelte +31 -0
  68. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +23 -0
  69. package/components/apps/components/display/AppHtml.svelte +32 -0
  70. package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +1 -3
  71. package/components/apps/components/display/AppIcon.svelte +35 -0
  72. package/components/apps/components/display/AppIcon.svelte.d.ts +22 -0
  73. package/components/apps/components/display/AppImage.svelte +27 -0
  74. package/components/apps/components/display/AppImage.svelte.d.ts +22 -0
  75. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte +2 -1
  76. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte.d.ts +1 -0
  77. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte +2 -1
  78. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte.d.ts +1 -0
  79. package/components/apps/components/{dataDisplay → display}/AppText.svelte +16 -14
  80. package/components/apps/components/{dataDisplay → display}/AppText.svelte.d.ts +3 -0
  81. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte +3 -2
  82. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte.d.ts +1 -0
  83. package/components/apps/components/display/PlotlyHtml.svelte +38 -0
  84. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +24 -0
  85. package/components/apps/components/display/VegaLiteHtml.svelte +52 -0
  86. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +3 -2
  87. package/components/apps/components/display/index.d.ts +12 -0
  88. package/components/apps/components/display/index.js +12 -0
  89. package/components/apps/components/display/table/AppAggridTable.svelte +83 -0
  90. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +24 -0
  91. package/components/apps/components/{table → display/table}/AppTable.svelte +44 -23
  92. package/components/apps/components/{table → display/table}/AppTable.svelte.d.ts +4 -2
  93. package/components/apps/components/{table → display/table}/AppTableFooter.svelte +1 -1
  94. package/components/apps/components/helpers/AlignWrapper.svelte +19 -19
  95. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +4 -2
  96. package/components/apps/components/helpers/HiddenComponent.svelte +22 -0
  97. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +25 -0
  98. package/components/apps/components/helpers/InputDefaultValue.svelte +17 -0
  99. package/components/apps/components/helpers/InputDefaultValue.svelte.d.ts +17 -0
  100. package/components/apps/components/helpers/InputValue.svelte +5 -7
  101. package/components/apps/components/helpers/InputValue.svelte.d.ts +0 -1
  102. package/components/apps/components/helpers/RunnableComponent.svelte +37 -48
  103. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
  104. package/components/apps/components/helpers/RunnableWrapper.svelte +7 -2
  105. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +2 -1
  106. package/components/apps/components/helpers/index.d.ts +10 -0
  107. package/components/apps/components/helpers/index.js +10 -0
  108. package/components/apps/components/icon.d.ts +1 -0
  109. package/components/apps/components/icon.js +18 -0
  110. package/components/apps/components/index.d.ts +5 -0
  111. package/components/apps/components/index.js +5 -0
  112. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte +4 -2
  113. package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte +6 -0
  114. package/components/apps/components/inputs/AppFileInput.svelte +34 -0
  115. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +20 -0
  116. package/components/apps/components/inputs/AppNumberInput.svelte +48 -0
  117. package/components/apps/components/inputs/AppRangeInput.svelte +44 -0
  118. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +23 -0
  119. package/components/apps/components/inputs/AppSelect.svelte +90 -0
  120. package/components/apps/components/{selectInputs → inputs}/AppSelect.svelte.d.ts +2 -0
  121. package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte +13 -9
  122. package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte +6 -0
  123. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +49 -0
  124. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +21 -0
  125. package/components/apps/components/inputs/currency/CurrencyInput.svelte +181 -0
  126. package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +32 -0
  127. package/components/apps/components/inputs/index.d.ts +9 -0
  128. package/components/apps/components/inputs/index.js +9 -0
  129. package/components/apps/components/layout/AppContainer.svelte +32 -0
  130. package/components/apps/components/layout/AppContainer.svelte.d.ts +21 -0
  131. package/components/apps/components/layout/AppDivider.svelte +20 -0
  132. package/components/apps/components/layout/AppDivider.svelte.d.ts +22 -0
  133. package/components/apps/components/layout/AppTabs.svelte +58 -0
  134. package/components/apps/components/layout/AppTabs.svelte.d.ts +24 -0
  135. package/components/apps/components/layout/index.d.ts +3 -0
  136. package/components/apps/components/layout/index.js +3 -0
  137. package/components/apps/editor/AppComponentInput.svelte +33 -0
  138. package/components/apps/editor/AppComponentInput.svelte.d.ts +18 -0
  139. package/components/apps/editor/AppComponentInputs.svelte +13 -0
  140. package/components/apps/editor/AppComponentInputs.svelte.d.ts +20 -0
  141. package/components/apps/editor/AppEditor.svelte +66 -31
  142. package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
  143. package/components/apps/editor/AppEditorHeader.svelte +74 -18
  144. package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  145. package/components/apps/editor/AppInputs.svelte +60 -0
  146. package/components/apps/editor/AppInputs.svelte.d.ts +14 -0
  147. package/components/apps/editor/AppPreview.svelte +32 -5
  148. package/components/apps/editor/AppPreview.svelte.d.ts +2 -0
  149. package/components/apps/editor/ComponentHeader.svelte +40 -2
  150. package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -1
  151. package/components/apps/editor/GridEditor.svelte +75 -32
  152. package/components/apps/editor/GridEditor.svelte.d.ts +2 -0
  153. package/components/apps/editor/SettingsPanel.svelte +31 -3
  154. package/components/apps/editor/SubGridEditor.svelte +111 -0
  155. package/components/apps/editor/SubGridEditor.svelte.d.ts +24 -0
  156. package/components/apps/editor/TablePanel.svelte +2 -0
  157. package/components/apps/editor/TablePanel.svelte.d.ts +1 -1
  158. package/components/apps/editor/appUtils.d.ts +9 -0
  159. package/components/apps/editor/appUtils.js +141 -0
  160. package/components/apps/editor/component/Component.svelte +209 -0
  161. package/components/apps/editor/component/Component.svelte.d.ts +23 -0
  162. package/components/apps/editor/component/README.md +15 -0
  163. package/components/apps/editor/component/components.d.ts +65 -0
  164. package/components/apps/editor/component/components.js +1102 -0
  165. package/components/apps/editor/component/default-codes.d.ts +3 -0
  166. package/components/apps/editor/component/default-codes.js +322 -0
  167. package/components/apps/editor/component/index.d.ts +4 -0
  168. package/components/apps/editor/component/index.js +4 -0
  169. package/components/apps/editor/component/sets.d.ts +2 -0
  170. package/components/apps/editor/component/sets.js +47 -0
  171. package/components/apps/editor/componentsPanel/ComponentList.svelte +30 -105
  172. package/components/apps/editor/componentsPanel/CssProperty.svelte +31 -0
  173. package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +20 -0
  174. package/components/apps/editor/componentsPanel/CssSettings.svelte +141 -0
  175. package/components/apps/editor/componentsPanel/CssSettings.svelte.d.ts +14 -0
  176. package/components/apps/editor/componentsPanel/ListItem.svelte +28 -0
  177. package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +20 -0
  178. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +4 -1
  179. package/components/apps/editor/componentsPanel/componentStaticValues.js +4 -1
  180. package/components/apps/editor/contextPanel/ContextPanel.svelte +8 -6
  181. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +98 -9
  182. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +38 -29
  183. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +21 -1
  184. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +66 -8
  185. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +92 -46
  186. package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -1
  187. package/components/apps/editor/inlineScriptsPanel/utils.js +30 -0
  188. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  189. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte.d.ts +1 -1
  190. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +4 -1
  191. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +59 -1
  192. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +64 -34
  193. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +5 -3
  194. package/components/apps/editor/settingsPanel/GridTab.svelte +73 -0
  195. package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +18 -0
  196. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +3 -0
  197. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
  198. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +92 -77
  199. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  200. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +85 -0
  201. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +18 -0
  202. package/components/apps/editor/settingsPanel/Recompute.svelte +4 -1
  203. package/components/apps/editor/settingsPanel/TableActions.svelte +17 -6
  204. package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  205. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +5 -3
  206. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +83 -0
  207. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +19 -0
  208. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +6 -1
  209. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +2 -0
  210. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +23 -0
  211. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +17 -0
  212. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +3 -20
  213. package/components/apps/gridUtils.d.ts +3 -1
  214. package/components/apps/gridUtils.js +5 -3
  215. package/components/apps/inputType.d.ts +33 -6
  216. package/components/apps/types.d.ts +35 -39
  217. package/components/apps/types.js +1 -1
  218. package/components/apps/utils.d.ts +6 -5
  219. package/components/apps/utils.js +90 -90
  220. package/components/common/button/Button.svelte +12 -5
  221. package/components/common/button/Button.svelte.d.ts +3 -1
  222. package/components/common/button/ButtonPopup.svelte.d.ts +1 -1
  223. package/components/common/button/model.d.ts +2 -2
  224. package/components/common/button/model.js +21 -6
  225. package/components/common/confirmationModal/ConfirmationModal.svelte +8 -1
  226. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +4 -4
  227. package/components/common/drawer/Drawer.svelte +3 -1
  228. package/components/common/fileInput/FileInput.svelte +112 -0
  229. package/components/common/fileInput/FileInput.svelte.d.ts +27 -0
  230. package/components/common/index.d.ts +1 -0
  231. package/components/common/index.js +1 -0
  232. package/components/common/kbd/Kbd.svelte.d.ts +2 -2
  233. package/components/common/modal/Modal.svelte +74 -0
  234. package/components/common/modal/Modal.svelte.d.ts +22 -0
  235. package/components/common/popup/Popup.svelte +34 -17
  236. package/components/common/popup/Popup.svelte.d.ts +11 -4
  237. package/components/common/table/FlowRow.svelte +22 -3
  238. package/components/common/table/LanguageBadge.svelte +10 -4
  239. package/components/common/table/Row.svelte +1 -1
  240. package/components/common/table/ScriptRow.svelte +2 -2
  241. package/components/common/tabs/Tabs.svelte +9 -7
  242. package/components/common/tabs/Tabs.svelte.d.ts +3 -1
  243. package/components/flows/CreateActionsFlow.svelte +2 -3
  244. package/components/flows/content/BranchPredicateEditor.svelte +10 -8
  245. package/components/flows/content/CapturePayload.svelte +3 -3
  246. package/components/flows/content/FlowInputs.svelte +109 -99
  247. package/components/flows/content/FlowLoop.svelte +1 -1
  248. package/components/flows/content/FlowModuleComponent.svelte +3 -2
  249. package/components/flows/content/FlowRetries.svelte +8 -6
  250. package/components/flows/content/FlowSettings.svelte +72 -26
  251. package/components/flows/flowState.d.ts +1 -0
  252. package/components/flows/flowState.js +1 -0
  253. package/components/flows/flowStateUtils.js +4 -2
  254. package/components/flows/flowStore.d.ts +1 -0
  255. package/components/flows/flowStore.js +1 -0
  256. package/components/flows/map/FlowBranchAllMap.svelte +1 -1
  257. package/components/flows/map/FlowBranchOneMap.svelte +2 -2
  258. package/components/flows/map/FlowModuleSchemaItem.svelte +5 -5
  259. package/components/flows/map/FlowModuleSchemaMap.svelte +15 -8
  260. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
  261. package/components/flows/map/InsertModuleButton.svelte +24 -10
  262. package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -0
  263. package/components/flows/map/MapItem.svelte +3 -1
  264. package/components/flows/utils.js +16 -10
  265. package/components/graph/FlowGraph.svelte +38 -15
  266. package/components/graph/FlowGraph.svelte.d.ts +1 -0
  267. package/components/icons/SquareIcon.svelte +9 -0
  268. package/components/icons/SquareIcon.svelte.d.ts +17 -0
  269. package/components/icons/index.d.ts +2 -0
  270. package/components/icons/index.js +2 -0
  271. package/components/jobs/JobDetail.svelte +29 -5
  272. package/components/propertyPicker/ObjectViewer.svelte +8 -5
  273. package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
  274. package/components/propertyPicker/PropPicker.svelte +8 -1
  275. package/components/propertyPicker/PropPickerResult.svelte +1 -1
  276. package/components/random_positive_adjetive.d.ts +1 -0
  277. package/components/random_positive_adjetive.js +961 -0
  278. package/components/scriptEditor/LogPanel.svelte +2 -1
  279. package/components/sidebar/SidebarContent.svelte +1 -1
  280. package/components/sidebar/UserMenu.svelte +46 -16
  281. package/components/sidebar/UserMenu.svelte.d.ts +0 -3
  282. package/components/sidebar/WorkspaceMenu.svelte +3 -1
  283. package/components/sidebar/settings.d.ts +2 -0
  284. package/components/sidebar/settings.js +2 -0
  285. package/gen/core/OpenAPI.js +1 -1
  286. package/gen/models/CompletedJob.d.ts +1 -0
  287. package/gen/models/FlowModule.d.ts +0 -1
  288. package/gen/models/QueuedJob.d.ts +1 -0
  289. package/gen/models/WorkerPing.d.ts +1 -1
  290. package/gen/services/FlowService.d.ts +9 -0
  291. package/gen/services/FlowService.js +15 -0
  292. package/gen/services/JobService.d.ts +97 -15
  293. package/gen/services/JobService.js +74 -15
  294. package/gen/services/ScriptService.d.ts +10 -1
  295. package/gen/services/ScriptService.js +16 -1
  296. package/gen/services/VariableService.d.ts +4 -2
  297. package/gen/services/VariableService.js +8 -2
  298. package/gen/services/WorkspaceService.d.ts +17 -0
  299. package/gen/services/WorkspaceService.js +16 -0
  300. package/infer.js +3 -0
  301. package/init_scripts/python_failure_module.py +10 -0
  302. package/init_scripts/python_init_code.py +37 -0
  303. package/init_scripts/python_init_code_clear.py +5 -0
  304. package/init_scripts/python_init_code_trigger.py +14 -0
  305. package/logout.js +2 -1
  306. package/package.json +577 -522
  307. package/script_helpers.d.ts +6 -5
  308. package/script_helpers.js +7 -73
  309. package/stores.d.ts +5 -1
  310. package/stores.js +8 -1
  311. package/user.d.ts +1 -1
  312. package/user.js +14 -8
  313. package/utils.d.ts +1 -1
  314. package/utils.js +8 -7
  315. package/components/apps/components/DisplayComponent.svelte +0 -16
  316. package/components/apps/components/DisplayComponent.svelte.d.ts +0 -20
  317. package/components/apps/components/dataDisplay/AppHtml.svelte +0 -35
  318. package/components/apps/components/dataDisplay/VegaLiteHtml.svelte +0 -28
  319. package/components/apps/components/numberInputs/AppNumberInput.svelte +0 -33
  320. package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
  321. package/components/apps/editor/ComponentEditor.svelte +0 -138
  322. package/components/apps/editor/ComponentEditor.svelte.d.ts +0 -23
  323. package/components/apps/editor/componentsPanel/data.d.ts +0 -3
  324. package/components/apps/editor/componentsPanel/data.js +0 -465
  325. package/components/apps/editorUtils.d.ts +0 -1
  326. package/components/apps/editorUtils.js +0 -253
  327. /package/components/apps/components/{form → buttons}/AppForm.svelte.d.ts +0 -0
  328. /package/components/apps/components/{table → display/table}/AppTableFooter.svelte.d.ts +0 -0
  329. /package/components/apps/components/{table → display/table}/tableOptions.d.ts +0 -0
  330. /package/components/apps/components/{table → display/table}/tableOptions.js +0 -0
  331. /package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte.d.ts +0 -0
  332. /package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte.d.ts +0 -0
  333. /package/components/apps/components/{numberInputs → inputs}/AppNumberInput.svelte.d.ts +0 -0
  334. /package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte.d.ts +0 -0
  335. /package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte.d.ts +0 -0
@@ -22,12 +22,14 @@ function updateSelected() {
22
22
  }
23
23
  </script>
24
24
 
25
- <div
26
- class={classNames(
27
- 'border-b border-gray-200 flex flex-row whitespace-nowrap scrollbar-hidden',
28
- $$props.class
29
- )}
30
- >
31
- <slot />
25
+ <div class="overflow-x-auto">
26
+ <div
27
+ class={classNames(
28
+ 'border-b border-gray-200 flex flex-row whitespace-nowrap scrollbar-hidden',
29
+ $$props.class
30
+ )}
31
+ >
32
+ <slot {selected} />
33
+ </div>
32
34
  </div>
33
35
  <slot name="content" />
@@ -15,7 +15,9 @@ declare const __propDef: {
15
15
  [evt: string]: CustomEvent<any>;
16
16
  };
17
17
  slots: {
18
- default: {};
18
+ default: {
19
+ selected: string;
20
+ };
19
21
  content: {};
20
22
  };
21
23
  };
@@ -4,14 +4,13 @@ import { Button, ButtonPopup, ButtonPopupItem } from '../common';
4
4
  import Drawer from '../common/drawer/Drawer.svelte';
5
5
  import DrawerContent from '../common/drawer/DrawerContent.svelte';
6
6
  import SimpleEditor from '../SimpleEditor.svelte';
7
- import { flowStore, initFlow } from './flowStore';
7
+ import { importFlowStore } from './flowStore';
8
8
  import { Icon } from 'svelte-awesome';
9
9
  let drawer = undefined;
10
10
  let pendingJson;
11
11
  async function importJson() {
12
+ $importFlowStore = JSON.parse(pendingJson);
12
13
  await goto('/flows/add');
13
- Object.assign($flowStore, JSON.parse(pendingJson));
14
- initFlow($flowStore);
15
14
  drawer?.closeDrawer?.();
16
15
  }
17
16
  </script>
@@ -19,12 +19,14 @@ $: stepPropPicker = getStepPropPicker($flowStateStore, parentModule, previousMod
19
19
  editor?.insertAtCursor(detail)
20
20
  }}
21
21
  >
22
- <SimpleEditor
23
- bind:this={editor}
24
- lang="javascript"
25
- bind:code={branch.expr}
26
- class="small-editor"
27
- shouldBindKey={false}
28
- extraLib={stepPropPicker.extraLib}
29
- />
22
+ <div class="border border-gray-400">
23
+ <SimpleEditor
24
+ bind:this={editor}
25
+ lang="javascript"
26
+ bind:code={branch.expr}
27
+ class="small-editor border "
28
+ shouldBindKey={false}
29
+ extraLib={stepPropPicker.extraLib}
30
+ />
31
+ </div>
30
32
  </PropPickerWrapper>
@@ -106,11 +106,11 @@ async function getCaptureInput() {
106
106
  Copy as flow inputs and test args
107
107
  </Button>
108
108
  </svelte:fragment>
109
- <h3 class="my-2">Derived schema</h3>
109
+ <h3 class="my-2 mt-8">Derived schema</h3>
110
110
  <div class="box p-2">
111
111
  <SchemaViewer schema={jsonSchema} />
112
112
  </div>
113
- <h3 class="mt-2">Test args</h3>
114
- <SchemaForm class="h-full pt-4" schema={$flowStore.schema} args={$previewArgs} />
113
+ <h3 class="mt-8">Test args</h3>
114
+ <SchemaForm class="pt-4" schema={$flowStore.schema} args={$previewArgs} />
115
115
  </DrawerContent>
116
116
  </Drawer>
@@ -23,133 +23,143 @@ let filter = '';
23
23
  </script>
24
24
 
25
25
  <div class="p-4 h-full flex flex-col">
26
- {#if !failureModule}
27
- <div class="center-center">
28
- <div class="max-w-min">
29
- <ToggleButtonGroup bind:selected={kind}>
30
- <ToggleButton position="left" value="script" size="sm" startIcon={{ icon: faCode }}>
31
- Action &nbsp;<Tooltip>
32
- An action script is simply a script that is neither a trigger nor an approval script.
33
- Those are the majority of the scripts.
34
- </Tooltip>
35
- </ToggleButton>
36
- {#if !shouldDisableTriggerScripts}
37
- <ToggleButton position="center" value="trigger" size="sm" startIcon={{ icon: faBolt }}>
38
- Trigger &nbsp;<Tooltip>
39
- Used as a first step most commonly with a state and a schedule to watch for changes
40
- on an external system, compute the diff since last time, set the new state. The
41
- diffs are then treated one by one with a for-loop.
26
+ {#if summary == 'Terminate flow'}
27
+ <Alert role="info" title="The flow stops here"
28
+ >This is an identity step with an early stop that has 'true' for expression</Alert
29
+ >
30
+ {:else}{#if !failureModule}
31
+ <div class="center-center">
32
+ <div class="max-w-min">
33
+ <ToggleButtonGroup bind:selected={kind}>
34
+ <ToggleButton position="left" value="script" size="sm" startIcon={{ icon: faCode }}>
35
+ Action &nbsp;<Tooltip>
36
+ An action script is simply a script that is neither a trigger nor an approval
37
+ script. Those are the majority of the scripts.
42
38
  </Tooltip>
43
39
  </ToggleButton>
44
- {/if}
45
- <ToggleButton position="right" value="approval" size="sm" startIcon={{ icon: faCheck }}>
46
- Approval &nbsp;<Tooltip>
47
- An approval step will suspend the execution of a flow until it has been approved
48
- through the resume endpoints or the approval page by and solely by the recipients of
49
- those secret urls. Use `wmill.getResumeUrls()` in Typescript or
50
- `wmill.get_resume_urls()` in Python from the wmill client to generate those URLs.
51
- </Tooltip>
52
- </ToggleButton>
53
- </ToggleButtonGroup>
40
+ {#if !shouldDisableTriggerScripts}
41
+ <ToggleButton
42
+ position="center"
43
+ value="trigger"
44
+ size="sm"
45
+ startIcon={{ icon: faBolt }}
46
+ >
47
+ Trigger &nbsp;<Tooltip>
48
+ Used as a first step most commonly with a state and a schedule to watch for
49
+ changes on an external system, compute the diff since last time, set the new
50
+ state. The diffs are then treated one by one with a for-loop.
51
+ </Tooltip>
52
+ </ToggleButton>
53
+ {/if}
54
+ <ToggleButton position="right" value="approval" size="sm" startIcon={{ icon: faCheck }}>
55
+ Approval &nbsp;<Tooltip>
56
+ An approval step will suspend the execution of a flow until it has been approved
57
+ through the resume endpoints or the approval page by and solely by the recipients of
58
+ those secret urls. Use `wmill.getResumeUrls()` in Typescript or
59
+ `wmill.get_resume_urls()` in Python from the wmill client to generate those URLs.
60
+ </Tooltip>
61
+ </ToggleButton>
62
+ </ToggleButtonGroup>
63
+ </div>
54
64
  </div>
55
- </div>
56
- {/if}
57
- {#if kind == 'trigger'}
58
- <div class="mt-2" />
59
- <Alert title="Trigger script automatic schedule" role="info">
60
- A schedule will be automatically attached to this flow to run every 15 minutes. Adjust
61
- frequency in 'Settings -> Schedule'</Alert
62
- >
63
- {/if}
64
- <h3 class="pb-2 pt-4">
65
- Inline new <span class="text-blue-500">{kind == 'script' ? 'action' : kind}</span> script
66
- <Tooltip>
67
- Embed a script directly inside a flow instead of saving the script into your workspace for
68
- reuse. You can always save an inline script to your workspace later.
69
- </Tooltip>
70
- </h3>
71
- <div class="flex flex-row">
72
- <div class="flex flex-row flex-wrap gap-2">
73
- <FlowScriptPicker
74
- label="Typescript"
75
- lang={Script.language.DENO}
76
- on:click={() => {
77
- dispatch('new', {
78
- language: RawScript.language.DENO,
79
- kind,
80
- subkind: 'flow'
81
- })
82
- }}
83
- />
84
-
85
- <FlowScriptPicker
86
- label="Python"
87
- lang={Script.language.PYTHON3}
88
- on:click={() => {
89
- dispatch('new', {
90
- language: RawScript.language.PYTHON3,
91
- kind,
92
- subkind: 'flow'
93
- })
94
- }}
95
- />
96
-
97
- {#if kind != 'approval'}
65
+ {/if}
66
+ {#if kind == 'trigger'}
67
+ <div class="mt-2" />
68
+ <Alert title="Trigger script automatic schedule" role="info">
69
+ A schedule will be automatically attached to this flow to run every 15 minutes. Adjust
70
+ frequency in 'Settings -> Schedule'</Alert
71
+ >
72
+ {/if}
73
+ <h3 class="pb-2 pt-4">
74
+ Inline new <span class="text-blue-500">{kind == 'script' ? 'action' : kind}</span> script
75
+ <Tooltip>
76
+ Embed a script directly inside a flow instead of saving the script into your workspace for
77
+ reuse. You can always save an inline script to your workspace later.
78
+ </Tooltip>
79
+ </h3>
80
+ <div class="flex flex-row">
81
+ <div class="flex flex-row flex-wrap gap-2">
98
82
  <FlowScriptPicker
99
- label="Go"
100
- lang={Script.language.GO}
83
+ label="Typescript"
84
+ lang={Script.language.DENO}
101
85
  on:click={() => {
102
86
  dispatch('new', {
103
- language: RawScript.language.GO,
87
+ language: RawScript.language.DENO,
104
88
  kind,
105
89
  subkind: 'flow'
106
90
  })
107
91
  }}
108
92
  />
109
- {/if}
110
93
 
111
- {#if kind == 'script'}
112
94
  <FlowScriptPicker
113
- label="Bash"
114
- lang={Script.language.BASH}
95
+ label="Python"
96
+ lang={Script.language.PYTHON3}
115
97
  on:click={() => {
116
98
  dispatch('new', {
117
- language: RawScript.language.BASH,
99
+ language: RawScript.language.PYTHON3,
118
100
  kind,
119
101
  subkind: 'flow'
120
102
  })
121
103
  }}
122
104
  />
123
105
 
124
- {#if !failureModule}
106
+ {#if kind != 'approval'}
125
107
  <FlowScriptPicker
126
- label={`PostgreSQL`}
127
- lang="pgsql"
128
- on:click={() =>
129
- dispatch('new', { language: RawScript.language.DENO, kind, subkind: 'pgsql' })}
108
+ label="Go"
109
+ lang={Script.language.GO}
110
+ on:click={() => {
111
+ dispatch('new', {
112
+ language: RawScript.language.GO,
113
+ kind,
114
+ subkind: 'flow'
115
+ })
116
+ }}
130
117
  />
118
+ {/if}
131
119
 
120
+ {#if kind == 'script'}
132
121
  <FlowScriptPicker
133
- label={`MySQL`}
134
- lang="mysql"
135
- on:click={() =>
136
- dispatch('new', { language: RawScript.language.DENO, kind, subkind: 'mysql' })}
122
+ label="Bash"
123
+ lang={Script.language.BASH}
124
+ on:click={() => {
125
+ dispatch('new', {
126
+ language: RawScript.language.BASH,
127
+ kind,
128
+ subkind: 'flow'
129
+ })
130
+ }}
137
131
  />
132
+
133
+ {#if !failureModule}
134
+ <FlowScriptPicker
135
+ label={`PostgreSQL`}
136
+ lang="pgsql"
137
+ on:click={() =>
138
+ dispatch('new', { language: RawScript.language.DENO, kind, subkind: 'pgsql' })}
139
+ />
140
+
141
+ <!-- <FlowScriptPicker
142
+ label={`MySQL`}
143
+ lang="mysql"
144
+ on:click={() =>
145
+ dispatch('new', { language: RawScript.language.DENO, kind, subkind: 'mysql' })}
146
+ /> -->
147
+ {/if}
138
148
  {/if}
139
- {/if}
149
+ </div>
140
150
  </div>
141
- </div>
142
151
 
143
- <h3 class="mb-2 mt-6"
144
- >Use pre-made <span class="text-blue-500">{kind == 'script' ? 'action' : kind}</span> script</h3
145
- >
146
- {#if pick_existing == 'hub'}
147
- <PickHubScript bind:filter {kind} on:pick>
148
- <ToggleHubWorkspace bind:selected={pick_existing} />
149
- </PickHubScript>
150
- {:else}
151
- <WorkspaceScriptPicker displayLock bind:filter {kind} on:pick>
152
- <ToggleHubWorkspace bind:selected={pick_existing} />
153
- </WorkspaceScriptPicker>
152
+ <h3 class="mb-2 mt-6"
153
+ >Use pre-made <span class="text-blue-500">{kind == 'script' ? 'action' : kind}</span> script</h3
154
+ >
155
+ {#if pick_existing == 'hub'}
156
+ <PickHubScript bind:filter {kind} on:pick>
157
+ <ToggleHubWorkspace bind:selected={pick_existing} />
158
+ </PickHubScript>
159
+ {:else}
160
+ <WorkspaceScriptPicker displayLock bind:filter {kind} on:pick>
161
+ <ToggleHubWorkspace bind:selected={pick_existing} />
162
+ </WorkspaceScriptPicker>
163
+ {/if}
154
164
  {/if}
155
165
  </div>
@@ -34,7 +34,7 @@ $: stepPropPicker = getStepPropPicker($flowStateStore, parentModule, previousMod
34
34
  Iterator expression
35
35
  <Tooltip>
36
36
  List to iterate over. For more information see the
37
- <a href="https://docs.windmill.dev/docs/getting_started/flows#for-loops">docs.</a>
37
+ <a href="https://docs.windmill.dev/docs/getting_started/flows_quickstart">docs.</a>
38
38
  </Tooltip>
39
39
  </div>
40
40
  {#if mod.value.iterator.type == 'javascript'}
@@ -20,6 +20,7 @@ import FlowModuleEarlyStop from './FlowModuleEarlyStop.svelte';
20
20
  import FlowModuleSuspend from './FlowModuleSuspend.svelte';
21
21
  import FlowRetries from './FlowRetries.svelte';
22
22
  import { getStepPropPicker } from '../previousResults';
23
+ import { deepEqual } from 'fast-equals';
23
24
  import Button from '../../common/button/Button.svelte';
24
25
  import Alert from '../../common/alert/Alert.svelte';
25
26
  import FlowModuleSleep from './FlowModuleSleep.svelte';
@@ -65,11 +66,11 @@ async function reload(flowModule) {
65
66
  const { input_transforms, schema } = await loadSchemaFromModule(flowModule);
66
67
  validCode = true;
67
68
  setTimeout(() => {
68
- if (JSON.stringify(value.input_transforms) !== JSON.stringify(input_transforms)) {
69
+ if (!deepEqual(value.input_transforms, input_transforms)) {
69
70
  inputTransforms = input_transforms;
70
71
  }
71
72
  });
72
- if (JSON.stringify(schema) !== JSON.stringify($flowStateStore[flowModule.id]?.schema)) {
73
+ if (!deepEqual(schema, $flowStateStore[flowModule.id]?.schema)) {
73
74
  if (!$flowStateStore[flowModule.id]) {
74
75
  $flowStateStore[flowModule.id] = { schema };
75
76
  }
@@ -29,9 +29,8 @@ $: isExponentialRetryEnabled = Boolean(flowModule.retry?.exponential);
29
29
  <h2 class="mt-2"
30
30
  >Retries <Tooltip>
31
31
  If defined, upon error this step will be retried with a delay and a maximum number of attempts
32
- as defined below. If none of the retries succeed, the step job is a failure and the error will
33
- propagate up in the case of a branch, and the error handler will be called ultimately if not
34
- handled prior.</Tooltip
32
+ as defined below. If both static and exponential delay is defined, the static delay attempts
33
+ are tried before the exponential ones.</Tooltip
35
34
  ></h2
36
35
  >
37
36
 
@@ -70,22 +69,25 @@ $: isExponentialRetryEnabled = Boolean(flowModule.retry?.exponential);
70
69
  }
71
70
  }}
72
71
  options={{
73
- right: 'Exponential retry enabled'
72
+ right: 'Exponential backoff enabled'
74
73
  }}
75
74
  />
76
75
  {#if flowModule.retry?.exponential}
77
76
  <span class="text-xs font-bold">Attempts</span>
78
77
  <input bind:value={flowModule.retry.exponential.attempts} type="number" />
79
78
  <span class="text-xs font-bold">Mulitplier</span>
79
+ <span class="text-xs text-gray-500">additional delay = multiplier * base ^ (# attempts)</span>
80
80
  <input bind:value={flowModule.retry.exponential.multiplier} type="number" />
81
- <span class="text-xs font-bold">Initial delay (seconds)</span>
81
+ <span class="text-xs font-bold">Base</span>
82
82
  <input bind:value={flowModule.retry.exponential.seconds} type="number" />
83
83
  {:else}
84
84
  <span class="text-xs font-bold">Attempts</span>
85
85
  <input type="number" disabled />
86
86
  <span class="text-xs font-bold">Mulitplier</span>
87
+ <span class="text-xs text-gray-500">additional delay = multiplier * seconds ^ (# attempts)</span
88
+ >
87
89
  <input type="number" disabled />
88
- <span class="text-xs font-bold">Initial delay (seconds)</span>
90
+ <span class="text-xs font-bold">Base</span>
89
91
  <input type="number" disabled />
90
92
  {/if}
91
93
  </div>
@@ -11,9 +11,16 @@ import { Alert } from '../../common';
11
11
  import { FlowGraph } from '../../graph';
12
12
  import { getContext } from 'svelte';
13
13
  import autosize from 'svelte-autosize';
14
+ import Slider from '../../Slider.svelte';
15
+ import { page } from '$app/stores';
16
+ import { workspaceStore } from '../../../stores';
17
+ import { copyToClipboard } from '../../../utils';
18
+ import { Icon } from 'svelte-awesome';
19
+ import { faClipboard } from '@fortawesome/free-solid-svg-icons';
14
20
  const { selectedId } = getContext('FlowEditorContext');
15
21
  export let initialPath;
16
22
  let topHeight = 0;
23
+ $: url = `${$page.url.hostname}/api/w/${$workspaceStore}/jobs/run/f/${$flowStore?.path}`;
17
24
  </script>
18
25
 
19
26
  <div class="h-full overflow-hidden">
@@ -26,34 +33,73 @@ let topHeight = 0;
26
33
  <Tab value="settings-graph">Graph</Tab>
27
34
 
28
35
  <svelte:fragment slot="content">
29
- <TabContent value="settings-metadata" class="p-4">
30
- <Path bind:path={$flowStore.path} {initialPath} namePlaceholder="my_flow" kind="flow" />
36
+ <TabContent value="settings-metadata" class="p-4 h-full">
37
+ <div class="overflow-auto h-full">
38
+ <Path bind:path={$flowStore.path} {initialPath} namePlaceholder="flow" kind="flow" />
31
39
 
32
- <label class="block my-4">
33
- <span class="text-gray-700 text-sm">Summary <Required required={false} /></span>
34
- <input
35
- type="text"
36
- bind:value={$flowStore.summary}
37
- placeholder="A short summary of the flow displayed when the flow is listed"
38
- id="flow-summary"
39
- />
40
- </label>
41
-
42
- <label class="block my-4" for="inp">
43
- <span class="text-gray-700 text-sm">
44
- Description
45
- <Required required={false} />
46
- <textarea
47
- use:autosize
40
+ <label class="block my-4">
41
+ <span class="text-gray-700 text-sm">Summary <Required required={false} /></span>
42
+ <input
48
43
  type="text"
49
- class="text-sm"
50
- id="inp"
51
- bind:value={$flowStore.description}
52
- placeholder="A description to help users understand what this flow does and how to use it."
53
- rows="3"
44
+ bind:value={$flowStore.summary}
45
+ placeholder="Short summary to be displayed when listed"
46
+ id="flow-summary"
54
47
  />
55
- </span>
56
- </label>
48
+ </label>
49
+
50
+ <label class="block my-4" for="inp">
51
+ <span class="text-gray-700 text-sm">
52
+ Description
53
+ <Required required={false} />
54
+ <textarea
55
+ use:autosize
56
+ type="text"
57
+ class="text-sm"
58
+ id="inp"
59
+ bind:value={$flowStore.description}
60
+ placeholder="What this flow does and how to use it."
61
+ rows="3"
62
+ />
63
+ </span>
64
+ </label>
65
+ <Slider text="How to trigger from external events?">
66
+ <div class="text-sm text-gray-600 border p-4">
67
+ There are 2 ways to trigger a flow based on external events:
68
+ <ul class="pt-4">
69
+ <li
70
+ >1. Send a webhook after each event: <a
71
+ on:click={(e) => {
72
+ e.preventDefault()
73
+ copyToClipboard(url)
74
+ }}
75
+ href={$page.url.protocol + '//' + url}
76
+ class="whitespace-nowrap text-ellipsis overflow-hidden mr-1"
77
+ >
78
+ {url}
79
+ <span class="text-gray-700 ml-2">
80
+ <Icon data={faClipboard} />
81
+ </span>
82
+ </a>
83
+ </li>
84
+ <li class="mt-2">
85
+ <div class="flex flex-row gap-2">
86
+ 2. Use a trigger script and schedule this flow to run as frequently as
87
+ needed and compare a state persisted in Windmill to the state of the
88
+ external system. If a difference is detected, then the rest of the flow is
89
+ triggered. Oftentimes, the second step of a flow is a for-loop that will
90
+ iterate over every elements. When using a trigger, a default schedule will
91
+ be created.
92
+ <img
93
+ class="shadow-lg border rounded"
94
+ alt="static button"
95
+ src="/trigger_button.png"
96
+ />
97
+ </div>
98
+ </li></ul
99
+ >
100
+ </div>
101
+ </Slider>
102
+ </div>
57
103
  </TabContent>
58
104
  <TabContent value="settings-schedule" class="p-4">
59
105
  <Alert type="info" title="Primary Schedule">
@@ -71,7 +117,7 @@ let topHeight = 0;
71
117
  them to the next step. <br /><br />Beware that the `./shared` folder is not preserved
72
118
  across suspends and sleeps.
73
119
  </Alert>
74
- <span class="my-2 text-sm font-bold">Shared Directoryr</span>
120
+ <span class="my-2 text-sm font-bold">Shared Directory</span>
75
121
  <Toggle
76
122
  bind:checked={$flowStore.value.same_worker}
77
123
  options={{
@@ -12,4 +12,5 @@ export type FlowState = Record<string, FlowModuleState>;
12
12
  * We also hold the data of the results of a test job, ran by the user.
13
13
  */
14
14
  export declare const flowStateStore: import("svelte/store").Writable<FlowState>;
15
+ export declare const testStepStore: import("svelte/store").Writable<Record<string, any>>;
15
16
  export declare function initFlowState(flow: Flow): Promise<void>;
@@ -7,6 +7,7 @@ import { emptyFlowModuleState } from './utils';
7
7
  * We also hold the data of the results of a test job, ran by the user.
8
8
  */
9
9
  export const flowStateStore = writable({});
10
+ export const testStepStore = writable({});
10
11
  export async function initFlowState(flow) {
11
12
  const modulesState = {};
12
13
  await mapFlowModules(flow.value.modules, modulesState);
@@ -10,7 +10,9 @@ import { Mutex } from 'async-mutex';
10
10
  export async function loadFlowModuleState(flowModule) {
11
11
  try {
12
12
  const { input_transforms, schema } = await loadSchemaFromModule(flowModule);
13
- if (flowModule.value.type == 'script' || flowModule.value.type == 'rawscript' || flowModule.value.type == 'flow') {
13
+ if (flowModule.value.type == 'script' ||
14
+ flowModule.value.type == 'rawscript' ||
15
+ flowModule.value.type == 'flow') {
14
16
  flowModule.value.input_transforms = input_transforms;
15
17
  }
16
18
  return { schema, previewResult: NEVER_TESTED_THIS_FAR };
@@ -115,7 +117,7 @@ export async function createFlow(id) {
115
117
  value: {
116
118
  type: 'flow',
117
119
  path: '',
118
- input_transforms: {},
120
+ input_transforms: {}
119
121
  },
120
122
  summary: ''
121
123
  };
@@ -1,5 +1,6 @@
1
1
  import type { Flow, FlowModule } from '../../gen';
2
2
  export type FlowMode = 'push' | 'pull';
3
+ export declare const importFlowStore: import("svelte/store").Writable<Flow | undefined>;
3
4
  export declare const flowStore: import("svelte/store").Writable<Flow>;
4
5
  export declare function dfs<T>(modules: FlowModule[], f: (x: FlowModule) => T): T[];
5
6
  export declare function initFlow(flow: Flow): Promise<void>;
@@ -2,6 +2,7 @@ import { sendUserToast } from '../../utils';
2
2
  import { get, writable, derived } from 'svelte/store';
3
3
  import { flowStateStore, initFlowState } from './flowState';
4
4
  import { numberToChars } from './utils';
5
+ export const importFlowStore = writable(undefined);
5
6
  export const flowStore = writable({
6
7
  summary: '',
7
8
  value: { modules: [] },
@@ -76,7 +76,7 @@ function removeBranch(index) {
76
76
  </div>
77
77
 
78
78
  <div>
79
- <FlowModuleSchemaMap bind:modules={branch.modules} />
79
+ <FlowModuleSchemaMap parentType="branchall" bind:modules={branch.modules} />
80
80
  </div>
81
81
  </div>
82
82
  {/each}
@@ -60,7 +60,7 @@ function removeBranch(index) {
60
60
  </span>
61
61
  </div>
62
62
  <div>
63
- <FlowModuleSchemaMap bind:modules={module.value.default} />
63
+ <FlowModuleSchemaMap parentType="branchone" bind:modules={module.value.default} />
64
64
  </div>
65
65
 
66
66
  {#each module.value.branches ?? [] as branch, branchIndex (branchIndex)}
@@ -99,7 +99,7 @@ function removeBranch(index) {
99
99
  </div>
100
100
 
101
101
  <div>
102
- <FlowModuleSchemaMap bind:modules={branch.modules} />
102
+ <FlowModuleSchemaMap parentType="branchone" bind:modules={branch.modules} />
103
103
  </div>
104
104
  </div>
105
105
  {/each}