windmill-components 1.60.4 → 1.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (549) hide show
  1. package/assets/app.css +15 -1
  2. package/common.d.ts +5 -1
  3. package/components/ApiConnectForm.svelte +66 -5
  4. package/components/AppConnect.svelte +26 -10
  5. package/components/ArgInput.svelte +1 -1
  6. package/components/CliHelpBox.svelte +49 -0
  7. package/components/CliHelpBox.svelte.d.ts +14 -0
  8. package/components/DisplayResult.svelte +78 -10
  9. package/components/DisplayResult.svelte.d.ts +1 -0
  10. package/components/Editor.svelte +17 -7
  11. package/components/EditorBar.svelte +129 -111
  12. package/components/FieldHeader.svelte +12 -8
  13. package/components/FlowBuilder.svelte +107 -39
  14. package/components/FlowBuilder.svelte.d.ts +5 -0
  15. package/components/FlowGraphViewer.svelte +5 -4
  16. package/components/FlowJobResult.svelte +13 -5
  17. package/components/FlowJobResult.svelte.d.ts +1 -0
  18. package/components/FlowMetadata.svelte +24 -8
  19. package/components/FlowPreviewContent.svelte +5 -11
  20. package/components/FlowStatusViewer.svelte +62 -17
  21. package/components/FolderEditor.svelte +3 -2
  22. package/components/GroupEditor.svelte +8 -0
  23. package/components/HighlightCode.svelte +7 -1
  24. package/components/InlineCodeCopy.svelte +11 -0
  25. package/components/InlineCodeCopy.svelte.d.ts +16 -0
  26. package/components/InputTransformForm.svelte +22 -25
  27. package/components/InputTransformSchemaForm.svelte +103 -0
  28. package/components/InputTransformSchemaForm.svelte.d.ts +24 -0
  29. package/components/LogViewer.svelte +7 -1
  30. package/components/LogViewer.svelte.d.ts +1 -0
  31. package/components/ModulePreview.svelte +13 -3
  32. package/components/MoveDrawer.svelte +1 -1
  33. package/components/Multiselect.svelte +1 -1
  34. package/components/Multiselect.svelte.d.ts +2 -2
  35. package/components/ObjectResourceInput.svelte +6 -1
  36. package/components/Path.svelte +29 -16
  37. package/components/Popover.svelte +10 -15
  38. package/components/Popover.svelte.d.ts +1 -0
  39. package/components/Range.svelte.d.ts +2 -2
  40. package/components/ResourceEditor.svelte +39 -16
  41. package/components/ResourcePicker.svelte +33 -15
  42. package/components/RunChart.svelte +24 -5
  43. package/components/RunForm.svelte +26 -3
  44. package/components/RunForm.svelte.d.ts +2 -0
  45. package/components/ScheduleEditor.svelte +1 -1
  46. package/components/SchemaEditor.svelte +2 -2
  47. package/components/SchemaForm.svelte +72 -60
  48. package/components/SchemaForm.svelte.d.ts +1 -5
  49. package/components/ScriptBuilder.svelte +69 -30
  50. package/components/ScriptBuilder.svelte.d.ts +1 -0
  51. package/components/ScriptEditor.svelte +1 -0
  52. package/components/ScriptPicker.svelte +3 -0
  53. package/components/SharedBadge.svelte +5 -5
  54. package/components/SimpleEditor.svelte +4 -1
  55. package/components/SimpleEditor.svelte.d.ts +2 -0
  56. package/components/Slider.svelte +19 -0
  57. package/components/Slider.svelte.d.ts +20 -0
  58. package/components/StringTypeNarrowing.svelte +0 -1
  59. package/components/SuperadminSettings.svelte +11 -3
  60. package/components/SuperadminSettings.svelte.d.ts +2 -0
  61. package/components/TemplateEditor.svelte +1 -1
  62. package/components/TemplateEditor.svelte.d.ts +204 -0
  63. package/components/TestJobLoader.svelte +5 -5
  64. package/components/Toggle.svelte +18 -6
  65. package/components/Toggle.svelte.d.ts +2 -0
  66. package/components/Tooltip.svelte +1 -1
  67. package/components/UserSettings.svelte +13 -3
  68. package/components/UserSettings.svelte.d.ts +2 -0
  69. package/components/VariableEditor.svelte +1 -1
  70. package/components/WhitelistIp.svelte +23 -0
  71. package/components/WhitelistIp.svelte.d.ts +14 -0
  72. package/components/apps/components/buttons/AppButton.svelte +79 -17
  73. package/components/apps/components/buttons/AppButton.svelte.d.ts +4 -0
  74. package/components/apps/components/{form → buttons}/AppForm.svelte +19 -7
  75. package/components/apps/components/{form → buttons}/AppForm.svelte.d.ts +3 -0
  76. package/components/apps/components/buttons/AppFormButton.svelte +145 -0
  77. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +28 -0
  78. package/components/apps/components/buttons/index.d.ts +3 -0
  79. package/components/apps/components/buttons/index.js +3 -0
  80. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte +27 -8
  81. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte.d.ts +4 -0
  82. package/components/apps/components/display/AppDisplayComponent.svelte +36 -0
  83. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +24 -0
  84. package/components/apps/components/display/AppHtml.svelte +46 -0
  85. package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +4 -1
  86. package/components/apps/components/display/AppIcon.svelte +47 -0
  87. package/components/apps/components/display/AppIcon.svelte.d.ts +25 -0
  88. package/components/apps/components/display/AppImage.svelte +34 -0
  89. package/components/apps/components/display/AppImage.svelte.d.ts +25 -0
  90. package/components/apps/components/display/AppMap.svelte +214 -0
  91. package/components/apps/components/display/AppMap.svelte.d.ts +23 -0
  92. package/components/apps/components/display/AppPdf.svelte +304 -0
  93. package/components/apps/components/display/AppPdf.svelte.d.ts +24 -0
  94. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte +16 -7
  95. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte.d.ts +4 -0
  96. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte +13 -4
  97. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte.d.ts +4 -0
  98. package/components/apps/components/{dataDisplay → display}/AppText.svelte +42 -34
  99. package/components/apps/components/{dataDisplay → display}/AppText.svelte.d.ts +4 -0
  100. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte +14 -5
  101. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte.d.ts +4 -0
  102. package/components/apps/components/display/PlotlyHtml.svelte +32 -0
  103. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +24 -0
  104. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte +4 -10
  105. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +2 -0
  106. package/components/apps/components/display/index.d.ts +15 -0
  107. package/components/apps/components/display/index.js +15 -0
  108. package/components/apps/components/display/table/AppAggridTable.svelte +92 -0
  109. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +25 -0
  110. package/components/apps/components/{table → display/table}/AppTable.svelte +85 -29
  111. package/components/apps/components/{table → display/table}/AppTable.svelte.d.ts +6 -2
  112. package/components/apps/components/{table → display/table}/AppTableFooter.svelte +9 -2
  113. package/components/apps/components/{table → display/table}/AppTableFooter.svelte.d.ts +2 -0
  114. package/components/apps/components/helpers/AlignWrapper.svelte +29 -23
  115. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +6 -2
  116. package/components/apps/components/helpers/HiddenComponent.svelte +23 -0
  117. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +25 -0
  118. package/components/apps/components/helpers/InputDefaultValue.svelte +17 -0
  119. package/components/apps/components/helpers/InputDefaultValue.svelte.d.ts +17 -0
  120. package/components/apps/components/helpers/InputValue.svelte +39 -18
  121. package/components/apps/components/helpers/InputValue.svelte.d.ts +0 -1
  122. package/components/apps/components/helpers/NonRunnableComponent.svelte +18 -3
  123. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -0
  124. package/components/apps/components/helpers/RefreshButton.svelte +1 -1
  125. package/components/apps/components/helpers/ResizeWrapper.svelte +24 -0
  126. package/components/apps/components/helpers/ResizeWrapper.svelte.d.ts +19 -0
  127. package/components/apps/components/helpers/RunnableComponent.svelte +99 -102
  128. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -2
  129. package/components/apps/components/helpers/RunnableWrapper.svelte +16 -7
  130. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +5 -2
  131. package/components/apps/components/helpers/index.d.ts +10 -0
  132. package/components/apps/components/helpers/index.js +10 -0
  133. package/components/apps/components/icon.d.ts +1 -0
  134. package/components/apps/components/icon.js +18 -0
  135. package/components/apps/components/index.d.ts +5 -0
  136. package/components/apps/components/index.js +5 -0
  137. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte +12 -4
  138. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte.d.ts +3 -0
  139. package/components/apps/components/inputs/AppDateInput.svelte +47 -0
  140. package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte.d.ts +6 -1
  141. package/components/apps/components/inputs/AppFileInput.svelte +42 -0
  142. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +23 -0
  143. package/components/apps/components/inputs/AppMultiSelect.svelte +82 -0
  144. package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +27 -0
  145. package/components/apps/components/inputs/AppNumberInput.svelte +52 -0
  146. package/components/apps/components/{numberInputs → inputs}/AppNumberInput.svelte.d.ts +5 -0
  147. package/components/apps/components/inputs/AppRangeInput.svelte +85 -0
  148. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +26 -0
  149. package/components/apps/components/inputs/AppSelect.svelte +127 -0
  150. package/components/apps/components/{selectInputs → inputs}/AppSelect.svelte.d.ts +5 -0
  151. package/components/apps/components/inputs/AppSliderInputs.svelte +73 -0
  152. package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte.d.ts +3 -0
  153. package/components/apps/components/inputs/AppTextInput.svelte +71 -0
  154. package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte.d.ts +6 -0
  155. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +59 -0
  156. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +24 -0
  157. package/components/apps/components/inputs/currency/CurrencyInput.svelte +183 -0
  158. package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +33 -0
  159. package/components/apps/components/inputs/index.d.ts +9 -0
  160. package/components/apps/components/inputs/index.js +9 -0
  161. package/components/apps/components/layout/AppContainer.svelte +40 -0
  162. package/components/apps/components/layout/AppContainer.svelte.d.ts +24 -0
  163. package/components/apps/components/layout/AppDivider.svelte +40 -0
  164. package/components/apps/components/layout/AppDivider.svelte.d.ts +24 -0
  165. package/components/apps/components/layout/AppDrawer.svelte +89 -0
  166. package/components/apps/components/layout/AppDrawer.svelte.d.ts +24 -0
  167. package/components/apps/components/layout/AppSplitpanes.svelte +88 -0
  168. package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +26 -0
  169. package/components/apps/components/layout/AppTabs.svelte +99 -0
  170. package/components/apps/components/layout/AppTabs.svelte.d.ts +27 -0
  171. package/components/apps/components/layout/index.d.ts +5 -0
  172. package/components/apps/components/layout/index.js +5 -0
  173. package/components/apps/editor/AppComponentInput.svelte +33 -0
  174. package/components/apps/editor/AppComponentInput.svelte.d.ts +18 -0
  175. package/components/apps/editor/AppComponentInputs.svelte +13 -0
  176. package/components/apps/editor/AppComponentInputs.svelte.d.ts +20 -0
  177. package/components/apps/editor/AppEditor.svelte +134 -35
  178. package/components/apps/editor/AppEditor.svelte.d.ts +4 -1
  179. package/components/apps/editor/AppEditorHeader.svelte +178 -47
  180. package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  181. package/components/apps/editor/AppInputs.svelte +60 -0
  182. package/components/apps/editor/AppInputs.svelte.d.ts +14 -0
  183. package/components/apps/editor/AppPreview.svelte +30 -12
  184. package/components/apps/editor/ComponentHeader.svelte +52 -3
  185. package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -1
  186. package/components/apps/editor/GridEditor.svelte +134 -77
  187. package/components/apps/editor/GridEditor.svelte.d.ts +2 -0
  188. package/components/apps/editor/GridPanel.svelte +29 -0
  189. package/components/apps/editor/GridPanel.svelte.d.ts +18 -0
  190. package/components/apps/editor/RecomputeAllComponents.svelte +8 -6
  191. package/components/apps/editor/SettingsPanel.svelte +26 -8
  192. package/components/apps/editor/SubGridEditor.svelte +139 -0
  193. package/components/apps/editor/SubGridEditor.svelte.d.ts +29 -0
  194. package/components/apps/editor/appUtils.d.ts +19 -0
  195. package/components/apps/editor/appUtils.js +241 -0
  196. package/components/apps/editor/component/Component.svelte +434 -0
  197. package/components/apps/editor/{ComponentEditor.svelte.d.ts → component/Component.svelte.d.ts} +7 -5
  198. package/components/apps/editor/component/ComponentNavigation.svelte +125 -0
  199. package/components/apps/editor/component/ComponentNavigation.svelte.d.ts +14 -0
  200. package/components/apps/editor/component/README.md +15 -0
  201. package/components/apps/editor/component/components.d.ts +77 -0
  202. package/components/apps/editor/component/components.js +1476 -0
  203. package/components/apps/editor/component/default-codes.d.ts +3 -0
  204. package/components/apps/editor/component/default-codes.js +322 -0
  205. package/components/apps/editor/component/index.d.ts +4 -0
  206. package/components/apps/editor/component/index.js +4 -0
  207. package/components/apps/editor/component/sets.d.ts +2 -0
  208. package/components/apps/editor/component/sets.js +55 -0
  209. package/components/apps/editor/componentsPanel/ComponentList.svelte +75 -108
  210. package/components/apps/editor/componentsPanel/CssProperty.svelte +67 -0
  211. package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +21 -0
  212. package/components/apps/editor/componentsPanel/CssSettings.svelte +188 -0
  213. package/components/apps/editor/componentsPanel/CssSettings.svelte.d.ts +14 -0
  214. package/components/apps/editor/componentsPanel/ListItem.svelte +39 -0
  215. package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +20 -0
  216. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +5 -1
  217. package/components/apps/editor/componentsPanel/componentStaticValues.js +16 -1
  218. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  219. package/components/apps/editor/contextPanel/ContextPanel.svelte +115 -67
  220. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +109 -10
  221. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
  222. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +88 -41
  223. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +5 -0
  224. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +32 -6
  225. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
  226. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +75 -8
  227. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +128 -72
  228. package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -5
  229. package/components/apps/editor/inlineScriptsPanel/utils.js +48 -7
  230. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  231. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte.d.ts +1 -1
  232. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +14 -10
  233. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +68 -1
  234. package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +1 -1
  235. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +130 -61
  236. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +6 -3
  237. package/components/apps/editor/settingsPanel/GridPane.svelte +75 -0
  238. package/components/apps/editor/settingsPanel/GridPane.svelte.d.ts +20 -0
  239. package/components/apps/editor/settingsPanel/GridTab.svelte +73 -0
  240. package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +20 -0
  241. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +5 -1
  242. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
  243. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +93 -78
  244. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  245. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +92 -0
  246. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +18 -0
  247. package/components/apps/editor/settingsPanel/Recompute.svelte +5 -2
  248. package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +1 -1
  249. package/components/apps/editor/settingsPanel/TableActions.svelte +45 -7
  250. package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  251. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +6 -4
  252. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +48 -0
  253. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +19 -0
  254. package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +1 -1
  255. package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +1 -1
  256. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +107 -0
  257. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +21 -0
  258. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -2
  259. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +2 -1
  260. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +59 -6
  261. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +3 -0
  262. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +21 -0
  263. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +17 -0
  264. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +1 -0
  265. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +1 -0
  266. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +4 -21
  267. package/components/apps/gridUtils.d.ts +3 -1
  268. package/components/apps/gridUtils.js +5 -3
  269. package/components/apps/inputType.d.ts +34 -6
  270. package/components/apps/rx.js +2 -1
  271. package/components/apps/store.d.ts +6 -1
  272. package/components/apps/types.d.ts +47 -42
  273. package/components/apps/types.js +1 -1
  274. package/components/apps/utils.d.ts +6 -5
  275. package/components/apps/utils.js +63 -95
  276. package/components/common/button/Button.svelte +12 -5
  277. package/components/common/button/Button.svelte.d.ts +3 -1
  278. package/components/common/button/ButtonPopup.svelte +2 -0
  279. package/components/common/button/ButtonPopup.svelte.d.ts +2 -1
  280. package/components/common/button/UndoRedo.svelte +32 -0
  281. package/components/common/button/UndoRedo.svelte.d.ts +20 -0
  282. package/components/common/button/model.d.ts +2 -2
  283. package/components/common/button/model.js +21 -6
  284. package/components/common/confirmationModal/ConfirmationModal.svelte +8 -1
  285. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +4 -4
  286. package/components/common/drawer/Drawer.svelte +13 -5
  287. package/components/common/drawer/Drawer.svelte.d.ts +3 -1
  288. package/components/common/drawer/DrawerContent.svelte +0 -1
  289. package/components/common/fileInput/FileInput.svelte +138 -0
  290. package/components/common/fileInput/FileInput.svelte.d.ts +29 -0
  291. package/components/common/fileInput/model.d.ts +1 -0
  292. package/components/common/fileInput/model.js +1 -0
  293. package/components/common/index.d.ts +2 -0
  294. package/components/common/index.js +2 -0
  295. package/components/common/kbd/Kbd.svelte.d.ts +2 -2
  296. package/components/common/menu/Menu.svelte +3 -2
  297. package/components/common/menu/Menu.svelte.d.ts +2 -1
  298. package/components/common/modal/Modal.svelte +79 -0
  299. package/components/common/modal/Modal.svelte.d.ts +24 -0
  300. package/components/common/popup/Popup.svelte +34 -17
  301. package/components/common/popup/Popup.svelte.d.ts +11 -4
  302. package/components/common/table/AppRow.svelte +13 -4
  303. package/components/common/table/AppRow.svelte.d.ts +1 -0
  304. package/components/common/table/FlowRow.svelte +40 -8
  305. package/components/common/table/FlowRow.svelte.d.ts +1 -0
  306. package/components/common/table/LanguageBadge.svelte +10 -4
  307. package/components/common/table/Row.svelte +1 -1
  308. package/components/common/table/ScriptRow.svelte +44 -12
  309. package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  310. package/components/common/tabs/Tab.svelte +12 -5
  311. package/components/common/tabs/Tab.svelte.d.ts +4 -1
  312. package/components/common/tabs/Tabs.svelte +12 -8
  313. package/components/common/tabs/Tabs.svelte.d.ts +6 -2
  314. package/components/flows/CreateActionsFlow.svelte +2 -3
  315. package/components/flows/FlowEditor.svelte +6 -4
  316. package/components/flows/common/FlowCardHeader.svelte +4 -1
  317. package/components/flows/content/BranchPredicateEditor.svelte +13 -12
  318. package/components/flows/content/CapturePayload.svelte +1 -2
  319. package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
  320. package/components/flows/content/FlowConstants.svelte +7 -13
  321. package/components/flows/content/FlowEditorPanel.svelte +4 -3
  322. package/components/flows/content/FlowFailureModule.svelte +2 -1
  323. package/components/flows/content/FlowInput.svelte +4 -2
  324. package/components/flows/content/FlowInputs.svelte +109 -99
  325. package/components/flows/content/FlowLoop.svelte +4 -5
  326. package/components/flows/content/FlowModuleComponent.svelte +26 -13
  327. package/components/flows/content/FlowModuleEarlyStop.svelte +3 -1
  328. package/components/flows/content/FlowModuleHeader.svelte +26 -3
  329. package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
  330. package/components/flows/content/FlowModuleSleep.svelte +2 -2
  331. package/components/flows/content/FlowModuleWrapper.svelte +2 -8
  332. package/components/flows/content/FlowRetries.svelte +8 -6
  333. package/components/flows/content/FlowSchedules.svelte +1 -2
  334. package/components/flows/content/FlowSettings.svelte +77 -51
  335. package/components/flows/content/ScriptEditorDrawer.svelte +98 -0
  336. package/components/flows/content/ScriptEditorDrawer.svelte.d.ts +19 -0
  337. package/components/flows/flowState.d.ts +2 -2
  338. package/components/flows/flowState.js +1 -3
  339. package/components/flows/flowStateUtils.d.ts +7 -6
  340. package/components/flows/flowStateUtils.js +9 -11
  341. package/components/flows/flowStore.d.ts +5 -3
  342. package/components/flows/flowStore.js +6 -17
  343. package/components/flows/header/FlowImportExportMenu.svelte +2 -1
  344. package/components/flows/map/FlowConstantsItem.svelte +2 -2
  345. package/components/flows/map/FlowErrorHandlerItem.svelte +12 -13
  346. package/components/flows/map/FlowInputsItem.svelte +2 -3
  347. package/components/flows/map/FlowModuleSchemaItem.svelte +88 -91
  348. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +3 -3
  349. package/components/flows/map/FlowModuleSchemaMap.svelte +163 -130
  350. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -1
  351. package/components/flows/map/FlowSettingsItem.svelte +5 -4
  352. package/components/flows/map/InsertModuleButton.svelte +34 -18
  353. package/components/flows/map/InsertModuleButton.svelte.d.ts +2 -0
  354. package/components/flows/map/MapItem.svelte +176 -101
  355. package/components/flows/map/MapItem.svelte.d.ts +20 -2
  356. package/components/flows/map/VirtualItem.svelte +129 -0
  357. package/components/flows/map/VirtualItem.svelte.d.ts +44 -0
  358. package/components/flows/pickers/WorkspaceScriptPicker.svelte +1 -1
  359. package/components/flows/previousResults.d.ts +1 -1
  360. package/components/flows/previousResults.js +32 -17
  361. package/components/flows/types.d.ts +13 -1
  362. package/components/flows/utils.js +17 -11
  363. package/components/graph/FlowGraph.svelte +247 -164
  364. package/components/graph/FlowGraph.svelte.d.ts +15 -1
  365. package/components/graph/model.d.ts +6 -36
  366. package/components/graph/model.js +1 -1
  367. package/components/graph/svelvet/LICENSE +21 -0
  368. package/components/graph/svelvet/collapsible/controllers/util.d.ts +15 -0
  369. package/components/graph/svelvet/collapsible/controllers/util.js +144 -0
  370. package/components/graph/svelvet/collapsible/models/Collapsible.d.ts +17 -0
  371. package/components/graph/svelvet/collapsible/models/Collapsible.js +25 -0
  372. package/components/graph/svelvet/collapsible/types/types.d.ts +8 -0
  373. package/components/graph/svelvet/collapsible/types/types.js +1 -0
  374. package/components/graph/svelvet/container/README.md +7 -0
  375. package/components/graph/svelvet/container/controllers/middleware.d.ts +18 -0
  376. package/components/graph/svelvet/container/controllers/middleware.js +101 -0
  377. package/components/graph/svelvet/container/views/GraphView.svelte +252 -0
  378. package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +25 -0
  379. package/components/graph/svelvet/container/views/Svelvet.svelte +131 -0
  380. package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +41 -0
  381. package/components/graph/svelvet/customCss/controllers/getCss.d.ts +2 -0
  382. package/components/graph/svelvet/customCss/controllers/getCss.js +57 -0
  383. package/components/graph/svelvet/d3/controllers/README.md +3 -0
  384. package/components/graph/svelvet/d3/controllers/d3.d.ts +5 -0
  385. package/components/graph/svelvet/d3/controllers/d3.js +59 -0
  386. package/components/graph/svelvet/d3/controllers/d3Old.d.ts +1 -0
  387. package/components/graph/svelvet/d3/controllers/d3Old.js +43 -0
  388. package/components/graph/svelvet/docs/CHANGELOG.md +145 -0
  389. package/components/graph/svelvet/docs/DESIGN_PATTERNS.md +44 -0
  390. package/components/graph/svelvet/docs/DOCUMENTATION.md +5 -0
  391. package/components/graph/svelvet/docs/README.md +34 -0
  392. package/components/graph/svelvet/docs/TODO.md +14 -0
  393. package/components/graph/svelvet/docs/Tutorials.md +25 -0
  394. package/components/graph/svelvet/docs/images/css-background-after.png +0 -0
  395. package/components/graph/svelvet/docs/images/css-background-before.png +0 -0
  396. package/components/graph/svelvet/docs/images/custom-edges-after.png +0 -0
  397. package/components/graph/svelvet/docs/images/custom-edges-before.png +0 -0
  398. package/components/graph/svelvet/docs/images/custom-nodes-after.png +0 -0
  399. package/components/graph/svelvet/docs/images/custom-nodes-before.png +0 -0
  400. package/components/graph/svelvet/docs/images/custom-svelte-components-after.png +0 -0
  401. package/components/graph/svelvet/docs/images/custom-svelte-components-before.png +0 -0
  402. package/components/graph/svelvet/docs/images/html-docs-after.png +0 -0
  403. package/components/graph/svelvet/docs/images/html-docs-before.png +0 -0
  404. package/components/graph/svelvet/docs/images/minimap-after.png +0 -0
  405. package/components/graph/svelvet/docs/images/minimap-before.png +0 -0
  406. package/components/graph/svelvet/docs/images/node-classes-after.png +0 -0
  407. package/components/graph/svelvet/docs/images/node-classes-before.png +0 -0
  408. package/components/graph/svelvet/docs/images/node-create-after.png +0 -0
  409. package/components/graph/svelvet/docs/images/node-create-before.png +0 -0
  410. package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +4 -0
  411. package/components/graph/svelvet/edges/controllers/anchorCbDev.js +92 -0
  412. package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +57 -0
  413. package/components/graph/svelvet/edges/controllers/anchorCbUser.js +73 -0
  414. package/components/graph/svelvet/edges/controllers/util.d.ts +37 -0
  415. package/components/graph/svelvet/edges/controllers/util.js +72 -0
  416. package/components/graph/svelvet/edges/models/Anchor.d.ts +48 -0
  417. package/components/graph/svelvet/edges/models/Anchor.js +122 -0
  418. package/components/graph/svelvet/edges/models/Edge.d.ts +47 -0
  419. package/components/graph/svelvet/edges/models/Edge.js +107 -0
  420. package/components/graph/svelvet/edges/types/types.d.ts +18 -0
  421. package/components/graph/svelvet/edges/types/types.js +1 -0
  422. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +105 -0
  423. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +18 -0
  424. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte +12 -0
  425. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte.d.ts +17 -0
  426. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +43 -0
  427. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +17 -0
  428. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +137 -0
  429. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +17 -0
  430. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +176 -0
  431. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +60 -0
  432. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +8 -0
  433. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +25 -0
  434. package/components/graph/svelvet/edges/views/Edges/types.d.ts +52 -0
  435. package/components/graph/svelvet/edges/views/Edges/types.js +1 -0
  436. package/components/graph/svelvet/edges/views/Edges/utils.d.ts +33 -0
  437. package/components/graph/svelvet/edges/views/Edges/utils.js +31 -0
  438. package/components/graph/svelvet/editEdges/views/EditEdge.svelte +151 -0
  439. package/components/graph/svelvet/editEdges/views/EditEdge.svelte.d.ts +20 -0
  440. package/components/graph/svelvet/nodes/controllers/util.d.ts +9 -0
  441. package/components/graph/svelvet/nodes/controllers/util.js +13 -0
  442. package/components/graph/svelvet/nodes/models/Node.d.ts +78 -0
  443. package/components/graph/svelvet/nodes/models/Node.js +195 -0
  444. package/components/graph/svelvet/nodes/views/EditNode.svelte +147 -0
  445. package/components/graph/svelvet/nodes/views/EditNode.svelte.d.ts +33 -0
  446. package/components/graph/svelvet/nodes/views/Node.svelte +85 -0
  447. package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +22 -0
  448. package/components/graph/svelvet/resizableNodes/controllers/util.d.ts +11 -0
  449. package/components/graph/svelvet/resizableNodes/controllers/util.js +24 -0
  450. package/components/graph/svelvet/resizableNodes/models/ResizeNode.d.ts +33 -0
  451. package/components/graph/svelvet/resizableNodes/models/ResizeNode.js +71 -0
  452. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte +81 -0
  453. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte.d.ts +20 -0
  454. package/components/graph/svelvet/store/controllers/storeApi.d.ts +32 -0
  455. package/components/graph/svelvet/store/controllers/storeApi.js +111 -0
  456. package/components/graph/svelvet/store/controllers/userApi.d.ts +3 -0
  457. package/components/graph/svelvet/store/controllers/userApi.js +18 -0
  458. package/components/graph/svelvet/store/controllers/util.d.ts +31 -0
  459. package/components/graph/svelvet/store/controllers/util.js +180 -0
  460. package/components/graph/svelvet/store/models/store.d.ts +12 -0
  461. package/components/graph/svelvet/store/models/store.js +9 -0
  462. package/components/graph/svelvet/store/types/types.d.ts +134 -0
  463. package/components/graph/svelvet/store/types/types.js +1 -0
  464. package/components/graph/svelvet/types/README.md +3 -0
  465. package/components/graph/svelvet/types/index.d.ts +2 -0
  466. package/components/graph/svelvet/types/index.js +1 -0
  467. package/components/graph/svelvet/types/types.d.ts +49 -0
  468. package/components/graph/svelvet/types/types.js +18 -0
  469. package/components/graph/util.js +2 -2
  470. package/components/home/ItemsList.svelte +53 -5
  471. package/components/home/ItemsList.svelte.d.ts +1 -0
  472. package/components/home/ListFilters.svelte +7 -2
  473. package/components/icons/SquareIcon.svelte +9 -0
  474. package/components/icons/SquareIcon.svelte.d.ts +17 -0
  475. package/components/icons/index.d.ts +2 -0
  476. package/components/icons/index.js +2 -0
  477. package/components/jobs/JobDetail.svelte +40 -5
  478. package/components/propertyPicker/ObjectViewer.svelte +14 -9
  479. package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
  480. package/components/propertyPicker/PropPicker.svelte +8 -1
  481. package/components/propertyPicker/PropPickerResult.svelte +1 -1
  482. package/components/random_positive_adjetive.d.ts +1 -0
  483. package/components/random_positive_adjetive.js +961 -0
  484. package/components/scriptEditor/LogPanel.svelte +2 -1
  485. package/components/sidebar/SidebarContent.svelte +1 -1
  486. package/components/sidebar/UserMenu.svelte +46 -16
  487. package/components/sidebar/UserMenu.svelte.d.ts +0 -3
  488. package/components/sidebar/WorkspaceMenu.svelte +3 -1
  489. package/components/sidebar/settings.d.ts +2 -0
  490. package/components/sidebar/settings.js +2 -0
  491. package/consts.d.ts +1 -0
  492. package/consts.js +1 -0
  493. package/defaults.d.ts +4 -0
  494. package/defaults.js +4 -0
  495. package/gen/core/OpenAPI.js +1 -1
  496. package/gen/models/CompletedJob.d.ts +1 -0
  497. package/gen/models/FlowModule.d.ts +0 -1
  498. package/gen/models/QueuedJob.d.ts +1 -0
  499. package/gen/models/WorkerPing.d.ts +1 -1
  500. package/gen/services/FlowService.d.ts +9 -0
  501. package/gen/services/FlowService.js +15 -0
  502. package/gen/services/JobService.d.ts +97 -15
  503. package/gen/services/JobService.js +74 -15
  504. package/gen/services/ScriptService.d.ts +10 -1
  505. package/gen/services/ScriptService.js +16 -1
  506. package/gen/services/VariableService.d.ts +4 -2
  507. package/gen/services/VariableService.js +8 -2
  508. package/gen/services/WorkspaceService.d.ts +17 -0
  509. package/gen/services/WorkspaceService.js +16 -0
  510. package/history.d.ts +9 -0
  511. package/history.js +56 -0
  512. package/infer.js +3 -0
  513. package/init_scripts/python_failure_module.py +10 -0
  514. package/init_scripts/python_init_code.py +37 -0
  515. package/init_scripts/python_init_code_clear.py +5 -0
  516. package/init_scripts/python_init_code_trigger.py +14 -0
  517. package/logout.js +2 -1
  518. package/package.json +661 -522
  519. package/script_helpers.d.ts +6 -5
  520. package/script_helpers.js +8 -73
  521. package/scripts.d.ts +1 -1
  522. package/scripts.js +8 -1
  523. package/stores.d.ts +5 -1
  524. package/stores.js +8 -1
  525. package/user.d.ts +1 -1
  526. package/user.js +14 -8
  527. package/utils.d.ts +10 -5
  528. package/utils.js +51 -14
  529. package/components/apps/components/DisplayComponent.svelte +0 -16
  530. package/components/apps/components/DisplayComponent.svelte.d.ts +0 -20
  531. package/components/apps/components/dataDisplay/AppHtml.svelte +0 -31
  532. package/components/apps/components/dateInputs/AppDateInput.svelte +0 -34
  533. package/components/apps/components/numberInputs/AppNumberInput.svelte +0 -33
  534. package/components/apps/components/numberInputs/AppSliderInputs.svelte +0 -37
  535. package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
  536. package/components/apps/components/textInputs/AppTextInput.svelte +0 -31
  537. package/components/apps/editor/ComponentEditor.svelte +0 -145
  538. package/components/apps/editor/TablePanel.svelte +0 -17
  539. package/components/apps/editor/TablePanel.svelte.d.ts +0 -17
  540. package/components/apps/editor/componentsPanel/data.d.ts +0 -3
  541. package/components/apps/editor/componentsPanel/data.js +0 -499
  542. package/components/apps/editorUtils.d.ts +0 -1
  543. package/components/apps/editorUtils.js +0 -292
  544. package/components/flows/map/FlowBranchAllMap.svelte +0 -100
  545. package/components/flows/map/FlowBranchAllMap.svelte.d.ts +0 -17
  546. package/components/flows/map/FlowBranchOneMap.svelte +0 -124
  547. package/components/flows/map/FlowBranchOneMap.svelte.d.ts +0 -17
  548. /package/components/apps/components/{table → display/table}/tableOptions.d.ts +0 -0
  549. /package/components/apps/components/{table → display/table}/tableOptions.js +0 -0
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  id: string;
6
6
  };
