windmill-components 1.70.0 → 1.77.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 (441) hide show
  1. package/assets/app.css +12 -1
  2. package/components/AppConnect.svelte +4 -3
  3. package/components/DisplayResult.svelte +28 -10
  4. package/components/Dropdown.svelte +14 -4
  5. package/components/FieldHeader.svelte +12 -8
  6. package/components/FlowBuilder.svelte +107 -39
  7. package/components/FlowBuilder.svelte.d.ts +5 -0
  8. package/components/FlowGraphViewer.svelte +6 -5
  9. package/components/FlowJobResult.svelte +3 -3
  10. package/components/FlowPreviewContent.svelte +3 -8
  11. package/components/FlowStatusViewer.svelte +21 -8
  12. package/components/FolderUsageInfo.svelte +16 -6
  13. package/components/FolderUsageInfo.svelte.d.ts +2 -0
  14. package/components/GroupEditor.svelte +8 -0
  15. package/components/InputTransformForm.svelte +13 -20
  16. package/components/InputTransformSchemaForm.svelte +103 -0
  17. package/components/InputTransformSchemaForm.svelte.d.ts +24 -0
  18. package/components/LogViewer.svelte +1 -1
  19. package/components/ModulePreview.svelte +3 -2
  20. package/components/Multiselect.svelte +1 -1
  21. package/components/PageHeader.svelte +1 -1
  22. package/components/Path.svelte +35 -12
  23. package/components/Popover.svelte +2 -13
  24. package/components/ResourcePicker.svelte +33 -14
  25. package/components/RunChart.svelte +24 -5
  26. package/components/RunForm.svelte +5 -6
  27. package/components/RunForm.svelte.d.ts +1 -0
  28. package/components/SchemaForm.svelte +59 -57
  29. package/components/SchemaForm.svelte.d.ts +0 -5
  30. package/components/ScriptBuilder.svelte +151 -135
  31. package/components/ScriptPicker.svelte +3 -0
  32. package/components/SettingSection.svelte +44 -0
  33. package/components/SettingSection.svelte.d.ts +21 -0
  34. package/components/SimpleEditor.svelte +4 -1
  35. package/components/SimpleEditor.svelte.d.ts +2 -0
  36. package/components/Slider.svelte +6 -1
  37. package/components/Slider.svelte.d.ts +1 -0
  38. package/components/TemplateEditor.svelte +1 -1
  39. package/components/TestJobLoader.svelte +2 -2
  40. package/components/Toggle.svelte +17 -4
  41. package/components/Toggle.svelte.d.ts +2 -0
  42. package/components/Tooltip.svelte +4 -2
  43. package/components/UserSettings.svelte +2 -0
  44. package/components/WhitelistIp.svelte +1 -3
  45. package/components/apps/components/buttons/AppButton.svelte +45 -23
  46. package/components/apps/components/buttons/AppButton.svelte.d.ts +2 -0
  47. package/components/apps/components/buttons/AppForm.svelte +18 -12
  48. package/components/apps/components/buttons/AppForm.svelte.d.ts +3 -0
  49. package/components/apps/components/buttons/AppFormButton.svelte +14 -10
  50. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +3 -0
  51. package/components/apps/components/display/AppBarChart.svelte +15 -7
  52. package/components/apps/components/display/AppBarChart.svelte.d.ts +3 -0
  53. package/components/apps/components/display/AppDisplayComponent.svelte +17 -12
  54. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +1 -0
  55. package/components/apps/components/display/AppHtml.svelte +18 -4
  56. package/components/apps/components/display/AppHtml.svelte.d.ts +3 -0
  57. package/components/apps/components/display/AppIcon.svelte +20 -8
  58. package/components/apps/components/display/AppIcon.svelte.d.ts +3 -0
  59. package/components/apps/components/display/AppImage.svelte +17 -10
  60. package/components/apps/components/display/AppImage.svelte.d.ts +3 -0
  61. package/components/apps/components/display/AppMap.svelte +214 -0
  62. package/components/apps/components/display/AppMap.svelte.d.ts +23 -0
  63. package/components/apps/components/display/AppPdf.svelte +304 -0
  64. package/components/apps/components/display/AppPdf.svelte.d.ts +24 -0
  65. package/components/apps/components/display/AppPieChart.svelte +15 -7
  66. package/components/apps/components/display/AppPieChart.svelte.d.ts +3 -0
  67. package/components/apps/components/display/AppScatterChart.svelte +12 -4
  68. package/components/apps/components/display/AppScatterChart.svelte.d.ts +3 -0
  69. package/components/apps/components/display/AppText.svelte +38 -32
  70. package/components/apps/components/display/AppText.svelte.d.ts +1 -0
  71. package/components/apps/components/display/AppTimeseries.svelte +12 -4
  72. package/components/apps/components/display/AppTimeseries.svelte.d.ts +3 -0
  73. package/components/apps/components/display/PlotlyHtml.svelte +8 -14
  74. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +1 -1
  75. package/components/apps/components/display/VegaLiteHtml.svelte +3 -8
  76. package/components/apps/components/display/VegaLiteHtml.svelte.d.ts +1 -0
  77. package/components/apps/components/display/index.d.ts +3 -0
  78. package/components/apps/components/display/index.js +3 -0
  79. package/components/apps/components/display/table/AppAggridTable.svelte +20 -8
  80. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
  81. package/components/apps/components/display/table/AppTable.svelte +69 -21
  82. package/components/apps/components/display/table/AppTable.svelte.d.ts +3 -1
  83. package/components/apps/components/display/table/AppTableFooter.svelte +8 -1
  84. package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +2 -0
  85. package/components/apps/components/helpers/AlignWrapper.svelte +13 -7
  86. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +3 -1
  87. package/components/apps/components/helpers/HiddenComponent.svelte +5 -1
  88. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +1 -0
  89. package/components/apps/components/helpers/InputValue.svelte +58 -52
  90. package/components/apps/components/helpers/InputValue.svelte.d.ts +4 -3
  91. package/components/apps/components/helpers/NonRunnableComponent.svelte +18 -3
  92. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -0
  93. package/components/apps/components/helpers/RefreshButton.svelte +3 -4
  94. package/components/apps/components/helpers/ResizeWrapper.svelte +24 -0
  95. package/components/apps/components/helpers/ResizeWrapper.svelte.d.ts +19 -0
  96. package/components/apps/components/helpers/RunnableComponent.svelte +126 -91
  97. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -1
  98. package/components/apps/components/helpers/RunnableWrapper.svelte +11 -5
  99. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +4 -1
  100. package/components/apps/components/helpers/eval.d.ts +5 -0
  101. package/components/apps/components/helpers/eval.js +57 -0
  102. package/components/apps/components/inputs/AppCheckbox.svelte +8 -2
  103. package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +3 -0
  104. package/components/apps/components/inputs/AppDateInput.svelte +25 -18
  105. package/components/apps/components/inputs/AppDateInput.svelte.d.ts +6 -1
  106. package/components/apps/components/inputs/AppFileInput.svelte +22 -14
  107. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +3 -0
  108. package/components/apps/components/inputs/AppMultiSelect.svelte +82 -0
  109. package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +27 -0
  110. package/components/apps/components/inputs/AppNumberInput.svelte +20 -16
  111. package/components/apps/components/inputs/AppNumberInput.svelte.d.ts +5 -0
  112. package/components/apps/components/inputs/AppRangeInput.svelte +55 -14
  113. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +3 -0
  114. package/components/apps/components/inputs/AppSelect.svelte +58 -21
  115. package/components/apps/components/inputs/AppSelect.svelte.d.ts +3 -0
  116. package/components/apps/components/inputs/AppSliderInputs.svelte +41 -9
  117. package/components/apps/components/inputs/AppSliderInputs.svelte.d.ts +3 -0
  118. package/components/apps/components/inputs/AppTextInput.svelte +53 -19
  119. package/components/apps/components/inputs/AppTextInput.svelte.d.ts +6 -0
  120. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +13 -3
  121. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +3 -0
  122. package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -0
  123. package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +1 -0
  124. package/components/apps/components/layout/AppContainer.svelte +20 -17
  125. package/components/apps/components/layout/AppContainer.svelte.d.ts +3 -0
  126. package/components/apps/components/layout/AppDivider.svelte +24 -4
  127. package/components/apps/components/layout/AppDivider.svelte.d.ts +3 -1
  128. package/components/apps/components/layout/AppDrawer.svelte +86 -0
  129. package/components/apps/components/layout/AppDrawer.svelte.d.ts +24 -0
  130. package/components/apps/components/layout/AppSplitpanes.svelte +83 -0
  131. package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +26 -0
  132. package/components/apps/components/layout/AppTabs.svelte +112 -40
  133. package/components/apps/components/layout/AppTabs.svelte.d.ts +4 -0
  134. package/components/apps/components/layout/index.d.ts +2 -0
  135. package/components/apps/components/layout/index.js +2 -0
  136. package/components/apps/editor/AppEditor.svelte +201 -132
  137. package/components/apps/editor/AppEditor.svelte.d.ts +3 -1
  138. package/components/apps/editor/AppEditorHeader.svelte +149 -66
  139. package/components/apps/editor/AppInputs.svelte +3 -3
  140. package/components/apps/editor/AppPreview.svelte +21 -7
  141. package/components/apps/editor/ComponentHeader.svelte +17 -4
  142. package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -0
  143. package/components/apps/editor/GridEditor.svelte +86 -70
  144. package/components/apps/editor/GridPanel.svelte +29 -0
  145. package/components/apps/editor/GridPanel.svelte.d.ts +18 -0
  146. package/components/apps/editor/RecomputeAllComponents.svelte +14 -6
  147. package/components/apps/editor/SettingsPanel.svelte +30 -27
  148. package/components/apps/editor/SubGridEditor.svelte +82 -50
  149. package/components/apps/editor/SubGridEditor.svelte.d.ts +8 -4
  150. package/components/apps/editor/appUtils.d.ts +22 -3
  151. package/components/apps/editor/appUtils.js +221 -47
  152. package/components/apps/editor/component/Component.svelte +281 -61
  153. package/components/apps/editor/component/Component.svelte.d.ts +3 -1
  154. package/components/apps/editor/component/ComponentNavigation.svelte +170 -0
  155. package/components/apps/editor/component/ComponentNavigation.svelte.d.ts +14 -0
  156. package/components/apps/editor/component/components.d.ts +15 -3
  157. package/components/apps/editor/component/components.js +409 -54
  158. package/components/apps/editor/component/default-codes.js +6 -6
  159. package/components/apps/editor/component/sets.js +11 -3
  160. package/components/apps/editor/componentsPanel/ComponentList.svelte +72 -29
  161. package/components/apps/editor/componentsPanel/CssProperty.svelte +59 -23
  162. package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +2 -1
  163. package/components/apps/editor/componentsPanel/CssSettings.svelte +56 -9
  164. package/components/apps/editor/componentsPanel/ListItem.svelte +23 -12
  165. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +2 -0
  166. package/components/apps/editor/componentsPanel/componentStaticValues.js +15 -2
  167. package/components/apps/editor/contextPanel/ComponentOutput.svelte +77 -0
  168. package/components/apps/editor/contextPanel/ComponentOutput.svelte.d.ts +21 -0
  169. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +10 -6
  170. package/components/apps/editor/contextPanel/ContextPanel.svelte +81 -91
  171. package/components/apps/editor/contextPanel/SubGridOutput.svelte +71 -0
  172. package/components/apps/editor/contextPanel/SubGridOutput.svelte.d.ts +19 -0
  173. package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte +38 -0
  174. package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte.d.ts +19 -0
  175. package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte +10 -0
  176. package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte.d.ts +16 -0
  177. package/components/apps/editor/contextPanel/components/MinMaxButton.svelte +25 -0
  178. package/components/apps/editor/contextPanel/components/MinMaxButton.svelte.d.ts +16 -0
  179. package/components/apps/editor/contextPanel/components/OutputHeader.svelte +78 -0
  180. package/components/apps/editor/contextPanel/components/OutputHeader.svelte.d.ts +26 -0
  181. package/components/apps/editor/contextPanel/components/TableActionOutput.svelte +19 -0
  182. package/components/apps/editor/contextPanel/components/TableActionOutput.svelte.d.ts +18 -0
  183. package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +14 -0
  184. package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte.d.ts +18 -0
  185. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +55 -13
  186. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
  187. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +126 -62
  188. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +5 -0
  189. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
  190. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +11 -5
  191. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
  192. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +26 -17
  193. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +95 -85
  194. package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -9
  195. package/components/apps/editor/inlineScriptsPanel/utils.js +19 -8
  196. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +10 -9
  197. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +21 -12
  198. package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +1 -1
  199. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +119 -79
  200. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +1 -0
  201. package/components/apps/editor/settingsPanel/GridPane.svelte +75 -0
  202. package/components/apps/editor/settingsPanel/GridPane.svelte.d.ts +20 -0
  203. package/components/apps/editor/settingsPanel/GridTab.svelte +9 -17
  204. package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +2 -0
  205. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
  206. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +1 -1
  207. package/components/apps/editor/settingsPanel/Recompute.svelte +2 -1
  208. package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +7 -1
  209. package/components/apps/editor/settingsPanel/TableActions.svelte +30 -2
  210. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +2 -2
  211. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +48 -0
  212. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +19 -0
  213. package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +2 -8
  214. package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +2 -2
  215. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +77 -41
  216. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +2 -0
  217. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +3 -3
  218. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +4 -1
  219. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +54 -6
  220. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +1 -0
  221. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +7 -9
  222. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +1 -1
  223. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +1 -0
  224. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +1 -0
  225. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +1 -1
  226. package/components/apps/inputType.d.ts +6 -5
  227. package/components/apps/rx.d.ts +6 -4
  228. package/components/apps/rx.js +36 -15
  229. package/components/apps/store.d.ts +6 -1
  230. package/components/apps/svelte-grid/Grid.svelte +171 -0
  231. package/components/apps/svelte-grid/Grid.svelte.d.ts +47 -0
  232. package/components/apps/svelte-grid/LICENSE +23 -0
  233. package/components/apps/svelte-grid/MoveResize.svelte +328 -0
  234. package/components/apps/svelte-grid/MoveResize.svelte.d.ts +46 -0
  235. package/components/apps/svelte-grid/types.d.ts +25 -0
  236. package/components/apps/svelte-grid/utils/container.d.ts +1 -0
  237. package/components/apps/svelte-grid/utils/container.js +4 -0
  238. package/components/apps/svelte-grid/utils/helper.d.ts +14 -0
  239. package/components/apps/svelte-grid/utils/helper.js +36 -0
  240. package/components/apps/svelte-grid/utils/item.d.ts +14 -0
  241. package/components/apps/svelte-grid/utils/item.js +192 -0
  242. package/components/apps/svelte-grid/utils/matrix.d.ts +6 -0
  243. package/components/apps/svelte-grid/utils/matrix.js +53 -0
  244. package/components/apps/svelte-grid/utils/other.d.ts +3 -0
  245. package/components/apps/svelte-grid/utils/other.js +30 -0
  246. package/components/apps/types.d.ts +21 -8
  247. package/components/apps/utils.d.ts +3 -3
  248. package/components/apps/utils.js +34 -56
  249. package/components/common/CloseButton.svelte +18 -0
  250. package/components/common/CloseButton.svelte.d.ts +27 -0
  251. package/components/common/badge/Badge.svelte +6 -1
  252. package/components/common/badge/Badge.svelte.d.ts +1 -0
  253. package/components/common/button/ButtonPopup.svelte +2 -0
  254. package/components/common/button/ButtonPopup.svelte.d.ts +1 -0
  255. package/components/common/button/UndoRedo.svelte +32 -0
  256. package/components/common/button/UndoRedo.svelte.d.ts +20 -0
  257. package/components/common/drawer/Drawer.svelte +10 -4
  258. package/components/common/drawer/Drawer.svelte.d.ts +3 -1
  259. package/components/common/drawer/DrawerContent.svelte +2 -7
  260. package/components/common/fileInput/FileInput.svelte +47 -21
  261. package/components/common/fileInput/FileInput.svelte.d.ts +3 -1
  262. package/components/common/fileInput/model.d.ts +1 -0
  263. package/components/common/fileInput/model.js +1 -0
  264. package/components/common/index.d.ts +1 -0
  265. package/components/common/index.js +1 -0
  266. package/components/common/languageIcons/JavaScript.svelte +11 -0
  267. package/components/common/languageIcons/JavaScript.svelte.d.ts +25 -0
  268. package/components/common/languageIcons/LanguageIcon.svelte +3 -1
  269. package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
  270. package/components/common/menu/Menu.svelte +3 -2
  271. package/components/common/menu/Menu.svelte.d.ts +2 -1
  272. package/components/common/modal/Modal.svelte +9 -4
  273. package/components/common/modal/Modal.svelte.d.ts +2 -0
  274. package/components/common/popup/Popup.svelte +2 -1
  275. package/components/common/popup/Popup.svelte.d.ts +9 -0
  276. package/components/common/table/AppRow.svelte +14 -8
  277. package/components/common/table/AppRow.svelte.d.ts +1 -0
  278. package/components/common/table/FlowRow.svelte +22 -12
  279. package/components/common/table/FlowRow.svelte.d.ts +1 -0
  280. package/components/common/table/ScriptRow.svelte +43 -14
  281. package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  282. package/components/common/tabs/Tab.svelte +13 -5
  283. package/components/common/tabs/Tab.svelte.d.ts +6 -1
  284. package/components/common/tabs/Tabs.svelte +8 -6
  285. package/components/common/tabs/Tabs.svelte.d.ts +3 -1
  286. package/components/flows/FlowEditor.svelte +6 -4
  287. package/components/flows/common/FlowCardHeader.svelte +4 -1
  288. package/components/flows/content/BranchPredicateEditor.svelte +3 -4
  289. package/components/flows/content/CapturePayload.svelte +1 -2
  290. package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
  291. package/components/flows/content/FlowConstants.svelte +7 -13
  292. package/components/flows/content/FlowEditorPanel.svelte +4 -3
  293. package/components/flows/content/FlowFailureModule.svelte +2 -1
  294. package/components/flows/content/FlowInput.svelte +4 -2
  295. package/components/flows/content/FlowLoop.svelte +3 -4
  296. package/components/flows/content/FlowModuleComponent.svelte +23 -11
  297. package/components/flows/content/FlowModuleEarlyStop.svelte +3 -1
  298. package/components/flows/content/FlowModuleHeader.svelte +26 -3
  299. package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
  300. package/components/flows/content/FlowModuleSleep.svelte +2 -2
  301. package/components/flows/content/FlowModuleWrapper.svelte +2 -8
  302. package/components/flows/content/FlowSchedules.svelte +1 -2
  303. package/components/flows/content/FlowSettings.svelte +17 -37
  304. package/components/flows/content/ScriptEditorDrawer.svelte +98 -0
  305. package/components/flows/content/ScriptEditorDrawer.svelte.d.ts +19 -0
  306. package/components/flows/flowState.d.ts +2 -3
  307. package/components/flows/flowState.js +1 -4
  308. package/components/flows/flowStateUtils.d.ts +7 -6
  309. package/components/flows/flowStateUtils.js +5 -9
  310. package/components/flows/flowStore.d.ts +5 -4
  311. package/components/flows/flowStore.js +5 -17
  312. package/components/flows/header/FlowImportExportMenu.svelte +2 -1
  313. package/components/flows/map/FlowConstantsItem.svelte +2 -2
  314. package/components/flows/map/FlowErrorHandlerItem.svelte +12 -13
  315. package/components/flows/map/FlowInputsItem.svelte +2 -3
  316. package/components/flows/map/FlowModuleSchemaItem.svelte +88 -91
  317. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +3 -3
  318. package/components/flows/map/FlowModuleSchemaMap.svelte +164 -138
  319. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
  320. package/components/flows/map/FlowSettingsItem.svelte +5 -4
  321. package/components/flows/map/InsertModuleButton.svelte +12 -10
  322. package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -0
  323. package/components/flows/map/MapItem.svelte +176 -103
  324. package/components/flows/map/MapItem.svelte.d.ts +20 -2
  325. package/components/flows/map/VirtualItem.svelte +129 -0
  326. package/components/flows/map/VirtualItem.svelte.d.ts +44 -0
  327. package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
  328. package/components/flows/pickers/WorkspaceScriptPicker.svelte +1 -1
  329. package/components/flows/previousResults.d.ts +1 -1
  330. package/components/flows/previousResults.js +32 -17
  331. package/components/flows/types.d.ts +13 -1
  332. package/components/flows/utils.js +1 -1
  333. package/components/graph/FlowGraph.svelte +227 -167
  334. package/components/graph/FlowGraph.svelte.d.ts +14 -1
  335. package/components/graph/model.d.ts +6 -36
  336. package/components/graph/model.js +1 -1
  337. package/components/graph/svelvet/LICENSE +21 -0
  338. package/components/graph/svelvet/collapsible/controllers/util.d.ts +15 -0
  339. package/components/graph/svelvet/collapsible/controllers/util.js +144 -0
  340. package/components/graph/svelvet/collapsible/models/Collapsible.d.ts +17 -0
  341. package/components/graph/svelvet/collapsible/models/Collapsible.js +25 -0
  342. package/components/graph/svelvet/collapsible/types/types.d.ts +8 -0
  343. package/components/graph/svelvet/collapsible/types/types.js +1 -0
  344. package/components/graph/svelvet/container/README.md +7 -0
  345. package/components/graph/svelvet/container/controllers/middleware.d.ts +18 -0
  346. package/components/graph/svelvet/container/controllers/middleware.js +101 -0
  347. package/components/graph/svelvet/container/views/GraphView.svelte +252 -0
  348. package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +25 -0
  349. package/components/graph/svelvet/container/views/Svelvet.svelte +131 -0
  350. package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +41 -0
  351. package/components/graph/svelvet/customCss/controllers/getCss.d.ts +2 -0
  352. package/components/graph/svelvet/customCss/controllers/getCss.js +57 -0
  353. package/components/graph/svelvet/d3/controllers/d3.d.ts +5 -0
  354. package/components/graph/svelvet/d3/controllers/d3.js +59 -0
  355. package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +4 -0
  356. package/components/graph/svelvet/edges/controllers/anchorCbDev.js +92 -0
  357. package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +57 -0
  358. package/components/graph/svelvet/edges/controllers/anchorCbUser.js +73 -0
  359. package/components/graph/svelvet/edges/controllers/util.d.ts +37 -0
  360. package/components/graph/svelvet/edges/controllers/util.js +72 -0
  361. package/components/graph/svelvet/edges/models/Anchor.d.ts +48 -0
  362. package/components/graph/svelvet/edges/models/Anchor.js +122 -0
  363. package/components/graph/svelvet/edges/models/Edge.d.ts +47 -0
  364. package/components/graph/svelvet/edges/models/Edge.js +107 -0
  365. package/components/graph/svelvet/edges/types/types.d.ts +18 -0
  366. package/components/graph/svelvet/edges/types/types.js +1 -0
  367. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +105 -0
  368. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +18 -0
  369. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte +12 -0
  370. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte.d.ts +17 -0
  371. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +43 -0
  372. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +17 -0
  373. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +137 -0
  374. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +17 -0
  375. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +176 -0
  376. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +60 -0
  377. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +8 -0
  378. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +25 -0
  379. package/components/graph/svelvet/edges/views/Edges/types.d.ts +52 -0
  380. package/components/graph/svelvet/edges/views/Edges/types.js +1 -0
  381. package/components/graph/svelvet/edges/views/Edges/utils.d.ts +33 -0
  382. package/components/graph/svelvet/edges/views/Edges/utils.js +31 -0
  383. package/components/graph/svelvet/editEdges/views/EditEdge.svelte +151 -0
  384. package/components/graph/svelvet/editEdges/views/EditEdge.svelte.d.ts +20 -0
  385. package/components/graph/svelvet/nodes/controllers/util.d.ts +9 -0
  386. package/components/graph/svelvet/nodes/controllers/util.js +13 -0
  387. package/components/graph/svelvet/nodes/models/Node.d.ts +78 -0
  388. package/components/graph/svelvet/nodes/models/Node.js +195 -0
  389. package/components/graph/svelvet/nodes/views/EditNode.svelte +147 -0
  390. package/components/graph/svelvet/nodes/views/EditNode.svelte.d.ts +33 -0
  391. package/components/graph/svelvet/nodes/views/Node.svelte +85 -0
  392. package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +22 -0
  393. package/components/graph/svelvet/resizableNodes/controllers/util.d.ts +11 -0
  394. package/components/graph/svelvet/resizableNodes/controllers/util.js +24 -0
  395. package/components/graph/svelvet/resizableNodes/models/ResizeNode.d.ts +33 -0
  396. package/components/graph/svelvet/resizableNodes/models/ResizeNode.js +71 -0
  397. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte +81 -0
  398. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte.d.ts +20 -0
  399. package/components/graph/svelvet/store/controllers/storeApi.d.ts +32 -0
  400. package/components/graph/svelvet/store/controllers/storeApi.js +111 -0
  401. package/components/graph/svelvet/store/controllers/userApi.d.ts +3 -0
  402. package/components/graph/svelvet/store/controllers/userApi.js +18 -0
  403. package/components/graph/svelvet/store/controllers/util.d.ts +31 -0
  404. package/components/graph/svelvet/store/controllers/util.js +180 -0
  405. package/components/graph/svelvet/store/models/store.d.ts +12 -0
  406. package/components/graph/svelvet/store/models/store.js +9 -0
  407. package/components/graph/svelvet/store/types/types.d.ts +134 -0
  408. package/components/graph/svelvet/store/types/types.js +1 -0
  409. package/components/graph/svelvet/types/README.md +3 -0
  410. package/components/graph/svelvet/types/index.d.ts +2 -0
  411. package/components/graph/svelvet/types/index.js +1 -0
  412. package/components/graph/svelvet/types/types.d.ts +49 -0
  413. package/components/graph/svelvet/types/types.js +18 -0
  414. package/components/graph/util.js +2 -2
  415. package/components/home/ItemsList.svelte +53 -5
  416. package/components/home/ItemsList.svelte.d.ts +1 -0
  417. package/components/home/ListFilters.svelte +7 -2
  418. package/components/jobs/JobDetail.svelte +12 -1
  419. package/components/propertyPicker/ObjectViewer.svelte +6 -4
  420. package/components/sidebar/SidebarContent.svelte +2 -2
  421. package/consts.d.ts +1 -0
  422. package/consts.js +1 -0
  423. package/defaults.d.ts +4 -0
  424. package/defaults.js +4 -0
  425. package/history.d.ts +9 -0
  426. package/history.js +63 -0
  427. package/package.json +87 -9
  428. package/script_helpers.d.ts +1 -1
  429. package/script_helpers.js +1 -0
  430. package/scripts.d.ts +1 -1
  431. package/scripts.js +8 -1
  432. package/utils.d.ts +9 -4
  433. package/utils.js +43 -8
  434. package/components/apps/editor/TablePanel.svelte +0 -19
  435. package/components/apps/editor/TablePanel.svelte.d.ts +0 -17
  436. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +0 -85
  437. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +0 -18
  438. package/components/flows/map/FlowBranchAllMap.svelte +0 -100
  439. package/components/flows/map/FlowBranchAllMap.svelte.d.ts +0 -17
  440. package/components/flows/map/FlowBranchOneMap.svelte +0 -124
  441. package/components/flows/map/FlowBranchOneMap.svelte.d.ts +0 -17
