windmill-components 1.60.4 → 1.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/assets/app.css +3 -0
  2. package/common.d.ts +5 -1
  3. package/components/ApiConnectForm.svelte +66 -5
  4. package/components/AppConnect.svelte +24 -9
  5. package/components/ArgInput.svelte +1 -1
  6. package/components/CliHelpBox.svelte +49 -0
  7. package/components/CliHelpBox.svelte.d.ts +14 -0
  8. package/components/DisplayResult.svelte +51 -1
  9. package/components/DisplayResult.svelte.d.ts +1 -0
  10. package/components/Editor.svelte +17 -7
  11. package/components/EditorBar.svelte +129 -111
  12. package/components/FlowBuilder.svelte +2 -2
  13. package/components/FlowJobResult.svelte +10 -2
  14. package/components/FlowJobResult.svelte.d.ts +1 -0
  15. package/components/FlowMetadata.svelte +24 -8
  16. package/components/FlowPreviewContent.svelte +3 -4
  17. package/components/FlowStatusViewer.svelte +41 -9
  18. package/components/FolderEditor.svelte +3 -2
  19. package/components/HighlightCode.svelte +7 -1
  20. package/components/InlineCodeCopy.svelte +11 -0
  21. package/components/InlineCodeCopy.svelte.d.ts +16 -0
  22. package/components/InputTransformForm.svelte +9 -5
  23. package/components/LogViewer.svelte +6 -0
  24. package/components/LogViewer.svelte.d.ts +1 -0
  25. package/components/ModulePreview.svelte +11 -2
  26. package/components/MoveDrawer.svelte +1 -1
  27. package/components/Multiselect.svelte.d.ts +2 -2
  28. package/components/ObjectResourceInput.svelte +6 -1
  29. package/components/Path.svelte +14 -5
  30. package/components/Popover.svelte +8 -2
  31. package/components/Popover.svelte.d.ts +1 -0
  32. package/components/Range.svelte.d.ts +2 -2
  33. package/components/ResourceEditor.svelte +39 -16
  34. package/components/ResourcePicker.svelte +0 -1
  35. package/components/RunForm.svelte +26 -2
  36. package/components/RunForm.svelte.d.ts +1 -0
  37. package/components/ScheduleEditor.svelte +1 -1
  38. package/components/SchemaEditor.svelte +2 -2
  39. package/components/SchemaForm.svelte +14 -4
  40. package/components/SchemaForm.svelte.d.ts +1 -0
  41. package/components/ScriptBuilder.svelte +45 -22
  42. package/components/ScriptBuilder.svelte.d.ts +1 -0
  43. package/components/ScriptEditor.svelte +1 -0
  44. package/components/SharedBadge.svelte +5 -5
  45. package/components/Slider.svelte +14 -0
  46. package/components/Slider.svelte.d.ts +19 -0
  47. package/components/StringTypeNarrowing.svelte +0 -1
  48. package/components/SuperadminSettings.svelte +11 -3
  49. package/components/SuperadminSettings.svelte.d.ts +2 -0
  50. package/components/TemplateEditor.svelte.d.ts +204 -0
  51. package/components/TestJobLoader.svelte +3 -3
  52. package/components/Toggle.svelte +1 -2
  53. package/components/UserSettings.svelte +11 -3
  54. package/components/UserSettings.svelte.d.ts +2 -0
  55. package/components/VariableEditor.svelte +1 -1
  56. package/components/WhitelistIp.svelte +23 -0
  57. package/components/WhitelistIp.svelte.d.ts +14 -0
  58. package/components/apps/components/buttons/AppButton.svelte +52 -6
  59. package/components/apps/components/buttons/AppButton.svelte.d.ts +3 -0
  60. package/components/apps/components/{form → buttons}/AppForm.svelte +3 -1
  61. package/components/apps/components/buttons/AppFormButton.svelte +137 -0
  62. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +25 -0
  63. package/components/apps/components/buttons/index.d.ts +3 -0
  64. package/components/apps/components/buttons/index.js +3 -0
  65. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte +15 -4
  66. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte.d.ts +1 -0
  67. package/components/apps/components/display/AppDisplayComponent.svelte +31 -0
  68. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +23 -0
  69. package/components/apps/components/{dataDisplay → display}/AppHtml.svelte +6 -5
  70. package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +1 -1
  71. package/components/apps/components/display/AppIcon.svelte +35 -0
  72. package/components/apps/components/display/AppIcon.svelte.d.ts +22 -0
  73. package/components/apps/components/display/AppImage.svelte +27 -0
  74. package/components/apps/components/display/AppImage.svelte.d.ts +22 -0
  75. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte +2 -1
  76. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte.d.ts +1 -0
  77. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte +2 -1
  78. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte.d.ts +1 -0
  79. package/components/apps/components/{dataDisplay → display}/AppText.svelte +16 -14
  80. package/components/apps/components/{dataDisplay → display}/AppText.svelte.d.ts +3 -0
  81. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte +3 -2
  82. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte.d.ts +1 -0
  83. package/components/apps/components/display/PlotlyHtml.svelte +38 -0
  84. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +24 -0
  85. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte +2 -3
  86. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +1 -0
  87. package/components/apps/components/display/index.d.ts +12 -0
  88. package/components/apps/components/display/index.js +12 -0
  89. package/components/apps/components/display/table/AppAggridTable.svelte +83 -0
  90. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +24 -0
  91. package/components/apps/components/{table → display/table}/AppTable.svelte +32 -21
  92. package/components/apps/components/{table → display/table}/AppTable.svelte.d.ts +4 -2
  93. package/components/apps/components/{table → display/table}/AppTableFooter.svelte +1 -1
  94. package/components/apps/components/helpers/AlignWrapper.svelte +19 -19
  95. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +4 -2
  96. package/components/apps/components/helpers/HiddenComponent.svelte +22 -0
  97. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +25 -0
  98. package/components/apps/components/helpers/InputDefaultValue.svelte +17 -0
  99. package/components/apps/components/helpers/InputDefaultValue.svelte.d.ts +17 -0
  100. package/components/apps/components/helpers/InputValue.svelte +5 -7
  101. package/components/apps/components/helpers/InputValue.svelte.d.ts +0 -1
  102. package/components/apps/components/helpers/RunnableComponent.svelte +37 -48
  103. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
  104. package/components/apps/components/helpers/RunnableWrapper.svelte +7 -2
  105. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +2 -1
  106. package/components/apps/components/helpers/index.d.ts +10 -0
  107. package/components/apps/components/helpers/index.js +10 -0
  108. package/components/apps/components/icon.d.ts +1 -0
  109. package/components/apps/components/icon.js +18 -0
  110. package/components/apps/components/index.d.ts +5 -0
  111. package/components/apps/components/index.js +5 -0
  112. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte +4 -2
  113. package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte +6 -0
  114. package/components/apps/components/inputs/AppFileInput.svelte +34 -0
  115. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +20 -0
  116. package/components/apps/components/inputs/AppNumberInput.svelte +48 -0
  117. package/components/apps/components/inputs/AppRangeInput.svelte +44 -0
  118. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +23 -0
  119. package/components/apps/components/inputs/AppSelect.svelte +90 -0
  120. package/components/apps/components/{selectInputs → inputs}/AppSelect.svelte.d.ts +2 -0
  121. package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte +13 -9
  122. package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte +6 -0
  123. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +49 -0
  124. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +21 -0
  125. package/components/apps/components/inputs/currency/CurrencyInput.svelte +181 -0
  126. package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +32 -0
  127. package/components/apps/components/inputs/index.d.ts +9 -0
  128. package/components/apps/components/inputs/index.js +9 -0
  129. package/components/apps/components/layout/AppContainer.svelte +32 -0
  130. package/components/apps/components/layout/AppContainer.svelte.d.ts +21 -0
  131. package/components/apps/components/layout/AppDivider.svelte +20 -0
  132. package/components/apps/components/layout/AppDivider.svelte.d.ts +22 -0
  133. package/components/apps/components/layout/AppTabs.svelte +58 -0
  134. package/components/apps/components/layout/AppTabs.svelte.d.ts +24 -0
  135. package/components/apps/components/layout/index.d.ts +3 -0
  136. package/components/apps/components/layout/index.js +3 -0
  137. package/components/apps/editor/AppComponentInput.svelte +33 -0
  138. package/components/apps/editor/AppComponentInput.svelte.d.ts +18 -0
  139. package/components/apps/editor/AppComponentInputs.svelte +13 -0
  140. package/components/apps/editor/AppComponentInputs.svelte.d.ts +20 -0
  141. package/components/apps/editor/AppEditor.svelte +66 -31
  142. package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
  143. package/components/apps/editor/AppEditorHeader.svelte +74 -18
  144. package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  145. package/components/apps/editor/AppInputs.svelte +60 -0
  146. package/components/apps/editor/AppInputs.svelte.d.ts +14 -0
  147. package/components/apps/editor/AppPreview.svelte +11 -6
  148. package/components/apps/editor/ComponentHeader.svelte +40 -2
  149. package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -1
  150. package/components/apps/editor/GridEditor.svelte +75 -32
  151. package/components/apps/editor/GridEditor.svelte.d.ts +2 -0
  152. package/components/apps/editor/SettingsPanel.svelte +31 -3
  153. package/components/apps/editor/SubGridEditor.svelte +111 -0
  154. package/components/apps/editor/SubGridEditor.svelte.d.ts +24 -0
  155. package/components/apps/editor/TablePanel.svelte +2 -0
  156. package/components/apps/editor/TablePanel.svelte.d.ts +1 -1
  157. package/components/apps/editor/appUtils.d.ts +9 -0
  158. package/components/apps/editor/appUtils.js +141 -0
  159. package/components/apps/editor/component/Component.svelte +209 -0
  160. package/components/apps/editor/component/Component.svelte.d.ts +23 -0
  161. package/components/apps/editor/component/README.md +15 -0
  162. package/components/apps/editor/component/components.d.ts +65 -0
  163. package/components/apps/editor/component/components.js +1102 -0
  164. package/components/apps/editor/component/default-codes.d.ts +3 -0
  165. package/components/apps/editor/component/default-codes.js +322 -0
  166. package/components/apps/editor/component/index.d.ts +4 -0
  167. package/components/apps/editor/component/index.js +4 -0
  168. package/components/apps/editor/component/sets.d.ts +2 -0
  169. package/components/apps/editor/component/sets.js +47 -0
  170. package/components/apps/editor/componentsPanel/ComponentList.svelte +30 -106
  171. package/components/apps/editor/componentsPanel/CssProperty.svelte +31 -0
  172. package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +20 -0
  173. package/components/apps/editor/componentsPanel/CssSettings.svelte +141 -0
  174. package/components/apps/editor/componentsPanel/CssSettings.svelte.d.ts +14 -0
  175. package/components/apps/editor/componentsPanel/ListItem.svelte +28 -0
  176. package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +20 -0
  177. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +4 -1
  178. package/components/apps/editor/componentsPanel/componentStaticValues.js +4 -1
  179. package/components/apps/editor/contextPanel/ContextPanel.svelte +8 -6
  180. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +98 -9
  181. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +38 -29
  182. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +21 -1
  183. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +66 -8
  184. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +92 -46
  185. package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -1
  186. package/components/apps/editor/inlineScriptsPanel/utils.js +30 -0
  187. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  188. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte.d.ts +1 -1
  189. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +4 -1
  190. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +59 -1
  191. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +64 -34
  192. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +5 -3
  193. package/components/apps/editor/settingsPanel/GridTab.svelte +73 -0
  194. package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +18 -0
  195. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +3 -0
  196. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
  197. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +92 -77
  198. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  199. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +85 -0
  200. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +18 -0
  201. package/components/apps/editor/settingsPanel/Recompute.svelte +4 -1
  202. package/components/apps/editor/settingsPanel/TableActions.svelte +17 -6
  203. package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  204. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +5 -3
  205. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +83 -0
  206. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +19 -0
  207. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +6 -1
  208. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +2 -0
  209. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +23 -0
  210. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +17 -0
  211. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +3 -20
  212. package/components/apps/gridUtils.d.ts +3 -1
  213. package/components/apps/gridUtils.js +5 -3
  214. package/components/apps/inputType.d.ts +33 -6
  215. package/components/apps/types.d.ts +35 -40
  216. package/components/apps/types.js +1 -1
  217. package/components/apps/utils.d.ts +6 -5
  218. package/components/apps/utils.js +90 -94
  219. package/components/common/button/Button.svelte +12 -5
  220. package/components/common/button/Button.svelte.d.ts +3 -1
  221. package/components/common/button/ButtonPopup.svelte.d.ts +1 -1
  222. package/components/common/button/model.d.ts +2 -2
  223. package/components/common/button/model.js +21 -6
  224. package/components/common/confirmationModal/ConfirmationModal.svelte +8 -1
  225. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +4 -4
  226. package/components/common/drawer/Drawer.svelte +3 -1
  227. package/components/common/fileInput/FileInput.svelte +112 -0
  228. package/components/common/fileInput/FileInput.svelte.d.ts +27 -0
  229. package/components/common/index.d.ts +1 -0
  230. package/components/common/index.js +1 -0
  231. package/components/common/kbd/Kbd.svelte.d.ts +2 -2
  232. package/components/common/modal/Modal.svelte +74 -0
  233. package/components/common/modal/Modal.svelte.d.ts +22 -0
  234. package/components/common/popup/Popup.svelte +34 -17
  235. package/components/common/popup/Popup.svelte.d.ts +11 -4
  236. package/components/common/table/FlowRow.svelte +22 -3
  237. package/components/common/table/LanguageBadge.svelte +10 -4
  238. package/components/common/table/Row.svelte +1 -1
  239. package/components/common/table/ScriptRow.svelte +2 -2
  240. package/components/common/tabs/Tabs.svelte +9 -7
  241. package/components/common/tabs/Tabs.svelte.d.ts +3 -1
  242. package/components/flows/CreateActionsFlow.svelte +2 -3
  243. package/components/flows/content/BranchPredicateEditor.svelte +10 -8
  244. package/components/flows/content/FlowInputs.svelte +109 -99
  245. package/components/flows/content/FlowLoop.svelte +1 -1
  246. package/components/flows/content/FlowModuleComponent.svelte +3 -2
  247. package/components/flows/content/FlowRetries.svelte +8 -6
  248. package/components/flows/content/FlowSettings.svelte +72 -26
  249. package/components/flows/flowState.d.ts +1 -0
  250. package/components/flows/flowState.js +1 -0
  251. package/components/flows/flowStateUtils.js +4 -2
  252. package/components/flows/flowStore.d.ts +1 -0
  253. package/components/flows/flowStore.js +1 -0
  254. package/components/flows/map/FlowBranchAllMap.svelte +1 -1
  255. package/components/flows/map/FlowBranchOneMap.svelte +2 -2
  256. package/components/flows/map/FlowModuleSchemaItem.svelte +5 -5
  257. package/components/flows/map/FlowModuleSchemaMap.svelte +15 -8
  258. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
  259. package/components/flows/map/InsertModuleButton.svelte +24 -10
  260. package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -0
  261. package/components/flows/map/MapItem.svelte +3 -1
  262. package/components/flows/utils.js +16 -10
  263. package/components/graph/FlowGraph.svelte +38 -15
  264. package/components/graph/FlowGraph.svelte.d.ts +1 -0
  265. package/components/icons/SquareIcon.svelte +9 -0
  266. package/components/icons/SquareIcon.svelte.d.ts +17 -0
  267. package/components/icons/index.d.ts +2 -0
  268. package/components/icons/index.js +2 -0
  269. package/components/jobs/JobDetail.svelte +29 -5
  270. package/components/propertyPicker/ObjectViewer.svelte +8 -5
  271. package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
  272. package/components/propertyPicker/PropPicker.svelte +8 -1
  273. package/components/propertyPicker/PropPickerResult.svelte +1 -1
  274. package/components/random_positive_adjetive.d.ts +1 -0
  275. package/components/random_positive_adjetive.js +961 -0
  276. package/components/scriptEditor/LogPanel.svelte +2 -1
  277. package/components/sidebar/SidebarContent.svelte +1 -1
  278. package/components/sidebar/UserMenu.svelte +46 -16
  279. package/components/sidebar/UserMenu.svelte.d.ts +0 -3
  280. package/components/sidebar/WorkspaceMenu.svelte +3 -1
  281. package/components/sidebar/settings.d.ts +2 -0
  282. package/components/sidebar/settings.js +2 -0
  283. package/gen/core/OpenAPI.js +1 -1
  284. package/gen/models/CompletedJob.d.ts +1 -0
  285. package/gen/models/FlowModule.d.ts +0 -1
  286. package/gen/models/QueuedJob.d.ts +1 -0
  287. package/gen/models/WorkerPing.d.ts +1 -1
  288. package/gen/services/FlowService.d.ts +9 -0
  289. package/gen/services/FlowService.js +15 -0
  290. package/gen/services/JobService.d.ts +97 -15
  291. package/gen/services/JobService.js +74 -15
  292. package/gen/services/ScriptService.d.ts +10 -1
  293. package/gen/services/ScriptService.js +16 -1
  294. package/gen/services/VariableService.d.ts +4 -2
  295. package/gen/services/VariableService.js +8 -2
  296. package/gen/services/WorkspaceService.d.ts +17 -0
  297. package/gen/services/WorkspaceService.js +16 -0
  298. package/infer.js +3 -0
  299. package/init_scripts/python_failure_module.py +10 -0
  300. package/init_scripts/python_init_code.py +37 -0
  301. package/init_scripts/python_init_code_clear.py +5 -0
  302. package/init_scripts/python_init_code_trigger.py +14 -0
  303. package/logout.js +2 -1
  304. package/package.json +577 -522
  305. package/script_helpers.d.ts +6 -5
  306. package/script_helpers.js +7 -73
  307. package/stores.d.ts +5 -1
  308. package/stores.js +8 -1
  309. package/user.d.ts +1 -1
  310. package/user.js +14 -8
  311. package/utils.d.ts +1 -1
  312. package/utils.js +8 -7
  313. package/components/apps/components/DisplayComponent.svelte +0 -16
  314. package/components/apps/components/DisplayComponent.svelte.d.ts +0 -20
  315. package/components/apps/components/numberInputs/AppNumberInput.svelte +0 -33
  316. package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
  317. package/components/apps/editor/ComponentEditor.svelte +0 -145
  318. package/components/apps/editor/ComponentEditor.svelte.d.ts +0 -23
  319. package/components/apps/editor/componentsPanel/data.d.ts +0 -3
  320. package/components/apps/editor/componentsPanel/data.js +0 -499
  321. package/components/apps/editorUtils.d.ts +0 -1
  322. package/components/apps/editorUtils.js +0 -292
  323. /package/components/apps/components/{form → buttons}/AppForm.svelte.d.ts +0 -0
  324. /package/components/apps/components/{table → display/table}/AppTableFooter.svelte.d.ts +0 -0
  325. /package/components/apps/components/{table → display/table}/tableOptions.d.ts +0 -0
  326. /package/components/apps/components/{table → display/table}/tableOptions.js +0 -0
  327. /package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte.d.ts +0 -0
  328. /package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte.d.ts +0 -0
  329. /package/components/apps/components/{numberInputs → inputs}/AppNumberInput.svelte.d.ts +0 -0
  330. /package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte.d.ts +0 -0
  331. /package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte.d.ts +0 -0