7
7
  events: {
8
+ delete: CustomEvent<any>;
8
9
  new: CustomEvent<any>;
9
10
  } & {
10
11
  [evt: string]: CustomEvent<any>;
@@ -1,19 +1,24 @@
1
1
  <script>import Button from '../../../common/button/Button.svelte';
2
- import { faTrash } from '@fortawesome/free-solid-svg-icons';
3
2
  import { createEventDispatcher, getContext, onMount } from 'svelte';
4
- import { CheckCircle, Code2, X } from 'lucide-svelte';
3
+ import { CornerDownLeft, Maximize2, Plus, Trash2, X } from 'lucide-svelte';
5
4
  import InlineScriptEditorDrawer from './InlineScriptEditorDrawer.svelte';
6
5
  import { inferArgs } from '../../../../infer';
7
6
  import Badge from '../../../common/badge/Badge.svelte';
8
7
  import { fly } from 'svelte/transition';
9
8
  import Editor from '../../../Editor.svelte';
10
9
  import { emptySchema, scriptLangToEditorLang } from '../../../../utils';
11
- import Tooltip from '../../../Tooltip.svelte';
10
+ import Popover from '../../../Popover.svelte';
11
+ import { computeFields } from './utils';
12
+ import { deepEqual } from 'fast-equals';
13
+ import Kbd from '../../../common/kbd/Kbd.svelte';
12
14
  let inlineScriptEditorDrawer;
13
15
  export let inlineScript;
14
16
  export let name = undefined;
15
17
  export let id;
16
- const { runnableComponents } = getContext('AppEditorContext');
18
+ export let defaultUserInput = false;
19
+ export let fields = {};
20
+ export let syncFields = false;
21
+ const { runnableComponents, stateId } = getContext('AppViewerContext');
17
22
  let editor;
18
23
  let validCode = true;
19
24
  async function inferInlineScriptSchema(language, content, schema) {
@@ -31,76 +36,117 @@ onMount(async () => {
31
36
  if (inlineScript && !inlineScript.schema) {
32
37
  inlineScript.schema = await inferInlineScriptSchema(inlineScript?.language, inlineScript?.content, emptySchema());
33
38
  }
39
+ if (inlineScript.schema) {
40
+ loadSchemaAndInputsByName();
41
+ }
34
42
  });
35
43
  const dispatch = createEventDispatcher();
36
44
  let runLoading = false;
45
+ async function loadSchemaAndInputsByName() {
46
+ if (syncFields) {
47
+ const newSchema = inlineScript.schema;
48
+ const newFields = computeFields(newSchema, defaultUserInput, fields);
49
+ if (!deepEqual(newFields, fields)) {
50
+ fields = newFields;
51
+ $stateId++;
52
+ }
53
+ }
54
+ }
55
+ let isMac = navigator.userAgent.indexOf('Mac OS X') !== -1;
37
56
  </script>
38
57
 
39
58
  <InlineScriptEditorDrawer {editor} bind:this={inlineScriptEditorDrawer} bind:inlineScript />
40
59
 
41
- <div class="h-full flex flex-col gap-1" transition:fly|local={{ duration: 50 }}>
42
- <div class="flex justify-between w-full gap-1 px-2 pt-1 flex-row items-center">
60
+ <div class="h-full flex flex-col gap-1">
61
+ <div class="flex justify-between w-full gap-2 px-2 pt-1 flex-row items-center">
43
62
  {#if name !== undefined}
44
- <input bind:value={name} placeholder="Inline script name" />
63
+ <input
64
+ on:keydown|stopPropagation
65
+ bind:value={name}
66
+ placeholder="Inline script name"
67
+ class="!text-xs !rounded-xs"
68
+ />
45
69
  {/if}
46
70
  <div class="flex w-full flex-row gap-2 items-center justify-end">
47
71
  {#if validCode}
48
- <Badge color="green">
49
- <CheckCircle size={16} />
50
- </Badge>
72
+ <Badge color="green" baseClass="!text-2xs">Valid</Badge>
51
73
  {:else}
52
- <Badge color="red">
53
- <X size={16} />
54
- </Badge>
74
+ <Badge color="red" baseClass="!text-2xs">Invalid</Badge>
55
75
  {/if}
56
76
 
77
+ {#if id.startsWith('unused-') || id.startsWith('bg_')}
78
+ <Popover notClickable placement="bottom">
79
+ <Button
80
+ size="xs"
81
+ color="light"
82
+ btnClasses="!px-2 !bg-red-100 hover:!bg-red-200"
83
+ aria-label="Delete"
84
+ on:click={() => dispatch('delete')}
85
+ >
86
+ <Trash2 size={14} class="text-red-800" />
87
+ </Button>
88
+ <svelte:fragment slot="text">Delete</svelte:fragment>
89
+ </Popover>
90
+ {/if}
91
+ <Popover notClickable placement="bottom">
92
+ <Button
93
+ size="xs"
94
+ color="light"
95
+ btnClasses="!px-2 !bg-gray-100 hover:!bg-gray-200"
96
+ aria-label="Open full editor"
97
+ on:click={() => {
98
+ inlineScriptEditorDrawer?.openDrawer()
99
+ }}
100
+ >
101
+ <Maximize2 size={14} />
102
+ </Button>
103
+ <svelte:fragment slot="text">Open full editor</svelte:fragment>
104
+ </Popover>
57
105
  <Button
58
106
  variant="border"
59
107
  size="xs"
60
- color="blue"
108
+ color="light"
109
+ btnClasses="!px-2 !py-1"
61
110
  on:click={async () => {
62
111
  editor.format()
63
112
  }}
64
113
  >
65
- Format&nbsp;<Tooltip>Ctrl+S</Tooltip>
114
+ <div class="flex flex-row gap-1 items-center">
115
+ Format
116
+
117
+ <div class="flex flex-row items-center gap-1">
118
+ <Kbd>{isMac ? '⌘' : 'CTRL'}</Kbd>
119
+ <Kbd>S</Kbd>
120
+ </div>
121
+ </div>
66
122
  </Button>
67
- {#if id.startsWith('unused-')}
68
- <Button
69
- size="xs"
70
- color="light"
71
- variant="border"
72
- iconOnly
73
- startIcon={{ icon: faTrash }}
74
- on:click={() => dispatch('delete')}
75
- />
76
- {:else if $runnableComponents[id] != undefined}
123
+ {#if $runnableComponents[id] != undefined}
77
124
  <Button
78
125
  loading={runLoading}
79
126
  size="xs"
80
- color="blue"
127
+ color="dark"
128
+ variant="border"
129
+ btnClasses="!px-2 !py-1 !bg-gray-700 !text-white hover:!bg-gray-900"
81
130
  on:click={async () => {
82
131
  runLoading = true
83
132
  await $runnableComponents[id]?.()
84
133
  runLoading = false
85
134
  }}
86
135
  >
87
- Run&nbsp;
88
- <Tooltip light>Ctrl+Enter</Tooltip>
136
+ <div class="flex flex-row gap-1 items-center">
137
+ Run
138
+
139
+ <div class="flex flex-row items-center gap-1">
140
+ <Kbd>{isMac ? '⌘' : 'CTRL'}</Kbd>
141
+ <Kbd>
142
+ <div class="h-4 flex items-center justify-center">
143
+ <CornerDownLeft size={10} />
144
+ </div>
145
+ </Kbd>
146
+ </div>
147
+ </div>
89
148
  </Button>
90
149
  {/if}
91
-
92
- <Button
93
- size="xs"
94
- color="blue"
95
- on:click={() => {
96
- inlineScriptEditorDrawer?.openDrawer()
97
- }}
98
- >
99
- <div class="flex gap-1 items-center">
100
- <Code2 size={16} />
101
- Open full editor
102
- </div>
103
- </Button>
104
150
  </div>
105
151
  </div>
106
152
 
@@ -125,6 +171,7 @@ let runLoading = false;
125
171
  await inferInlineScriptSchema(inlineScript?.language, e.detail, inlineScript.schema)
126
172
  if (JSON.stringify(inlineScript.schema) != oldSchema) {
127
173
  inlineScript = inlineScript
174
+ loadSchemaAndInputsByName()
128
175
  }
129
176
  }
130
177
  }}
@@ -1,12 +1,17 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  import type { InlineScript } from '../../types';
3
+ import type { AppInput } from '../../inputType';
3
4
  declare const __propDef: {
4
5
  props: {
5
6
  inlineScript: InlineScript;
6
7
  name?: string | undefined;
7
8
  id: string;
9
+ defaultUserInput?: boolean | undefined;
10
+ fields?: Record<string, AppInput> | undefined;
11
+ syncFields?: boolean | undefined;
8
12
  };
9
13
  events: {
14
+ keydown: KeyboardEvent;
10
15
  delete: CustomEvent<any>;
11
16
  } & {
12
17
  [evt: string]: CustomEvent<any>;
@@ -3,12 +3,16 @@ import Button from '../../../common/button/Button.svelte';
3
3
  import FlowModuleScript from '../../../flows/content/FlowModuleScript.svelte';
4
4
  import FlowPathViewer from '../../../flows/content/FlowPathViewer.svelte';
5
5
  import { inferArgs } from '../../../../infer';
6
+ import { workspaceStore } from '../../../../stores';
6
7
  import { emptySchema, getScriptByPath } from '../../../../utils';
7
8
  import { faCodeBranch, faExternalLinkAlt, faEye, faPen } from '@fortawesome/free-solid-svg-icons';
8
9
  import { clearResultAppInput } from '../../utils';
9
10
  import EmptyInlineScript from './EmptyInlineScript.svelte';
10
11
  import InlineScriptEditor from './InlineScriptEditor.svelte';
12
+ import { computeFields } from './utils';
13
+ import { deepEqual } from 'fast-equals';
11
14
  export let componentInput;
15
+ export let defaultUserInput = false;
12
16
  export let id;
13
17
  async function fork(path) {
14
18
  let { content, language, schema } = await getScriptByPath(path);
@@ -34,6 +38,27 @@ async function fork(path) {
34
38
  }
35
39
  let drawerFlowViewer;
36
40
  let flowPath = '';
41
+ async function refreshScript(x) {
42
+ let { schema } = await getScriptByPath(x.path);
43
+ if (!deepEqual(x.schema, schema)) {
44
+ x.schema = schema;
45
+ if (componentInput?.type == 'runnable') {
46
+ componentInput.fields = computeFields(schema, false, componentInput.fields);
47
+ }
48
+ componentInput = componentInput;
49
+ }
50
+ }
51
+ $: if (componentInput &&
52
+ componentInput.type == 'runnable' &&
53
+ componentInput?.runnable?.type === 'runnableByPath' &&
54
+ componentInput.runnable.runType == 'script') {
55
+ refreshScript(componentInput.runnable);
56
+ }
57
+ function deleteInlineScript() {
58
+ if (componentInput && componentInput.type == 'runnable') {
59
+ componentInput = clearResultAppInput(componentInput);
60
+ }
61
+ }
37
62
  </script>
38
63
 
39
64
  <Drawer bind:this={drawerFlowViewer} size="1200px">
@@ -46,19 +71,19 @@ let flowPath = '';
46
71
  {#if componentInput?.runnable?.type === 'runnableByName' && componentInput?.runnable?.name !== undefined}
47
72
  {#if componentInput.runnable.inlineScript}
48
73
  <InlineScriptEditor
74
+ {defaultUserInput}
49
75
  {id}
50
76
  bind:inlineScript={componentInput.runnable.inlineScript}
51
77
  bind:name={componentInput.runnable.name}
52
- on:delete={() => {
53
- if (componentInput && componentInput.type == 'runnable') {
54
- componentInput = clearResultAppInput(componentInput)
55
- }
56
- }}
78
+ bind:fields={componentInput.fields}
79
+ syncFields
80
+ on:delete={deleteInlineScript}
57
81
  />
58
82
  {:else}
59
83
  <EmptyInlineScript
60
84
  {id}
61
85
  name={componentInput.runnable.name}
86
+ on:delete={deleteInlineScript}
62
87
  on:new={(e) => {
63
88
  if (
64
89
  componentInput &&
@@ -116,7 +141,8 @@ let flowPath = '';
116
141
  startIcon={{ icon: faEye }}
117
142
  endIcon={{ icon: faExternalLinkAlt }}
118
143
  target="_blank"
119
- href="/flows/get/{componentInput?.['runnable']?.path}">Details page</Button
144
+ href="/flows/get/{componentInput?.['runnable']?.path}?workspace_id={$workspaceStore}"
145
+ >Details page</Button
120
146
  >
121
147
  </div>
122
148
  <FlowPathViewer path={componentInput.runnable.path} />
@@ -3,6 +3,7 @@ import type { AppInput } from '../../inputType';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  componentInput: AppInput | undefined;
6
+ defaultUserInput?: boolean | undefined;
6
7
  id: string;
7
8
  };
8
9
  events: {
@@ -2,10 +2,19 @@
2
2
  import SplitPanesWrapper from '../../../splitPanes/SplitPanesWrapper.svelte';
3
3
  import { Pane, Splitpanes } from 'svelte-splitpanes';
4
4
  import InlineScriptsPanelList from './InlineScriptsPanelList.svelte';
5
- import InlineScriptEditorPanel from './InlineScriptEditorPanel.svelte';
6
5
  import InlineScriptEditor from './InlineScriptEditor.svelte';
7
- const { lazyGrid, app } = getContext('AppEditorContext');
6
+ import EmptyInlineScript from './EmptyInlineScript.svelte';
7
+ import InlineScriptEditorPanel from './InlineScriptEditorPanel.svelte';
8
+ const { app, staticOutputs, runnableComponents } = getContext('AppViewerContext');
8
9
  let selectedScriptComponentId = undefined;
10
+ function deleteBackgroundScript(index) {
11
+ // remove the script from the array at the index
12
+ $app.hiddenInlineScripts.splice(index, 1);
13
+ $app.hiddenInlineScripts = [...$app.hiddenInlineScripts];
14
+ delete $staticOutputs[`bg_${index}`];
15
+ delete $runnableComponents[`bg_${index}`];
16
+ $staticOutputs = $staticOutputs;
17
+ }
9
18
  </script>
10
19
 
11
20
  <SplitPanesWrapper>
@@ -14,16 +23,24 @@ let selectedScriptComponentId = undefined;
14
23
  <InlineScriptsPanelList bind:selectedScriptComponentId />
15
24
  </Pane>
16
25
  <Pane size={75}>
17
- {#each $lazyGrid as gridComponent, index (index)}
18
- {#if gridComponent.data.id === selectedScriptComponentId}
26
+ {#if !selectedScriptComponentId}
27
+ <div class="text-sm text-gray-500 text-center py-8 px-2">
28
+ Select a script on the left panel
29
+ </div>
30
+ {/if}
31
+
32
+ {#each $app.grid as gridItem, index (gridItem?.data?.id ?? index)}
33
+ {#if gridItem?.data?.id && gridItem.data.id === selectedScriptComponentId}
19
34
  <InlineScriptEditorPanel
20
- id={gridComponent.data.id}
21
- bind:componentInput={gridComponent.data.componentInput}
35
+ defaultUserInput={gridItem?.data?.type == 'formcomponent' ||
36
+ gridItem?.data?.type == 'buttonformcomponent'}
37
+ id={gridItem.data.id}
38
+ bind:componentInput={gridItem.data.componentInput}
22
39
  />
23
40
  {/if}
24
41
 
25
- {#if gridComponent.data.type === 'tablecomponent'}
26
- {#each gridComponent.data.actionButtons as actionButton, index (index)}
42
+ {#if gridItem?.data?.type === 'tablecomponent'}
43
+ {#each gridItem.data.actionButtons as actionButton, index (index)}
27
44
  {#if actionButton.id === selectedScriptComponentId}
28
45
  <InlineScriptEditorPanel
29
46
  id={actionButton.id}
@@ -33,6 +50,33 @@ let selectedScriptComponentId = undefined;
33
50
  {/each}
34
51
  {/if}
35
52
  {/each}
53
+
54
+ {#if $app.subgrids}
55
+ {#each Object.keys($app.subgrids ?? {}) as key (key)}
56
+ {#each $app.subgrids[key] as gridItem (gridItem?.data?.id)}
57
+ {#if gridItem?.data?.id && gridItem.data.id === selectedScriptComponentId}
58
+ <InlineScriptEditorPanel
59
+ defaultUserInput={gridItem.data?.type == 'formcomponent' ||
60
+ gridItem.data?.type == 'buttonformcomponent'}
61
+ id={gridItem.data.id}
62
+ bind:componentInput={gridItem.data.componentInput}
63
+ />
64
+ {/if}
65
+
66
+ {#if gridItem?.data?.type === 'tablecomponent'}
67
+ {#each gridItem.data.actionButtons as actionButton, index (index)}
68
+ {#if actionButton.id === selectedScriptComponentId}
69
+ <InlineScriptEditorPanel
70
+ id={actionButton.id}
71
+ bind:componentInput={actionButton.componentInput}
72
+ />
73
+ {/if}
74
+ {/each}
75
+ {/if}
76
+ {/each}
77
+ {/each}
78
+ {/if}
79
+
36
80
  {#each $app.unusedInlineScripts as unusedInlineScript, index (index)}
37
81
  {#if `unused-${index}` === selectedScriptComponentId}
38
82
  <InlineScriptEditor
@@ -47,6 +91,29 @@ let selectedScriptComponentId = undefined;
47
91
  />
48
92
  {/if}
49
93
  {/each}
94
+ {#each $app?.hiddenInlineScripts ?? [] as hiddenInlineScript, index (index)}
95
+ {#if `bg_${index}` === selectedScriptComponentId}
96
+ {#if hiddenInlineScript.inlineScript}
97
+ <InlineScriptEditor
98
+ id={`bg_${index}`}
99
+ bind:inlineScript={hiddenInlineScript.inlineScript}
100
+ bind:name={hiddenInlineScript.name}
101
+ bind:fields={hiddenInlineScript.fields}
102
+ syncFields
103
+ on:delete={() => deleteBackgroundScript(index)}
104
+ />
105
+ {:else}
106
+ <EmptyInlineScript
107
+ id={`b_${index}`}
108
+ name={hiddenInlineScript.name}
109
+ on:delete={() => deleteBackgroundScript(index)}
110
+ on:new={(e) => {
111
+ hiddenInlineScript.inlineScript = e.detail
112
+ }}
113
+ />
114
+ {/if}
115
+ {/if}
116
+ {/each}
50
117
  </Pane>
51
118
  </Splitpanes>
52
119
  </SplitPanesWrapper>
@@ -1,93 +1,149 @@
1
- <script>import { Badge } from '../../../common';
2
- import { classNames } from '../../../../utils';
1
+ <script>import { Badge, Button } from '../../../common';
2
+ import { Plus } from 'lucide-svelte';
3
3
  import { getContext } from 'svelte';
4
+ import Tooltip from '../../../Tooltip.svelte';
5
+ import { getAllScriptNames } from '../../utils';
4
6
  import PanelSection from '../settingsPanel/common/PanelSection.svelte';
5
7
  import { getAppScripts } from './utils';
8
+ const PREFIX = 'script-selector-';
6
9
  export let selectedScriptComponentId = undefined;
7
- const { app, selectedComponent, lazyGrid } = getContext('AppEditorContext');
8
- function selectInlineScript(id) {
10
+ const { app, selectedComponent } = getContext('AppViewerContext');
11
+ function selectScript(id) {
9
12
  selectedScriptComponentId = id;
10
- if (!id.startsWith('unused-')) {
13
+ if (!id.startsWith('unused-') || !id.startsWith('bg_')) {
11
14
  $selectedComponent = selectedScriptComponentId;
12
15
  }
13
16
  }
14
- $: runnables = getAppScripts($lazyGrid);
15
- // When seleced component changes, update selectedScriptComponentId
16
- $: {
17
- if (selectedComponent) {
18
- selectedScriptComponentId = $selectedComponent;
17
+ $: runnables = getAppScripts($app.grid, $app.subgrids);
18
+ // When selected component changes, update selectedScriptComponentId
19
+ $: if ($selectedComponent != selectedScriptComponentId) {
20
+ selectedScriptComponentId = $selectedComponent;
21
+ }
22
+ function createBackgroundScript() {
23
+ let index = 0;
24
+ let newScriptPath = `Background Script ${index}`;
25
+ const names = getAllScriptNames($app);
26
+ // Find a name that is not used by any other inline script
27
+ while (names.includes(newScriptPath)) {
28
+ newScriptPath = `Background Script ${++index}`;
29
+ }
30
+ if (!$app.hiddenInlineScripts) {
31
+ $app.hiddenInlineScripts = [];
19
32
  }
33
+ $app.hiddenInlineScripts.push({
34
+ name: newScriptPath,
35
+ inlineScript: undefined,
36
+ fields: {}
37
+ });
38
+ $app.hiddenInlineScripts = $app.hiddenInlineScripts;
39
+ selectScript(`bg_${$app.hiddenInlineScripts.length - 1}`);
20
40
  }
21
41
  </script>
22
42
 
23
- <div class="min-h-full flex flex-col gap-4">
24
- <PanelSection title="Inline scripts" smallPadding>
25
- <div class="flex flex-col gap-2 w-full">
26
- {#if runnables.inline.length > 0}
27
- <div class="flex gap-2 flex-col ">
28
- {#each runnables.inline as { name, id }, index (index)}
29
- <!-- svelte-ignore a11y-click-events-have-key-events -->
30
- <div
31
- class="{classNames(
32
- 'border flex gap-1 truncate justify-between flex-row w-full items-center p-2 rounded-sm cursor-pointer hover:bg-blue-50 hover:text-blue-400',
33
- selectedScriptComponentId === id ? 'border-blue-500 border' : ''
34
- )},"
35
- on:click={() => selectInlineScript(id)}
36
- >
37
- <span class="text-xs truncate">{name}</span>
38
- <div>
39
- <Badge color="dark-indigo">{id}</Badge>
40
- </div>
41
- </div>
42
- {/each}
43
- </div>
44
- {/if}
43
+ <PanelSection title="Runnables" smallPadding>
44
+ <div class="w-full flex flex-col gap-6 py-1">
45
+ <div>
46
+ <div class="text-sm font-semibold truncate mb-1"> Inline scripts </div>
47
+ <div class="flex flex-col gap-2 w-full">
48
+ {#if runnables.inline.length > 0}
49
+ <div class="flex gap-1 flex-col ">
50
+ {#each runnables.inline as { name, id }, index (index)}
51
+ <button
52
+ id={PREFIX + id}
53
+ class="border flex gap-1 truncate font-normal justify-between w-full items-center py-1 px-2 rounded-sm duration-200
54
+ {selectedScriptComponentId === id ? 'border-blue-500 bg-blue-100' : 'hover:bg-blue-50'}"
55
+ on:click={() => selectScript(id)}
56
+ >
57
+ <span class="text-2xs truncate">{name}</span>
58
+ <div>
59
+ <Badge color="dark-indigo">{id}</Badge>
60
+ </div>
61
+ </button>
62
+ {/each}
63
+ </div>
64
+ {/if}
65
+ {#if $app.unusedInlineScripts?.length > 0}
66
+ <div class="flex gap-1 flex-col ">
67
+ {#each $app.unusedInlineScripts as unusedInlineScript, index (index)}
68
+ {@const id = `unused-${index}`}
69
+ <button
70
+ id={PREFIX + id}
71
+ class="border flex gap-1 truncate font-normal justify-between w-full items-center py-1 px-2 rounded-sm duration-200
72
+ {selectedScriptComponentId === id ? 'border-blue-500 bg-blue-100' : 'hover:bg-blue-50'}"
73
+ on:click={() => selectScript(id)}
74
+ >
75
+ <span class="text-2xs truncate">{unusedInlineScript.name}</span>
76
+ <Badge color="red">Detached</Badge>
77
+ </button>
78
+ {/each}
79
+ </div>
80
+ {/if}
81
+ {#if runnables.inline.length == 0 && $app.unusedInlineScripts?.length == 0}
82
+ <div class="text-xs text-gray-500">No inline scripts</div>
83
+ {/if}
84
+ </div>
85
+ </div>
45
86
 
46
- {#if $app.unusedInlineScripts?.length > 0}
47
- <div class="flex gap-2 flex-col ">
48
- {#each $app.unusedInlineScripts as unusedInlineScript, index (index)}
49
- <!-- svelte-ignore a11y-click-events-have-key-events -->
50
- <div
51
- class="{classNames(
52
- 'border flex gap-1 truncate justify-between flex-row w-full items-center p-2 rounded-md cursor-pointer hover:bg-blue-50 hover:text-blue-400',
53
- selectedScriptComponentId === `unused-${index}` ? 'bg-blue-100 text-blue-600' : ''
54
- )},"
55
- on:click={() => selectInlineScript(`unused-${index}`)}
87
+ <div>
88
+ <div class="text-sm font-semibold truncate mb-1"> Workspace/Hub </div>
89
+ <div class="flex flex-col gap-1 w-full">
90
+ {#if runnables.imported.length > 0}
91
+ {#each runnables.imported as { name, id }, index (index)}
92
+ <button
93
+ id={PREFIX + id}
94
+ class="border flex gap-1 truncate font-normal justify-between w-full items-center py-1 px-2 rounded-sm duration-200
95
+ {selectedScriptComponentId === id ? 'border-blue-500 bg-blue-100' : 'hover:bg-blue-50'}"
96
+ on:click={() => selectScript(id)}
56
97
  >
57
- <span class="text-xs truncate">{unusedInlineScript.name}</span>
58
- <Badge color="red">Detached</Badge>
59
- </div>
98
+ <span class="text-2xs truncate">{name}</span>
99
+ <Badge color="dark-indigo">{id}</Badge>
100
+ </button>
60
101
  {/each}
61
- </div>
62
- {/if}
63
-
64
- {#if runnables.inline.length == 0 && $app.unusedInlineScripts?.length == 0}
65
- <div class="text-sm text-gray-500">No inline scripts</div>
66
- {/if}
102
+ {:else}
103
+ <div class="text-xs text-gray-500">No imported scripts/flows</div>
104
+ {/if}
105
+ </div>
67
106
  </div>
68
- </PanelSection>
69
107
 
70
- <PanelSection title="Imported scripts" smallPadding>
71
- <div class="flex flex-col gap-2 w-full">
72
- {#if runnables.imported.length > 0}
73
- <div class="flex gap-2 flex-col ">
74
- {#each runnables.imported as { name, id }, index (index)}
75
- <!-- svelte-ignore a11y-click-events-have-key-events -->
76
- <div
77
- class="{classNames(
78
- 'border flex gap-1 truncate justify-between flex-row w-full items-center p-2 rounded-md cursor-pointer hover:bg-blue-50 hover:text-blue-400',
79
- selectedScriptComponentId === id ? 'bg-blue-100 text-blue-600' : ''
80
- )},"
81
- on:click={() => selectInlineScript(id)}
108
+ <div>
109
+ <div class="w-full flex justify-between items-center">
110
+ <div class="text-sm font-semibold truncate mb-1">
111
+ Background scripts
112
+ <Tooltip class="mb-0.5">
113
+ Background scripts are triggered upon global refresh or when their input changes. The
114
+ result of a background script can be shared among many components.
115
+ </Tooltip>
116
+ </div>
117
+ <Button
118
+ size="xs"
119
+ color="light"
120
+ variant="border"
121
+ btnClasses="!rounded-full !p-1"
122
+ title="Create a new background script"
123
+ aria-label="Create a new background script"
124
+ on:click={createBackgroundScript}
125
+ >
126
+ <Plus size={14} class="text-gray-500" />
127
+ </Button>
128
+ </div>
129
+ <div class="flex flex-col gap-1 w-full">
130
+ {#if $app.hiddenInlineScripts?.length > 0}
131
+ {#each $app.hiddenInlineScripts as { name }, index (index)}
132
+ {@const id = `bg_${index}`}
133
+ <button
134
+ id={PREFIX + id}
135
+ class="border flex gap-1 truncate font-normal justify-between w-full items-center py-1 px-2 rounded-sm duration-200
136
+ {selectedScriptComponentId === id ? 'border-blue-500 bg-blue-100' : 'hover:bg-blue-50'}"
137
+ on:click={() => selectScript(id)}
82
138
  >
83
- <span class="text-xs truncate">{name}</span>
139
+ <span class="text-2xs truncate">{name}</span>
84
140
  <Badge color="dark-indigo">{id}</Badge>
85
- </div>
141
+ </button>
86
142
  {/each}
87
- </div>
88
- {:else}
89
- <div class="text-sm text-gray-500">No items</div>
90
- {/if}
143
+ {:else}
144
+ <div class="text-xs text-gray-500">No background scripts</div>
145
+ {/if}
146
+ </div>
91
147
  </div>
92
- </PanelSection>
93
- </div>
148
+ </div>
149
+ </PanelSection>
@@ -1,4 +1,6 @@
1
- import type { AppComponent, GridItem } from "../../types";
1
+ import type { Schema } from '../../../../common';
2
+ import type { AppInputs } from '../../inputType';
3
+ import type { GridItem } from '../../types';
2
4
  export interface AppScriptsList {
3
5
  inline: {
4
6
  name: string;
@@ -9,7 +11,5 @@ export interface AppScriptsList {
9
11
  id: string;
10
12
  }[];
11
13
  }
12
- export declare function getAppScripts(grid: GridItem[]): FilledItem<{
13
- data: AppComponent;
14
- id: string;
15
- }>;
14
+ export declare function computeFields(schema: Schema, defaultUserInput: boolean, fields: AppInputs): Record<string, import("../../inputType").StaticAppInput>;
15
+ export declare function getAppScripts(grid: GridItem[], subgrids: Record<string, GridItem[]> | undefined): AppScriptsList;