@@ -2,28 +2,21 @@
2
2
  import { workspaceStore } from '../stores';
3
3
  import { allTrue } from '../utils';
4
4
  import { faPlus } from '@fortawesome/free-solid-svg-icons';
5
- import { slide } from 'svelte/transition';
6
5
  import ArgInput from './ArgInput.svelte';
7
6
  import { Button } from './common';
8
- import InputTransformForm from './InputTransformForm.svelte';
9
7
  import ItemPicker from './ItemPicker.svelte';
10
8
  import VariableEditor from './VariableEditor.svelte';
11
- export let inputTransform = false;
12
9
  export let schema;
13
10
  export let args = {};
14
11
  export let disabledArgs = [];
15
12
  export let disabled = false;
16
13
  export let editableSchema = false;
17
14
  export let isValid = true;
18
- export let extraLib = 'missing extraLib';
19
15
  export let autofocus = false;
20
- export let previousModuleId = undefined;
21
16
  export let shouldHideNoInputs = false;
22
17
  export let compact = false;
23
18
  export let password = undefined;
24
19
  export let noVariablePicker = false;
25
- export let filter = undefined;
26
- export let noDynamicToggle = false;
27
20
  export let flexWrap = false;
28
21
  export let noDelete = false;
29
22
  let clazz = '';