@@ -0,0 +1,141 @@
1
+ <script>import { onMount, getContext } from 'svelte';
2
+ import { LayoutDashboardIcon, MousePointer2, CurlyBraces } from 'lucide-svelte';
3
+ import SimpleEditor from '../../../SimpleEditor.svelte';
4
+ import { emptyString } from '../../../../utils';
5
+ import { Tab, TabContent, Tabs } from '../../../common';
6
+ import ListItem from './ListItem.svelte';
7
+ import { isOpenStore } from './store';
8
+ import CssProperty from './CssProperty.svelte';
9
+ import { components } from '../component';
10
+ const TITLE_PREFIX = 'Css.';
11
+ const { app } = getContext('AppEditorContext');
12
+ let rawCode = '';
13
+ let viewJsonSchema = false;
14
+ $: rawCode && parseJson();
15
+ let jsonError = '';
16
+ function parseJson() {
17
+ try {
18
+ $app.css = JSON.parse(rawCode ?? '');
19
+ jsonError = '';
20
+ }
21
+ catch (e) {
22
+ jsonError = e.message;
23
+ }
24
+ }
25
+ function switchTab(asJson) {
26
+ viewJsonSchema = asJson;
27
+ if (asJson) {
28
+ rawCode = JSON.stringify($app.css, null, 2);
29
+ }
30
+ else {
31
+ parseJson();
32
+ }
33
+ }
34
+ const entries = [
35
+ {
36
+ type: 'app',
37
+ name: 'App',
38
+ icon: LayoutDashboardIcon,
39
+ ids: ['viewer', 'grid', 'component']
40
+ },
41
+ ...Object.values(components).map(({ name, icon, data: { type, customCss } }) => ({
42
+ type,
43
+ name,
44
+ icon,
45
+ ids: Object.keys(customCss ?? {}) ?? []
46
+ }))
47
+ ];
48
+ let isCustom = Object.fromEntries(Object.keys(entries).map((k) => [k, false]));
49
+ let newCss = $app.css ?? {};
50
+ entries.forEach((e) => {
51
+ if (!newCss[e.type]) {
52
+ isCustom[e.type] = true;
53
+ newCss[e.type] = {};
54
+ }
55
+ e.ids.forEach((id) => {
56
+ if (!newCss[e.type][id]) {
57
+ newCss[e.type][id] = { style: '', class: '' };
58
+ }
59
+ });
60
+ e.ids
61
+ .map((id) => newCss[e.type][id].class != '' || newCss[e.type][id].style != '')
62
+ .forEach((c) => {
63
+ if (c) {
64
+ isCustom[e.type] = true;
65
+ }
66
+ });
67
+ });
68
+ //@ts-ignore
69
+ $app.css = newCss;
70
+ onMount(() => {
71
+ isOpenStore.addItems([{ name: 'App' }, ...Object.values(components)].map(component => {
72
+ return { [TITLE_PREFIX + component.name]: false };
73
+ }));
74
+ });
75
+ </script>
76
+
77
+ <Tabs
78
+ selected="ui"
79
+ on:selected={(e) => switchTab(e.detail === 'json')}
80
+ class="relative"
81
+ >
82
+ <Tab value="ui" size="xs" class="grow">
83
+ <div class="m-1 center-center">
84
+ <MousePointer2 size={16} />
85
+ <span class="pl-1">UI</span>
86
+ </div>
87
+ </Tab>
88
+ <Tab value="json" size="xs" class="grow">
89
+ <div class="m-1 center-center">
90
+ <CurlyBraces size={16} />
91
+ <span class="pl-1">JSON</span>
92
+ </div>
93
+ </Tab>
94
+ <div slot="content" class="h-full overflow-y-auto">
95
+ <TabContent value="ui">
96
+ {#each entries as { type, name, icon, ids }}
97
+ {#if ids.length > 0}
98
+ <ListItem title={name} prefix={TITLE_PREFIX}>
99
+ <div slot="title" class="flex items-center">
100
+ <svelte:component this={icon} size={18} />
101
+ <span class="ml-1">
102
+ {name}
103
+ </span>
104
+ </div>
105
+ <div class="pb-2">
106
+ {#each ids as id}
107
+ <div class="mb-3">
108
+ {#if $app?.css?.[type][id]}
109
+ <CssProperty
110
+ name={id}
111
+ bind:value={$app.css[type][id]}
112
+ on:focus={() => (isCustom[type] = true)}
113
+ />
114
+ {/if}
115
+ </div>
116
+ {/each}
117
+ </div>
118
+ </ListItem>
119
+ {/if}
120
+ {/each}
121
+ </TabContent>
122
+ <TabContent value="json">
123
+ {#if !emptyString(jsonError)}
124
+ <span class="text-red-400 text-xs mb-1 flex flex-row-reverse">
125
+ {jsonError}
126
+ </span>
127
+ {:else}
128
+ <div class="py-2" />
129
+ {/if}
130
+ <div class="h-full w-full py-1">
131
+ <SimpleEditor
132
+ autoHeight
133
+ class="editor"
134
+ lang="json"
135
+ bind:code={rawCode}
136
+ fixedOverflowWidgets={false}
137
+ />
138
+ </div>
139
+ </TabContent>
140
+ </div>
141
+ </Tabs>
@@ -0,0 +1,14 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: Record<string, never>;
4
+ events: {
5
+ [evt: string]: CustomEvent<any>;
6
+ };
7
+ slots: {};
8
+ };
9
+ export type CssSettingsProps = typeof __propDef.props;
10
+ export type CssSettingsEvents = typeof __propDef.events;
11
+ export type CssSettingsSlots = typeof __propDef.slots;
12
+ export default class CssSettings extends SvelteComponentTyped<CssSettingsProps, CssSettingsEvents, CssSettingsSlots> {
13
+ }
14
+ export {};
@@ -0,0 +1,28 @@
1
+ <script>import { slide } from 'svelte/transition';
2
+ import { ChevronDown } from 'lucide-svelte';
3
+ import { isOpenStore } from './store';
4
+ export let title;
5
+ export let prefix = '';
6
+ $: storeTitle = prefix + title;
7
+ $: isOpen = $isOpenStore[storeTitle];
8
+ </script>
9
+
10
+ <section class="mt-1 mb-2 px-1">
11
+ <button
12
+ on:click|preventDefault={() => isOpenStore.toggle(storeTitle)}
13
+ class="w-full flex justify-between items-center text-gray-700 px-2 py-1
14
+ rounded-sm duration-200 hover:bg-gray-100"
15
+ >
16
+ <h1 class="text-sm font-semibold text-left">
17
+ <slot name="title">
18
+ {title}
19
+ </slot>
20
+ </h1>
21
+ <ChevronDown class="rotate-0 duration-300 {isOpen ? '!rotate-180' : ''}" />
22
+ </button>
23
+ {#if isOpen}
24
+ <div transition:slide|local={{ duration: 300 }} class="px-2">
25
+ <slot />
26
+ </div>
27
+ {/if}
28
+ </section>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ title: string;
5
+ prefix?: string | undefined;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {
11
+ title: {};
12
+ default: {};
13
+ };
14
+ };
15
+ export type ListItemProps = typeof __propDef.props;
16
+ export type ListItemEvents = typeof __propDef.events;
17
+ export type ListItemSlots = typeof __propDef.slots;
18
+ export default class ListItem extends SvelteComponentTyped<ListItemProps, ListItemEvents, ListItemSlots> {
19
+ }
20
+ export {};
@@ -1,7 +1,10 @@
1
1
  export declare const staticValues: {
2
- readonly buttonColorOptions: ("blue" | "gray" | "red" | "green" | "dark" | "light")[];
2
+ readonly buttonColorOptions: ("none" | "blue" | "gray" | "red" | "green" | "dark" | "light")[];
3
3
  readonly buttonSizeOptions: readonly ["xs", "sm", "md", "lg", "xl"];
4
4
  readonly tableSearchOptions: readonly ["By Component", "By Runnable", "Disabled"];
5
5
  readonly chartThemeOptions: readonly ["theme1", "theme2", "theme3"];
6
6
  readonly textStyleOptions: readonly ["Title", "Subtitle", "Body", "Label", "Caption"];
7
+ readonly currencyOptions: readonly ["USD", "EUR", "GBP", "CAD", "AUD", "JPY", "CNY", "INR", "BRL"];
8
+ readonly localeOptions: readonly ["en-US", "en-GB", "en-IE", "de-DE", "fr-FR", "br-FR", "ja-JP", "pt-TL", "fr-CA", "en-CA"];
9
+ readonly objectFitOptions: readonly ["contain", "cover", "fill"];
7
10
  };
@@ -5,5 +5,8 @@ export const staticValues = {
5
5
  buttonSizeOptions: ['xs', 'sm', 'md', 'lg', 'xl'],
6
6
  tableSearchOptions: ['By Component', 'By Runnable', 'Disabled'],
7
7
  chartThemeOptions: ['theme1', 'theme2', 'theme3'],
8
- textStyleOptions: ['Title', 'Subtitle', 'Body', 'Label', 'Caption']
8
+ textStyleOptions: ['Title', 'Subtitle', 'Body', 'Label', 'Caption'],
9
+ currencyOptions: ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'JPY', 'CNY', 'INR', 'BRL'],
10
+ localeOptions: ['en-US', 'en-GB', 'en-IE', 'de-DE', 'fr-FR', 'br-FR', 'ja-JP', 'pt-TL', 'fr-CA', 'en-CA'],
11
+ objectFitOptions: ['contain', 'cover', 'fill']
9
12
  };
@@ -1,8 +1,7 @@
1
- <script>import { page } from '$app/stores';
2
- import { classNames } from '../../../../utils';
1
+ <script>import { classNames } from '../../../../utils';
3
2
  import { getContext } from 'svelte';
4
- import { key } from 'svelte-awesome/icons';
5
- import { displayData } from '../../utils';
3
+ import { findGridItem } from '../appUtils';
4
+ import { components } from '../component';
6
5
  import PanelSection from '../settingsPanel/common/PanelSection.svelte';
7
6
  import ComponentOutputViewer from './ComponentOutputViewer.svelte';
8
7
  const { connectingInput, staticOutputs, worldStore, selectedComponent, app } = getContext('AppEditorContext');
@@ -22,13 +21,16 @@ function connectInput(componentId, path) {
22
21
  }
23
22
  }
24
23
  function getComponentNameById(componentId) {
25
- const component = $app.grid.find((c) => c?.data?.id === componentId);
24
+ const component = findGridItem($app, componentId);
26
25
  if (component?.data.type) {
27
- return displayData[component?.data.type].name;
26
+ return components[component?.data.type].name;
28
27
  }
29
28
  else if (componentId == 'ctx') {
30
29
  return 'Context';
31
30
  }
31
+ else if (componentId.startsWith('bg_')) {
32
+ return 'Background';
33
+ }
32
34
  else {
33
35
  return 'Table action';
34
36
  }
@@ -1,13 +1,22 @@
1
- <script>import FlowScriptPicker from '../../../flows/pickers/FlowScriptPicker.svelte';
1
+ <script>import { Button, Drawer, DrawerContent, Tab, Tabs } from '../../../common';
2
+ import FlowScriptPicker from '../../../flows/pickers/FlowScriptPicker.svelte';
3
+ import PickHubScript from '../../../flows/pickers/PickHubScript.svelte';
2
4
  import { Script } from '../../../../gen';
3
5
  import { inferArgs } from '../../../../infer';
4
6
  import { initialCode } from '../../../../script_helpers';
5
- import { emptySchema } from '../../../../utils';
7
+ import { capitalize, emptySchema, getScriptByPath } from '../../../../utils';
8
+ import { faCodeBranch } from '@fortawesome/free-solid-svg-icons';
9
+ import { Building, Globe2 } from 'lucide-svelte';
6
10
  import { createEventDispatcher, getContext } from 'svelte';
7
11
  import { fly } from 'svelte/transition';
8
- import { defaultCode } from '../../editorUtils';
12
+ import { defaultCode } from '../component';
13
+ import InlineScriptList from '../settingsPanel/mainInput/InlineScriptList.svelte';
14
+ import WorkspaceScriptList from '../settingsPanel/mainInput/WorkspaceScriptList.svelte';
9
15
  export let name;
10
16
  export let id;
17
+ let tab = 'inlinescripts';
18
+ let filter = '';
19
+ let picker;
11
20
  const { appPath, app } = getContext('AppEditorContext');
12
21
  const dispatch = createEventDispatcher();
13
22
  async function inferInlineScriptSchema(language, content, schema) {
@@ -21,9 +30,12 @@ async function inferInlineScriptSchema(language, content, schema) {
21
30
  }
22
31
  async function createInlineScriptByLanguage(language, path, subkind = undefined) {
23
32
  const componentType = $app.grid.find((c) => c.data.id === id)?.data?.type;
24
- const fullPath = `${appPath}/inline-script/${path}`;
25
33
  const content = defaultCode(componentType, language) ??
26
34
  initialCode(language, Script.kind.SCRIPT, subkind ?? 'flow');
35
+ return newInlineScript(content, language, path);
36
+ }
37
+ async function newInlineScript(content, language, path) {
38
+ const fullPath = `${appPath}/inline-script/${path}`;
27
39
  let schema = emptySchema();
28
40
  schema = await inferInlineScriptSchema(language, content, schema);
29
41
  const newInlineScript = {
@@ -34,15 +46,80 @@ async function createInlineScriptByLanguage(language, path, subkind = undefined)
34
46
  };
35
47
  dispatch('new', newInlineScript);
36
48
  }
49
+ async function pickScript(path) {
50
+ const script = await getScriptByPath(path);
51
+ newInlineScript(script.content, script.language, path);
52
+ }
53
+ async function pickHubScript(path) {
54
+ const script = await getScriptByPath(path);
55
+ newInlineScript(script.content, script.language, path);
56
+ }
57
+ function pickInlineScript(name) {
58
+ const unusedInlineScriptIndex = $app.unusedInlineScripts?.findIndex((script) => script.name === name);
59
+ const unusedInlineScript = $app.unusedInlineScripts?.[unusedInlineScriptIndex];
60
+ $app.unusedInlineScripts.splice(unusedInlineScriptIndex, 1);
61
+ $app = $app;
62
+ dispatch('new', unusedInlineScript.inlineScript);
63
+ }
37
64
  const langs = ['deno', 'python3', 'go', 'bash'];
65
+ function loadSchemaFromTriggerable(path, arg1) {
66
+ throw new Error('Function not implemented.');
67
+ }
38
68
  </script>
39
69
 
40
- <div class="flex flex-col p-4 gap-2 text-sm" in:fly={{ duration: 50 }}>
41
- Please choose a language:
70
+ <Drawer bind:this={picker} size="1000px">
71
+ <DrawerContent title="Script/Flow Picker" on:close={picker.closeDrawer}>
72
+ <div>
73
+ <div class="max-w-6xl">
74
+ <Tabs bind:selected={tab}>
75
+ <Tab size="sm" value="inlinescripts">
76
+ <div class="flex gap-2 items-center my-1">
77
+ <Building size={18} />
78
+ Detached Inline Scripts
79
+ </div>
80
+ </Tab>
81
+ <Tab size="sm" value="workspacescripts">
82
+ <div class="flex gap-2 items-center my-1">
83
+ <Building size={18} />
84
+ Workspace Scripts
85
+ </div>
86
+ </Tab>
87
+
88
+ <Tab size="sm" value="hubscripts">
89
+ <div class="flex gap-2 items-center my-1">
90
+ <Globe2 size={18} />
91
+ Hub Scripts
92
+ </div>
93
+ </Tab>
94
+ </Tabs>
95
+ <div class="my-2" />
96
+ <div class="flex flex-col gap-y-16">
97
+ <div class="flex flex-col">
98
+ {#if tab == 'inlinescripts'}
99
+ <InlineScriptList
100
+ on:pick={(e) => pickInlineScript(e.detail)}
101
+ inlineScripts={$app.unusedInlineScripts
102
+ ? $app.unusedInlineScripts.map((uis) => uis.name)
103
+ : []}
104
+ />
105
+ {:else if tab == 'workspacescripts'}
106
+ <WorkspaceScriptList on:pick={(e) => pickScript(e.detail)} />
107
+ {:else if tab == 'hubscripts'}
108
+ <PickHubScript bind:filter on:pick={(e) => pickHubScript(e.detail.path)} />
109
+ {/if}
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ </DrawerContent>
115
+ </Drawer>
116
+
117
+ <div class="flex flex-col px-4 py-2 gap-2 text-sm" in:fly={{ duration: 50 }}>
118
+ <div>Choose a language:</div>
42
119
  <div class="flex gap-2 flex-row flex-wrap">
43
120
  {#each langs as lang}
44
121
  <FlowScriptPicker
45
- label={lang}
122
+ label={capitalize(lang)}
46
123
  {lang}
47
124
  on:click={() => {
48
125
  createInlineScriptByLanguage(lang, name)
@@ -57,12 +134,24 @@ const langs = ['deno', 'python3', 'go', 'bash'];
57
134
  createInlineScriptByLanguage(Script.language.DENO, name, 'pgsql')
58
135
  }}
59
136
  />
60
- <FlowScriptPicker
137
+ <!-- <FlowScriptPicker
61
138
  label={`MySQL`}
62
139
  lang="mysql"
63
140
  on:click={() => {
64
141
  createInlineScriptByLanguage(Script.language.DENO, name, 'mysql')
65
142
  }}
66
- />
143
+ /> -->
144
+ </div>
145
+
146
+ <div class="mt-4">
147
+ <Button
148
+ on:click={() => picker?.openDrawer()}
149
+ size="sm"
150
+ color="blue"
151
+ startIcon={{ icon: faCodeBranch }}
152
+ btnClasses="truncate"
153
+ >
154
+ or fork a detached/Workspace/Hub script
155
+ </Button>
67
156
  </div>
68
157
  </div>
@@ -1,7 +1,7 @@
1
1
  <script>import Button from '../../../common/button/Button.svelte';
2
2
  import { faTrash } from '@fortawesome/free-solid-svg-icons';
3
3
  import { createEventDispatcher, getContext, onMount } from 'svelte';
4
- import { CheckCircle, Code2, X } from 'lucide-svelte';
4
+ import { CheckCircle, Code2, Maximize2, Trash2, X } from 'lucide-svelte';
5
5
  import InlineScriptEditorDrawer from './InlineScriptEditorDrawer.svelte';
6
6
  import { inferArgs } from '../../../../infer';
7
7
  import Badge from '../../../common/badge/Badge.svelte';
@@ -9,6 +9,7 @@ import { fly } from 'svelte/transition';
9
9
  import Editor from '../../../Editor.svelte';
10
10
  import { emptySchema, scriptLangToEditorLang } from '../../../../utils';
11
11
  import Tooltip from '../../../Tooltip.svelte';
12
+ import Popover from '../../../Popover.svelte';
12
13
  let inlineScriptEditorDrawer;
13
14
  export let inlineScript;
14
15
  export let name = undefined;
@@ -39,21 +40,51 @@ let runLoading = false;
39
40
  <InlineScriptEditorDrawer {editor} bind:this={inlineScriptEditorDrawer} bind:inlineScript />
40
41
 
41
42
  <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">
43
+ <div class="flex justify-between w-full gap-2 px-2 pt-1 flex-row items-center">
43
44
  {#if name !== undefined}
44
45
  <input bind:value={name} placeholder="Inline script name" />
45
46
  {/if}
46
47
  <div class="flex w-full flex-row gap-2 items-center justify-end">
47
48
  {#if validCode}
48
- <Badge color="green">
49
+ <Badge color="green" baseClass="!p-0 !h-[30px] aspect-square center-center">
49
50
  <CheckCircle size={16} />
50
51
  </Badge>
51
52
  {:else}
52
- <Badge color="red">
53
+ <Badge color="red" baseClass="!p-0 !h-[30px] aspect-square center-center">
53
54
  <X size={16} />
54
55
  </Badge>
55
56
  {/if}
56
57
 
58
+ {#if id.startsWith('unused-') || id.startsWith('bg_')}
59
+ <Popover notClickable placement="bottom">
60
+ <Button
61
+ size="xs"
62
+ color="red"
63
+ variant="border"
64
+ btnClasses="!px-1.5"
65
+ aria-label="Delete"
66
+ on:click={() => dispatch('delete')}
67
+ >
68
+ <Trash2 size={16} />
69
+ </Button>
70
+ <svelte:fragment slot="text">Delete</svelte:fragment>
71
+ </Popover>
72
+ {/if}
73
+ <Popover notClickable placement="bottom">
74
+ <Button
75
+ size="xs"
76
+ color="blue"
77
+ variant="border"
78
+ btnClasses="!px-1.5"
79
+ aria-label="Open full editor"
80
+ on:click={() => {
81
+ inlineScriptEditorDrawer?.openDrawer()
82
+ }}
83
+ >
84
+ <Maximize2 size={16} />
85
+ </Button>
86
+ <svelte:fragment slot="text">Open full editor</svelte:fragment>
87
+ </Popover>
57
88
  <Button
58
89
  variant="border"
59
90
  size="xs"
@@ -62,18 +93,9 @@ let runLoading = false;
62
93
  editor.format()
63
94
  }}
64
95
  >
65
- Format&nbsp;<Tooltip>Ctrl+S</Tooltip>
96
+ Format&nbsp;<Tooltip placement="bottom">Ctrl+S</Tooltip>
66
97
  </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}
98
+ {#if $runnableComponents[id] != undefined}
77
99
  <Button
78
100
  loading={runLoading}
79
101
  size="xs"
@@ -85,22 +107,9 @@ let runLoading = false;
85
107
  }}
86
108
  >
87
109
  Run&nbsp;
88
- <Tooltip light>Ctrl+Enter</Tooltip>
110
+ <Tooltip light placement="bottom">Ctrl+Enter</Tooltip>
89
111
  </Button>
90
112
  {/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
113
  </div>
105
114
  </div>
106
115
 
@@ -3,11 +3,14 @@ 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;
12
15
  export let id;
13
16
  async function fork(path) {
@@ -34,6 +37,22 @@ async function fork(path) {
34
37
  }
35
38
  let drawerFlowViewer;
36
39
  let flowPath = '';
40
+ async function refreshScript(x) {
41
+ let { schema } = await getScriptByPath(x.path);
42
+ if (!deepEqual(x.schema, schema)) {
43
+ x.schema = schema;
44
+ if (componentInput?.type == 'runnable') {
45
+ componentInput.fields = computeFields(schema, false, componentInput.fields);
46
+ }
47
+ componentInput = componentInput;
48
+ }
49
+ }
50
+ $: if (componentInput &&
51
+ componentInput.type == 'runnable' &&
52
+ componentInput?.runnable?.type === 'runnableByPath' &&
53
+ componentInput.runnable.runType == 'script') {
54
+ refreshScript(componentInput.runnable);
55
+ }
37
56
  </script>
38
57
 
39
58
  <Drawer bind:this={drawerFlowViewer} size="1200px">
@@ -116,7 +135,8 @@ let flowPath = '';
116
135
  startIcon={{ icon: faEye }}
117
136
  endIcon={{ icon: faExternalLinkAlt }}
118
137
  target="_blank"
119
- href="/flows/get/{componentInput?.['runnable']?.path}">Details page</Button
138
+ href="/flows/get/{componentInput?.['runnable']?.path}?workspace_id={$workspaceStore}"
139
+ >Details page</Button
120
140
  >
121
141
  </div>
122
142
  <FlowPathViewer path={componentInput.runnable.path} />