@@ -34,12 +27,13 @@ $: if (args == undefined || typeof args !== 'object') {
34
27
  args = {};
35
28
  }
36
29
  function removeExtraKey() {
30
+ const nargs = {};
37
31
  Object.keys(args ?? {}).forEach((key) => {
38
- if (!keys.includes(key)) {
39
- delete args[key];
40
- delete inputCheck[key];
32
+ if (keys.includes(key)) {
33
+ nargs[key] = args[key];
41
34
  }
42
35
  });
36
+ args = nargs;
43
37
  }
44
38
  let pickForField;
45
39
  let itemPicker = undefined;
@@ -59,48 +53,60 @@ $: {
59
53
  <div class="w-full {clazz} {flexWrap ? 'flex flex-row flex-wrap gap-x-6 gap-y-2' : ''}">
60
54
  {#if keys.length > 0}
61
55
  {#each keys as argName, i (argName)}
62
- {#if !filter || filter.includes(argName)}
63
- <div transition:slide|local>
64
- {#if inputTransform}
65
- <InputTransformForm
66
- {previousModuleId}
67
- bind:arg={args[argName]}
68
- bind:schema
69
- bind:argName
70
- bind:inputCheck={inputCheck[argName]}
71
- bind:extraLib
72
- {variableEditor}
73
- {itemPicker}
74
- bind:pickForField
75
- {noDynamicToggle}
76
- />
77
- {:else if typeof args == 'object'}
78
- <ArgInput
79
- autofocus={i == 0 && autofocus}
80
- label={argName}
81
- bind:description={schema.properties[argName].description}
82
- bind:value={args[argName]}
83
- type={schema.properties[argName].type}
84
- required={schema.required.includes(argName)}
85
- bind:pattern={schema.properties[argName].pattern}
86
- bind:valid={inputCheck[argName]}
87
- defaultValue={schema.properties[argName].default}
88
- bind:enum_={schema.properties[argName].enum}
89
- bind:format={schema.properties[argName].format}
90
- contentEncoding={schema.properties[argName].contentEncoding}
91
- properties={schema.properties[argName].properties}
92
- bind:itemsType={schema.properties[argName].items}
93
- disabled={disabledArgs.includes(argName) || disabled}
94
- {editableSchema}
95
- {compact}
96
- password={argName == password}
97
- {variableEditor}
98
- {itemPicker}
99
- bind:pickForField
100
- bind:extra={schema.properties[argName]}
101
- />
102
- {:else}
103
- Expected argument to be an object, got {JSON.stringify(args)} instead
56
+ {#if Object.keys(schema.properties ?? {}).includes(argName)}
57
+ <div>
58
+ {#if typeof args == 'object' && schema?.properties[argName]}
59
+ {#if editableSchema}
60
+ <ArgInput
61
+ autofocus={i == 0 && autofocus}
62
+ label={argName}
63
+ bind:description={schema.properties[argName].description}
64
+ bind:value={args[argName]}
65
+ type={schema.properties[argName].type}
66
+ required={schema.required.includes(argName)}
67
+ bind:pattern={schema.properties[argName].pattern}
68
+ bind:valid={inputCheck[argName]}
69
+ defaultValue={schema.properties[argName].default}
70
+ bind:enum_={schema.properties[argName].enum}
71
+ bind:format={schema.properties[argName].format}
72
+ contentEncoding={schema.properties[argName].contentEncoding}
73
+ properties={schema.properties[argName].properties}
74
+ bind:itemsType={schema.properties[argName].items}
75
+ disabled={disabledArgs.includes(argName) || disabled}
76
+ {editableSchema}
77
+ {compact}
78
+ password={argName == password}
79
+ {variableEditor}
80
+ {itemPicker}
81
+ bind:pickForField
82
+ bind:extra={schema.properties[argName]}
83
+ />
84
+ {:else}
85
+ <ArgInput
86
+ autofocus={i == 0 && autofocus}
87
+ label={argName}
88
+ description={schema.properties[argName].description}
89
+ bind:value={args[argName]}
90
+ type={schema.properties[argName].type}
91
+ required={schema.required.includes(argName)}
92
+ pattern={schema.properties[argName].pattern}
93
+ bind:valid={inputCheck[argName]}
94
+ defaultValue={schema.properties[argName].default}
95
+ enum_={schema.properties[argName].enum}
96
+ format={schema.properties[argName].format}
97
+ contentEncoding={schema.properties[argName].contentEncoding}
98
+ properties={schema.properties[argName].properties}
99
+ itemsType={schema.properties[argName].items}
100
+ disabled={disabledArgs.includes(argName) || disabled}
101
+ {editableSchema}
102
+ {compact}
103
+ password={argName == password}
104
+ {variableEditor}
105
+ {itemPicker}
106
+ bind:pickForField
107
+ extra={schema.properties[argName]}
108
+ />
109
+ {/if}
104
110
  {/if}
105
111
  </div>
106
112
  {/if}
@@ -115,11 +121,7 @@ $: {
115
121
  bind:this={itemPicker}
116
122
  pickCallback={(path, _) => {
117
123
  if (pickForField) {
118
- if (inputTransform) {
119
- args[pickForField].value = '$var:' + path
120
- } else {
121
- args[pickForField] = '$var:' + path
122
- }
124
+ args[pickForField] = '$var:' + path
123
125
  }
124
126
  }}
125
127
  itemName="Variable"
@@ -2,22 +2,17 @@ import { SvelteComponentTyped } from "svelte";
2
2
  import type { Schema } from '../common';
3
3
  declare const __propDef: {
4
4
  props: {
5
- inputTransform?: boolean | undefined;
6
5
  schema: Schema;
7
6
  args?: Record<string, any> | undefined;
8
7
  disabledArgs?: string[] | undefined;
9
8
  disabled?: boolean | undefined;
10
9
  editableSchema?: boolean | undefined;
11
10
  isValid?: boolean | undefined;
12
- extraLib?: string | undefined;
13
11
  autofocus?: boolean | undefined;
14
- previousModuleId?: string | undefined;
15
12
  shouldHideNoInputs?: boolean | undefined;
16
13
  compact?: boolean | undefined;
17
14
  password?: string | undefined;
18
15
  noVariablePicker?: boolean | undefined;
19
- filter?: string[] | undefined;
20
- noDynamicToggle?: boolean | undefined;
21
16
  flexWrap?: boolean | undefined;
22
17
  noDelete?: boolean | undefined;
23
18
  class?: string | undefined;
@@ -2,20 +2,20 @@
2
2
  import { goto } from '$app/navigation';
3
3
  import { page } from '$app/stores';
4
4
  import { inferArgs } from '../infer';
5
- import { initialCode, isInitialCode } from '../script_helpers';
5
+ import { initialCode } from '../script_helpers';
6
6
  import { userStore, workspaceStore } from '../stores';
7
7
  import { emptySchema, encodeState, sendUserToast, setQueryWithoutLoad } from '../utils';
8
8
  import Path from './Path.svelte';
9
- import RadioButton from './RadioButton.svelte';
10
9
  import ScriptEditor from './ScriptEditor.svelte';
11
10
  import ScriptSchema from './ScriptSchema.svelte';
12
11
  import CenteredPage from './CenteredPage.svelte';
13
- import UnsavedConfirmationModal from './common/confirmationModal/UnsavedConfirmationModal.svelte';
14
12
  import { dirtyStore } from './common/confirmationModal/dirtyStore';
15
- import { Button, Kbd } from './common';
16
- import { faChevronDown, faChevronUp, faPen, faSave } from '@fortawesome/free-solid-svg-icons';
13
+ import { Button, ButtonPopup, ButtonPopupItem, Kbd } from './common';
14
+ import { faPen, faSave } from '@fortawesome/free-solid-svg-icons';
17
15
  import Breadcrumb from './common/breadcrumb/Breadcrumb.svelte';
18
16
  import LanguageIcon from './common/languageIcons/LanguageIcon.svelte';
17
+ import Tooltip from './Tooltip.svelte';
18
+ import SettingSection from './SettingSection.svelte';
19
19
  export let script;
20
20
  export let initialPath = '';
21
21
  export let template = 'script';
@@ -27,11 +27,32 @@ const langs = [
27
27
  ['Go', Script.language.GO],
28
28
  ['Bash', Script.language.BASH]
29
29
  ];
30
- let viewScriptKind = script.kind !== Script.kind.SCRIPT;
30
+ const scriptKindOptions = [
31
+ {
32
+ value: Script.kind.SCRIPT,
33
+ title: 'Action'
34
+ },
35
+ {
36
+ value: Script.kind.TRIGGER,
37
+ title: 'Trigger',
38
+ desc: 'First module of flows to trigger them based on external changes. These kind of scripts are usually running on a schedule to periodically look for changes.'
39
+ },
40
+ {
41
+ value: Script.kind.APPROVAL,
42
+ title: 'Approval',
43
+ desc: 'Send notifications externally to ask for approval to continue a flow.'
44
+ },
45
+ {
46
+ value: Script.kind.FAILURE,
47
+ title: 'Error Handler',
48
+ desc: 'Handle errors in flows after all retry attempts have been exhausted.'
49
+ }
50
+ ];
31
51
  let pathError = '';
32
52
  let summaryC = undefined;
33
53
  let pathC = undefined;
34
- $: setQueryWithoutLoad($page.url, 'state', encodeState(script));
54
+ let loadingSave = false;
55
+ $: setQueryWithoutLoad($page.url, [{ key: 'state', value: encodeState(script) }]);
35
56
  $: step = Number($page.url.searchParams.get('step')) || 1;
36
57
  if (script.content == '') {
37
58
  initContent(script.language, script.kind, template);
@@ -39,7 +60,8 @@ if (script.content == '') {
39
60
  function initContent(language, kind, template) {
40
61
  script.content = initialCode(language, kind, template);
41
62
  }
42
- async function editScript() {
63
+ async function editScript(leave) {
64
+ loadingSave = true;
43
65
  try {
44
66
  $dirtyStore = false;
45
67
  localStorage.removeItem(script.path);
@@ -64,13 +86,19 @@ async function editScript() {
64
86
  kind: script.kind
65
87
  }
66
88
  });
67
- sendUserToast(`New script created at hash ${newHash}`);
68
- history.replaceState(history.state, '', `/scripts/edit/${newHash}?step=2`);
69
- goto(`/scripts/get/${newHash}?workspace_id=${$workspaceStore}`);
89
+ if (leave) {
90
+ history.replaceState(history.state, '', `/scripts/edit/${newHash}?step=2`);
91
+ goto(`/scripts/get/${newHash}?workspace_id=${$workspaceStore}`);
92
+ }
93
+ else {
94
+ await goto(`/scripts/edit/${newHash}?step=2`);
95
+ script.hash = newHash;
96
+ }
70
97
  }
71
98
  catch (error) {
72
- sendUserToast(`Impossible to save the script: ${error.body}`, true);
99
+ sendUserToast(`Impossible to save the script: ${error.body || error.message}`, true);
73
100
  }
101
+ loadingSave = false;
74
102
  }
75
103
  async function changeStep(step) {
76
104
  if (step > 1) {
@@ -92,10 +120,7 @@ function onKeyDown(event) {
92
120
  }
93
121
  </script>
94
122
 
95
- <svelte:window on:keydown={onKeyDown} />
96
-
97
123
  {#if !$userStore?.operator}
98
- <UnsavedConfirmationModal />
99
124
  <div class="flex flex-col h-screen">
100
125
  <!-- Nav between steps-->
101
126
  <div class="flex flex-col w-full px-2 py-1 border-b shadow-sm">
@@ -161,14 +186,24 @@ function onKeyDown(event) {
161
186
  >
162
187
  Next {#if step == 1}<Kbd>Enter</Kbd>{/if}
163
188
  </Button>
164
- <Button
189
+ <ButtonPopup
190
+ loading={loadingSave}
165
191
  size="sm"
166
192
  variant={step == 1 ? 'border' : 'contained'}
167
193
  disabled={step === 1 && pathError !== ''}
168
- btnClasses={step == 1 && initialPath == '' ? 'invisible' : ''}
169
194
  startIcon={{ icon: faSave }}
170
- on:click={editScript}>Save</Button
195
+ on:click={() => editScript(false)}
171
196
  >
197
+ <svelte:fragment slot="main">Save</svelte:fragment>
198
+ <ButtonPopupItem on:click={() => editScript(true)}>Save and exit</ButtonPopupItem>
199
+ {#if initialPath != ''}
200
+ <ButtonPopupItem
201
+ on:click={() => {
202
+ window.open(`/scripts/add?template=${initialPath}`)
203
+ }}>Fork</ButtonPopupItem
204
+ >
205
+ {/if}
206
+ </ButtonPopup>
172
207
  </div>
173
208
  </div>
174
209
  </div>
@@ -176,132 +211,111 @@ function onKeyDown(event) {
176
211
  <!-- metadata -->
177
212
  {#if step === 1}
178
213
  <CenteredPage>
179
- <h2 class="border-b pb-1 mt-8 mb-2">Path</h2>
180
- <Path
181
- bind:this={pathC}
182
- bind:error={pathError}
183
- bind:path={script.path}
184
- {initialPath}
185
- on:enter={() => changeStep(2)}
186
- namePlaceholder="script"
187
- kind="script"
188
- />
189
- <h2 class="border-b pb-1 mt-12 mb-4">Summary</h2>
190
- <input
191
- type="text"
192
- bind:this={summaryC}
193
- bind:value={script.summary}
194
- placeholder="Short summary to be displayed when listed"
195
- />
196
-
197
- <h2 class="border-b pb-1 mt-12 mb-6">Language</h2>
198
- {#if lockedLanguage}
199
- <div class="text-sm text-gray-600 italic mb-2">
200
- As a forked script, the language '{script.language}' cannot be modified.
201
- </div>
202
- {/if}
203
- <div class="flex flex-row gap-2 flex-wrap">
204
- {#each langs as [label, lang]}
205
- {@const isPicked = script.language == lang && template == 'script'}
214
+ <SettingSection title="Path" element="h2">
215
+ <Path
216
+ bind:this={pathC}
217
+ bind:error={pathError}
218
+ bind:path={script.path}
219
+ {initialPath}
220
+ on:enter={() => changeStep(2)}
221
+ namePlaceholder="script"
222
+ kind="script"
223
+ />
224
+ </SettingSection>
225
+ <SettingSection title="Summary" element="h2">
226
+ <input
227
+ type="text"
228
+ bind:this={summaryC}
229
+ bind:value={script.summary}
230
+ placeholder="Short summary to be displayed when listed"
231
+ />
232
+ </SettingSection>
233
+ <SettingSection title="Language" element="h2">
234
+ {#if lockedLanguage}
235
+ <div class="text-sm text-gray-600 italic mb-2">
236
+ As a forked script, the language '{script.language}' cannot be modified.
237
+ </div>
238
+ {/if}
239
+ <div class="flex flex-row gap-2 flex-wrap">
240
+ {#each langs as [label, lang]}
241
+ {@const isPicked = script.language == lang && template == 'script'}
242
+ <Button
243
+ size="sm"
244
+ variant="border"
245
+ color={isPicked ? 'blue' : 'dark'}
246
+ btnClasses={isPicked ? '!border-2 !bg-blue-50/75' : 'm-[1px]'}
247
+ on:click={() => {
248
+ script.language = lang
249
+ template = 'script'
250
+ initContent(lang, script.kind, template)
251
+ }}
252
+ disabled={lockedLanguage}
253
+ >
254
+ <LanguageIcon {lang} />
255
+ <span class="ml-2 py-2">{label}</span>
256
+ </Button>
257
+ {/each}
206
258
  <Button
207
259
  size="sm"
208
260
  variant="border"
209
- color={isPicked ? 'blue' : 'dark'}
210
- btnClasses={isPicked ? '!border-2 !bg-blue-50/75' : 'm-[1px]'}
261
+ color={template == 'pgsql' ? 'blue' : 'dark'}
262
+ btnClasses={template == 'pgsql' ? '!border-2 !bg-blue-50/75' : 'm-[1px]'}
263
+ disabled={lockedLanguage}
211
264
  on:click={() => {
212
- script.language = lang
213
- template = 'script'
214
- initContent(lang, script.kind, template)
265
+ script.language = Script.language.DENO
266
+ template = 'pgsql'
267
+ initContent(script.language, script.kind, template)
215
268
  }}
216
- disabled={lockedLanguage}
217
269
  >
218
- <LanguageIcon {lang} /><span class="ml-2 py-4">{label}</span>
270
+ <LanguageIcon lang="pgsql" /><span class="ml-2 py-2">PostgreSQL</span>
219
271
  </Button>
220
- {/each}
221
- <Button
222
- size="sm"
223
- variant="border"
224
- color={template == 'pgsql' ? 'blue' : 'dark'}
225
- btnClasses={template == 'pgsql' ? '!border-2 !bg-blue-50/75' : 'm-[1px]'}
226
- disabled={lockedLanguage}
227
- on:click={() => {
228
- script.language = Script.language.DENO
229
- template = 'pgsql'
230
- initContent(script.language, script.kind, template)
231
- }}
232
- >
233
- <LanguageIcon lang="pgsql" /><span class="ml-2 py-4">PostgreSQL</span>
234
- </Button>
235
- <!-- <Button
236
- size="sm"
237
- variant="border"
238
- color={template == 'mysql' ? 'blue' : 'dark'}
239
- btnClasses={template == 'mysql' ? '!border-2 !bg-blue-50/75' : 'm-[1px]'}
240
- on:click={() => {
241
- script.language = Script.language.DENO
242
- template = 'mysql'
243
- initContent(script.language, script.kind, template)
244
- }}
245
- >
246
- <LanguageIcon lang="mysql" /><span class="ml-2 py-4">MySQL</span>
247
- </Button> -->
248
- </div>
249
- <div class="mt-16 mb-4">
250
- <Button
251
- color="light"
252
- size="sm"
253
- endIcon={{ icon: viewScriptKind ? faChevronUp : faChevronDown }}
254
- on:click={() => (viewScriptKind = !viewScriptKind)}
255
- >
256
- Tag this script as having a specific purpose inside flows
257
- </Button>
258
- </div>
259
- {#if viewScriptKind}
260
- <div class="max-w-lg">
261
- <RadioButton
262
- label="Script Type"
263
- options={[
264
- ['Action', Script.kind.SCRIPT],
265
- [
266
- {
267
- title: 'Trigger',
268
- desc: `First module of flows to trigger them based on watching changes external periodically using an internal state`
269
- },
270
- Script.kind.TRIGGER
271
- ],
272
- [
273
- {
274
- title: 'Approval',
275
- desc: `Send notification externally to ask for approval to continue a flow`
276
- },
277
- Script.kind.APPROVAL
278
- ],
279
- [
280
- {
281
- title: 'Error Handler',
282
- desc: `Handle errors for flows after all retries attempts have been exhausted`
283
- },
284
- Script.kind.FAILURE
285
- ]
286
-
287
- // ['Command Handler', Script.kind.COMMAND]
288
- ]}
289
- on:change={(e) => {
290
- if (isInitialCode(script.content)) {
291
- template = 'script'
292
- initContent(script.language, e.detail, template)
293
- }
272
+ <!-- <Button
273
+ size="sm"
274
+ variant="border"
275
+ color={template == 'mysql' ? 'blue' : 'dark'}
276
+ btnClasses={template == 'mysql' ? '!border-2 !bg-blue-50/75' : 'm-[1px]'}
277
+ on:click={() => {
278
+ script.language = Script.language.DENO
279
+ template = 'mysql'
280
+ initContent(script.language, script.kind, template)
294
281
  }}
295
- bind:value={script.kind}
296
- />
282
+ >
283
+ <LanguageIcon lang="mysql" /><span class="ml-2 py-2">MySQL</span>
284
+ </Button> -->
297
285
  </div>
298
- {/if}
299
- <!-- <div class="ml-3">
300
- <Toggle
301
- bind:checked={script.is_template}
302
- options={{ right: 'Save as a workspace template' }}
303
- />
304
- </div> -->
286
+ </SettingSection>
287
+ <SettingSection
288
+ title="Script kind"
289
+ element="h3"
290
+ tooltip="Tag this script as having a specific purpose inside flows. If it won't be used in flows,
291
+ you don't have to worry about this."
292
+ accordion
293
+ >
294
+ <div class="flex flex-wrap gap-2">
295
+ {#each scriptKindOptions as { value, title, desc }}
296
+ {@const isPicked = script.kind === value}
297
+ <Button
298
+ size="sm"
299
+ variant="border"
300
+ color={isPicked ? 'blue' : 'dark'}
301
+ btnClasses="font-medium {isPicked ? '!bg-blue-50/75' : ''}"
302
+ on:click={() => {
303
+ template = 'script'
304
+ script.kind = value
305
+ initContent(script.language, value, template)
306
+ }}
307
+ disabled={lockedLanguage}
308
+ >
309
+ {title}
310
+ {#if desc}
311
+ <Tooltip class="mb-0.5 ml-1">
312
+ {desc}
313
+ </Tooltip>
314
+ {/if}
315
+ </Button>
316
+ {/each}
317
+ </div>
318
+ </SettingSection>
305
319
  </CenteredPage>
306
320
  {:else if step === 2}
307
321
  <ScriptEditor
@@ -321,3 +335,5 @@ function onKeyDown(event) {
321
335
  {:else}
322
336
  Script Builder not available to operators
323
337
  {/if}
338
+
339
+ <svelte:window on:keydown={onKeyDown} />
@@ -7,6 +7,7 @@ import RadioButton from './RadioButton.svelte';
7
7
  import { Button, Drawer, DrawerContent } from './common';
8
8
  import HighlightCode from './HighlightCode.svelte';
9
9
  import FlowPathViewer from './flows/content/FlowPathViewer.svelte';
10
+ import { SELECT_INPUT_DEFAULT_STYLE } from '../defaults';
10
11
  export let initialPath = undefined;
11
12
  export let scriptPath = undefined;
12
13
  export let allowFlow = false;
@@ -78,6 +79,8 @@ $: itemKind && $workspaceStore && loadItems();
78
79
  bind:justValue={scriptPath}
79
80
  {items}
80
81
  placeholder="Pick a {itemKind}"
82
+ inputStyles={SELECT_INPUT_DEFAULT_STYLE.inputStyles}
83
+ containerStyles={SELECT_INPUT_DEFAULT_STYLE.containerStyles}
81
84
  />
82
85
  {/if}
83
86
 
@@ -0,0 +1,44 @@
1
+ <script>import { ChevronDown } from 'lucide-svelte';
2
+ import { slide } from 'svelte/transition';
3
+ import Tooltip from './Tooltip.svelte';
4
+ export let title;
5
+ export let tooltip = '';
6
+ export let element = 'h2';
7
+ export let accordion = false;
8
+ let showContent = !accordion;
9
+ </script>
10
+
11
+ <div class="border-b [&:has(button:hover)]:border-gray-400 duration-200 pb-1 mt-8 mb-2">
12
+ {#if accordion}
13
+ <button
14
+ class="flex w-full justify-start items-center"
15
+ on:click={() => (showContent = !showContent)}
16
+ >
17
+ <span class="rounded-full hover:bg-gray-100 focus:bg-gray-100 p-1 mr-1">
18
+ <ChevronDown size={22} class="rotate-0 duration-300 {showContent ? '!-rotate-180' : ''}" />
19
+ </span>
20
+ <svelte:element this={element}>
21
+ {title}
22
+ {#if tooltip}
23
+ <Tooltip scale={0.9} class="mb-0.5">
24
+ {tooltip}
25
+ </Tooltip>
26
+ {/if}
27
+ </svelte:element>
28
+ </button>
29
+ {:else}
30
+ <svelte:element this={element}>
31
+ {title}
32
+ {#if tooltip}
33
+ <Tooltip scale={0.9} class="mb-0.5">
34
+ {tooltip}
35
+ </Tooltip>
36
+ {/if}
37
+ </svelte:element>
38
+ {/if}
39
+ </div>
40
+ {#if showContent}
41
+ <div transition:slide={{ duration: 300 }}>
42
+ <slot />
43
+ </div>
44
+ {/if}
@@ -0,0 +1,21 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ title: string;
5
+ tooltip?: string | undefined;
6
+ element?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | undefined;
7
+ accordion?: boolean | undefined;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {
13
+ default: {};
14
+ };
15
+ };
16
+ export type SettingSectionProps = typeof __propDef.props;
17
+ export type SettingSectionEvents = typeof __propDef.events;
18
+ export type SettingSectionSlots = typeof __propDef.slots;
19
+ export default class SettingSection extends SvelteComponentTyped<SettingSectionProps, SettingSectionEvents, SettingSectionSlots> {
20
+ }
21
+ export {};
@@ -92,6 +92,9 @@ function format() {
92
92
  }
93
93
  }
94
94
  }
95
+ export function focus() {
96
+ editor?.focus();
97
+ }
95
98
  let width = 0;
96
99
  async function loadMonaco() {
97
100
  model = meditor.createModel(code, lang, mUri.parse(uri));
@@ -175,7 +178,7 @@ onDestroy(() => {
175
178
  });
176
179
  </script>
177
180
 
178
- <div bind:this={divEl} class="{$$props.class} editor" bind:clientWidth={width} />
181
+ <div bind:this={divEl} class="{$$props.class ?? ''} editor" bind:clientWidth={width} />
179
182
 
180
183
  <style>
181
184
  .editor {
@@ -15,6 +15,7 @@ declare const __propDef: {
15
15
  getCode?: (() => string) | undefined;
16
16
  insertAtCursor?: ((code: string) => void) | undefined;
17
17
  setCode?: ((ncode: string) => void) | undefined;
18
+ focus?: (() => void) | undefined;
18
19
  };
19
20
  events: {
20
21
  change: CustomEvent<any>;
@@ -32,5 +33,6 @@ export default class SimpleEditor extends SvelteComponentTyped<SimpleEditorProps
32
33
  get getCode(): () => string;
33
34
  get insertAtCursor(): (code: string) => void;
34
35
  get setCode(): (ncode: string) => void;
36
+ get focus(): () => void;
35
37
  }
36
38
  export {};