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
@@ -1,20 +1,27 @@
1
- <script>import { getContext } from 'svelte';
2
- import Grid from 'svelte-grid';
3
- import ComponentEditor from './ComponentEditor.svelte';
1
+ <script>import { getContext, afterUpdate } from 'svelte';
2
+ import Grid from '@windmill-labs/svelte-grid';
4
3
  import { classNames } from '../../../utils';
5
4
  import { columnConfiguration, disableDrag, enableDrag, isFixed, toggleFixed } from '../gridUtils';
5
+ import { twMerge } from 'tailwind-merge';
6
6
  import RecomputeAllComponents from './RecomputeAllComponents.svelte';
7
+ import HiddenComponent from '../components/helpers/HiddenComponent.svelte';
8
+ import Component from './component/Component.svelte';
7
9
  export let policy;
8
- const { selectedComponent, app, mode, connectingInput, staticOutputs, runnableComponents, lazyGrid, summary } = getContext('AppEditorContext');
10
+ const { selectedComponent, app, mode, connectingInput, staticOutputs, runnableComponents, lazyGrid, summary, focusedGrid } = getContext('AppEditorContext');
9
11
  // The drag is disabled when the user is connecting an input
12
+ // or when the user is previewing the app
13
+ // or when the focused grid is a subgrid
10
14
  $: setAllDrags($mode === 'preview' || $connectingInput.opened);
11
15
  function setAllDrags(enable) {
12
- if (enable) {
13
- $app.grid.map((gridItem) => disableDrag(gridItem));
14
- }
15
- else {
16
- $app.grid.map((gridItem) => enableDrag(gridItem));
17
- }
16
+ const fct = enable ? disableDrag : enableDrag;
17
+ $app.grid.map((gridItem) => {
18
+ const disabledGridItem = fct(gridItem);
19
+ if (disabledGridItem.data.subGrids) {
20
+ disabledGridItem.data.subGrids = disabledGridItem.data.subGrids.map((subgrid) => subgrid?.map((subgridItem) => fct(subgridItem)) ?? []);
21
+ }
22
+ return disabledGridItem;
23
+ });
24
+ Object.values($app.subgrids ?? {}).map((subgrid) => subgrid?.map((subgridItem) => fct(subgridItem)) ?? []);
18
25
  }
19
26
  function removeGridElement(component) {
20
27
  if (component) {
@@ -47,6 +54,7 @@ function removeGridElement(component) {
47
54
  function selectComponent(id) {
48
55
  if (!$connectingInput.opened) {
49
56
  $selectedComponent = id;
57
+ $focusedGrid = undefined;
50
58
  }
51
59
  }
52
60
  $: $app.grid && recomputeLazyGrid();
@@ -69,29 +77,52 @@ const onpointerdown = () => {
69
77
  const onpointerup = () => {
70
78
  pointerdown = false;
71
79
  };
80
+ afterUpdate(() => {
81
+ if ($selectedComponent) {
82
+ const parents = document.querySelectorAll('.svlt-grid-item');
83
+ parents.forEach((parent) => {
84
+ const hasActiveChild = !!parent.querySelector('.active-grid-item');
85
+ if (hasActiveChild) {
86
+ parent.style.setProperty('z-index', '100');
87
+ }
88
+ else {
89
+ parent.style.removeProperty('z-index');
90
+ }
91
+ });
92
+ }
93
+ });
72
94
  </script>
73
95
 
74
- <div class="pb-2 relative z-20">
96
+ <div class="relative w-full z-20 overflow-visible">
75
97
  <div
76
- class="w-full flex justify-between border-b {$connectingInput?.opened
98
+ class="w-full sticky top-0 flex justify-between border-l border-r border-b {$connectingInput?.opened
77
99
  ? ''
78
- : 'bg-gray-50 '}px-4 py-2 items-center gap-4"
100
+ : 'bg-gray-50 '} px-4 py-2 items-center gap-4"
101
+ style="z-index: 1000;"
79
102
  >
80
103
  <h2 class="truncate">{$summary}</h2>
81
104
  {#if !$connectingInput.opened}
82
105
  <RecomputeAllComponents />
83
106
  {/if}
84
- <div class="text-2xs text-gray-600"
85
- >{policy.on_behalf_of ? `on behalf of ${policy.on_behalf_of_email}` : ''}</div
86
- >
107
+ <div class="text-2xs text-gray-600">
108
+ {policy.on_behalf_of ? `on behalf of ${policy.on_behalf_of_email}` : ''}
109
+ </div>
87
110
  </div>
111
+
88
112
  <div
89
- class="px-4 pt-4 {$connectingInput?.opened ? '' : ''}"
113
+ style={$app.css?.['app']?.['grid']?.style}
114
+ class={twMerge('px-4 pt-4 pb-2 overflow-visible', $app.css?.['app']?.['grid']?.class ?? '')}
90
115
  on:pointerdown={onpointerdown}
91
116
  on:pointerleave={onpointerup}
92
117
  on:pointerup={onpointerup}
118
+ on:click={() => {
119
+ $selectedComponent = undefined
120
+ $focusedGrid = undefined
121
+ }}
93
122
  >
94
123
  <Grid
124
+ onTopId={$selectedComponent}
125
+ fillSpace={false}
95
126
  bind:items={$app.grid}
96
127
  let:dataItem
97
128
  rowHeight={36}
@@ -103,13 +134,11 @@ const onpointerup = () => {
103
134
  {#if gridComponent.data.id === dataItem.data.id}
104
135
  <!-- svelte-ignore a11y-click-events-have-key-events -->
105
136
  {#if $connectingInput.opened}
106
- {#if $connectingInput.opened}
107
- <div
108
- on:pointerenter={() => ($connectingInput.hoveredComponent = gridComponent.data.id)}
109
- on:pointerleave={() => ($connectingInput.hoveredComponent = undefined)}
110
- class="absolute w-full h-full bg-black border-2 bg-opacity-25 z-20 flex justify-center items-center"
111
- />
112
- {/if}
137
+ <div
138
+ on:pointerenter={() => ($connectingInput.hoveredComponent = gridComponent.data.id)}
139
+ on:pointerleave={() => ($connectingInput.hoveredComponent = undefined)}
140
+ class="absolute w-full h-full bg-black border-2 bg-opacity-25 z-20 flex justify-center items-center"
141
+ />
113
142
  <div
114
143
  style="transform: translate(-50%, -50%);"
115
144
  class="absolute w-fit justify-center bg-indigo-500/90 left-[50%] top-[50%] z-50 px-6 rounded border text-white py-2 text-5xl center-center"
@@ -118,17 +147,17 @@ const onpointerup = () => {
118
147
  {/if}
119
148
  <!-- svelte-ignore a11y-click-events-have-key-events -->
120
149
  <div
121
- on:pointerdown={() => {
122
- selectComponent(dataItem.data.id)
123
- }}
150
+ on:click|stopPropagation
151
+ on:pointerdown={() => selectComponent(dataItem.data.id)}
124
152
  class={classNames(
125
- 'h-full w-full flex justify-center align-center items-center',
153
+ 'h-full w-full center-center',
154
+ $selectedComponent === dataItem.data.id ? 'active-grid-item' : '',
126
155
  gridComponent.data.card ? 'border border-gray-100' : ''
127
156
  )}
128
157
  >
129
- <ComponentEditor
158
+ <Component
130
159
  {pointerdown}
131
- bind:component={gridComponent.data}
160
+ bind:pComponent={gridComponent.data}
132
161
  selected={$selectedComponent === dataItem.data.id}
133
162
  locked={isFixed(gridComponent)}
134
163
  on:delete={() => removeGridElement(gridComponent.data)}
@@ -146,10 +175,24 @@ const onpointerup = () => {
146
175
  </div>
147
176
  </div>
148
177
 
149
- <style>
178
+ {#if $app.hiddenInlineScripts}
179
+ {#each $app.hiddenInlineScripts as script, index}
180
+ {#if script}
181
+ <HiddenComponent
182
+ id={`bg_${index}`}
183
+ inlineScript={script.inlineScript}
184
+ name={script.name}
185
+ bind:fields={script.fields}
186
+ bind:staticOutputs={$staticOutputs[`bg_${index}`]}
187
+ />
188
+ {/if}
189
+ {/each}
190
+ {/if}
191
+
192
+ <style global>
150
193
  :global(.svlt-grid-shadow) {
151
194
  /* Back shadow */
152
- background: rgb(147 197 253) !important;
195
+ background: #93c4fdd0 !important;
153
196
  }
154
197
  :global(.svlt-grid-active) {
155
198
  opacity: 1 !important;
@@ -5,6 +5,8 @@ declare const __propDef: {
5
5
  policy: Policy;
6
6
  };
7
7
  events: {
8
+ click: MouseEvent;
9
+ } & {
8
10
  [evt: string]: CustomEvent<any>;
9
11
  };
10
12
  slots: {};
@@ -1,13 +1,41 @@
1
1
  <script>import { getContext } from 'svelte';
2
+ import { allItems, allItemsWithParent } from '../utils';
3
+ import PanelSection from './settingsPanel/common/PanelSection.svelte';
2
4
  import ComponentPanel from './settingsPanel/ComponentPanel.svelte';
5
+ import InputsSpecsEditor from './settingsPanel/InputsSpecsEditor.svelte';
3
6
  import TablePanel from './TablePanel.svelte';
4
- const { selectedComponent, lazyGrid } = getContext('AppEditorContext');
7
+ const { selectedComponent, app } = getContext('AppEditorContext');
5
8
  </script>
6
9
 
7
- {#each $lazyGrid as gridItem (gridItem.data.id)}
10
+ {#each $app.grid as gridItem (gridItem.data.id)}
8
11
  {#if gridItem.data.id === $selectedComponent}
9
- <ComponentPanel bind:component={gridItem.data} />
12
+ <ComponentPanel parent={undefined} bind:component={gridItem.data} />
10
13
  {:else if gridItem.data.type === 'tablecomponent'}
11
14
  <TablePanel bind:component={gridItem.data} />
12
15
  {/if}
13
16
  {/each}
17
+
18
+ {#if $app.subgrids}
19
+ {#each Object.keys($app.subgrids ?? {}) as key (key)}
20
+ {#each $app.subgrids[key] as gridItem (gridItem.data.id)}
21
+ {#if gridItem.data.id === $selectedComponent}
22
+ <ComponentPanel parent={key} bind:component={gridItem.data} />
23
+ {:else if gridItem.data.type === 'tablecomponent'}
24
+ <TablePanel bind:component={gridItem.data} />
25
+ {/if}
26
+ {/each}
27
+ {/each}
28
+ {/if}
29
+
30
+ {#each $app?.hiddenInlineScripts ?? [] as script, index (script.name)}
31
+ {#if $selectedComponent === `bg_${index}`}
32
+ <PanelSection title={`Background script inputs`}>
33
+ <InputsSpecsEditor
34
+ id={`bg_${index}`}
35
+ shouldCapitalize={false}
36
+ bind:inputSpecs={script.fields}
37
+ userInputEnabled={false}
38
+ />
39
+ </PanelSection>
40
+ {/if}
41
+ {/each}
@@ -0,0 +1,111 @@
1
+ <script>import { classNames } from '../../../utils';
2
+ import { createEventDispatcher, getContext } from 'svelte';
3
+ import Grid from '@windmill-labs/svelte-grid';
4
+ import { columnConfiguration, isFixed, toggleFixed } from '../gridUtils';
5
+ import Component from './component/Component.svelte';
6
+ export let containerHeight;
7
+ export let noPadding = false;
8
+ //export let id: string
9
+ export let subGrid = [];
10
+ export let visible = true;
11
+ const dispatch = createEventDispatcher();
12
+ const { app, connectingInput, selectedComponent, focusedGrid } = getContext('AppEditorContext');
13
+ let pointerdown = false;
14
+ let onComponent = undefined;
15
+ const onpointerdown = (e) => {
16
+ if (onComponent === undefined) {
17
+ dispatch('focus');
18
+ }
19
+ else {
20
+ onComponent = undefined;
21
+ }
22
+ pointerdown = true;
23
+ };
24
+ const onpointerup = () => {
25
+ pointerdown = false;
26
+ };
27
+ function selectComponent(id) {
28
+ onComponent = id;
29
+ if (!$connectingInput.opened) {
30
+ $selectedComponent = id;
31
+ /*
32
+ $focusedGrid = {
33
+ parentComponentId: parentId,
34
+ subGridIndex: index
35
+ }
36
+ */
37
+ }
38
+ }
39
+ function lock(gridComponent) {
40
+ let fComponent = $app.grid.find((c) => c.id === gridComponent.id);
41
+ if (fComponent) {
42
+ fComponent = toggleFixed(fComponent);
43
+ }
44
+ }
45
+ // @ts-ignore
46
+ let container;
47
+ </script>
48
+
49
+ <div class="relative w-full subgrid {visible ? 'visible' : 'invisible h-0 '}" bind:this={container}>
50
+ <div
51
+ class:px-2={!noPadding}
52
+ class="py-2 overflow-auto {$connectingInput?.opened ? '' : ''}"
53
+ on:pointerdown|stopPropagation={onpointerdown}
54
+ on:pointerleave={onpointerup}
55
+ on:pointerup={onpointerup}
56
+ style="height: {containerHeight}px;"
57
+ >
58
+ <div>
59
+ <Grid
60
+ bind:items={subGrid}
61
+ let:dataItem
62
+ rowHeight={36}
63
+ cols={columnConfiguration}
64
+ fastStart={true}
65
+ gap={[4, 2]}
66
+ scroller={container}
67
+ >
68
+ {#each subGrid as gridComponent (gridComponent.id)}
69
+ {#if gridComponent.data.id === dataItem.data.id}
70
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
71
+ {#if $connectingInput.opened}
72
+ {#if $connectingInput.opened}
73
+ <div
74
+ on:pointerenter={() =>
75
+ ($connectingInput.hoveredComponent = gridComponent.data.id)}
76
+ on:pointerleave={() => ($connectingInput.hoveredComponent = undefined)}
77
+ class="absolute w-full h-full bg-black border-2 bg-opacity-25 z-20 flex justify-center items-center"
78
+ />
79
+ {/if}
80
+ <div
81
+ style="transform: translate(-50%, -50%);"
82
+ class="absolute w-fit justify-center bg-indigo-500/90 left-[50%] top-[50%] z-50 px-6 rounded border text-white py-2 text-5xl center-center"
83
+ >
84
+ {dataItem.data.id}
85
+ </div>
86
+ {/if}
87
+
88
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
89
+ <div
90
+ on:pointerdown={() => selectComponent(dataItem.data.id)}
91
+ class={classNames(
92
+ 'h-full w-full center-center',
93
+ $selectedComponent === dataItem.data.id ? 'active-grid-item' : '',
94
+ gridComponent.data.card ? 'border border-gray-100' : '',
95
+ 'top-0'
96
+ )}
97
+ >
98
+ <Component
99
+ {pointerdown}
100
+ bind:pComponent={gridComponent.data}
101
+ selected={$selectedComponent === dataItem.data.id}
102
+ locked={isFixed(gridComponent)}
103
+ on:lock={() => lock(gridComponent)}
104
+ />
105
+ </div>
106
+ {/if}
107
+ {/each}
108
+ </Grid>
109
+ </div>
110
+ </div>
111
+ </div>
@@ -0,0 +1,24 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ containerHeight: number;
5
+ noPadding?: boolean | undefined;
6
+ subGrid?: FilledItem<{
7
+ data: import("./component").AppComponent;
8
+ id: string;
9
+ }>[] | undefined;
10
+ visible?: boolean | undefined;
11
+ };
12
+ events: {
13
+ focus: CustomEvent<any>;
14
+ } & {
15
+ [evt: string]: CustomEvent<any>;
16
+ };
17
+ slots: {};
18
+ };
19
+ export type SubGridEditorProps = typeof __propDef.props;
20
+ export type SubGridEditorEvents = typeof __propDef.events;
21
+ export type SubGridEditorSlots = typeof __propDef.slots;
22
+ export default class SubGridEditor extends SvelteComponentTyped<SubGridEditorProps, SubGridEditorEvents, SubGridEditorSlots> {
23
+ }
24
+ export {};
@@ -7,6 +7,8 @@ const { selectedComponent } = getContext('AppEditorContext');
7
7
  {#each component.actionButtons as actionButton (actionButton.id)}
8
8
  {#if actionButton.id === $selectedComponent}
9
9
  <ComponentPanel
10
+ parent={undefined}
11
+ noGrid
10
12
  rowColumns
11
13
  bind:component={actionButton}
12
14
  onDelete={() => {
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { TableComponent } from '../types';
2
+ import type { TableComponent } from './component';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  component: TableComponent;
@@ -0,0 +1,9 @@
1
+ import type { App, FocusedGrid, GridItem } from '../types';
2
+ import { type AppComponent } from './component';
3
+ export declare function findGridItem(app: App, id: string): GridItem | undefined;
4
+ export declare function getNextGridItemId(app: App): string;
5
+ export declare function createNewGridItem(grid: GridItem[], id: string, data: AppComponent): GridItem;
6
+ export declare function insertNewGridItem(app: App, data: AppComponent, focusedGrid: FocusedGrid | undefined, keepId?: boolean): string;
7
+ export declare function getAllSubgridsAndComponentIds(app: App, component: AppComponent): [string[], string[]];
8
+ export declare function deleteGridItem(app: App, component: AppComponent, parent: string | undefined): string[];
9
+ export declare function duplicateGridItem(app: App, parent: string | undefined, id: string): string | undefined;
@@ -0,0 +1,141 @@
1
+ import { getNextId } from '../../flows/flowStateUtils';
2
+ import { Component, getRecommendedDimensionsByComponent } from './component';
3
+ import gridHelp from '@windmill-labs/svelte-grid/src/utils/helper';
4
+ import { gridColumns } from '../gridUtils';
5
+ import { allItems } from '../utils';
6
+ function findGridItemById(root, subGrids, id) {
7
+ for (const gridItem of root) {
8
+ if (gridItem.id === id) {
9
+ return gridItem;
10
+ }
11
+ if (subGrids) {
12
+ const numberOfSubgrids = gridItem.data.numberOfSubgrids;
13
+ if (numberOfSubgrids) {
14
+ for (let i = 0; i < numberOfSubgrids; i++) {
15
+ const subgrid = subGrids[`${gridItem.id}-${i}`] ?? [];
16
+ const found = findGridItemById(subgrid, subGrids, id);
17
+ if (found) {
18
+ return found;
19
+ }
20
+ }
21
+ }
22
+ }
23
+ }
24
+ return undefined;
25
+ }
26
+ export function findGridItem(app, id) {
27
+ return findGridItemById(app.grid, app.subgrids, id);
28
+ }
29
+ export function getNextGridItemId(app) {
30
+ const subgridsKeys = allItems(app.grid, app.subgrids).map((x) => x.id);
31
+ const withoutDash = subgridsKeys.map((element) => element.split('-')[0]);
32
+ const id = getNextId([...new Set(withoutDash)]);
33
+ return id;
34
+ }
35
+ export function createNewGridItem(grid, id, data) {
36
+ const appComponent = data;
37
+ appComponent.id = id;
38
+ const newComponent = {
39
+ fixed: false,
40
+ resizable: true,
41
+ draggable: true,
42
+ customDragger: false,
43
+ customResizer: false,
44
+ x: 0,
45
+ y: 0
46
+ };
47
+ let newData = JSON.parse(JSON.stringify(appComponent));
48
+ const newItem = {
49
+ data: newData,
50
+ id: id
51
+ };
52
+ gridColumns.forEach((column) => {
53
+ const rec = getRecommendedDimensionsByComponent(appComponent.type, column);
54
+ newItem[column] = {
55
+ ...newComponent,
56
+ min: { w: 1, h: 1 },
57
+ max: { w: column, h: 100 },
58
+ w: rec.w,
59
+ h: rec.h
60
+ };
61
+ const position = gridHelp.findSpace(newItem, grid, column);
62
+ newItem[column] = { ...newItem[column], ...position };
63
+ });
64
+ return newItem;
65
+ }
66
+ export function insertNewGridItem(app, data, focusedGrid, keepId) {
67
+ const id = keepId ? data.id : getNextGridItemId(app);
68
+ if (!app.subgrids) {
69
+ app.subgrids = {};
70
+ }
71
+ if (!focusedGrid) {
72
+ const newItem = createNewGridItem(app.grid, id, data);
73
+ app.grid.push(newItem);
74
+ }
75
+ else {
76
+ const { parentComponentId, subGridIndex } = focusedGrid;
77
+ const key = `${parentComponentId}-${subGridIndex ?? 0}`;
78
+ const subGrid = app.subgrids[key] ?? [];
79
+ subGrid.push(createNewGridItem(subGrid, id, data));
80
+ app.subgrids[key] = subGrid;
81
+ }
82
+ for (let i = 0; i < (data.numberOfSubgrids ?? 0); i++) {
83
+ app.subgrids[`${id}-${i}`] = [];
84
+ }
85
+ return id;
86
+ }
87
+ export function getAllSubgridsAndComponentIds(app, component) {
88
+ const subgrids = [];
89
+ let components = [component.id];
90
+ if (app.subgrids && component.numberOfSubgrids) {
91
+ for (let i = 0; i < component.numberOfSubgrids; i++) {
92
+ const key = `${component.id}-${i}`;
93
+ const subgrid = app.subgrids[key];
94
+ if (subgrid) {
95
+ subgrids.push(key);
96
+ for (const item of subgrid) {
97
+ let [recSubgrids, recComponents] = getAllSubgridsAndComponentIds(app, item.data);
98
+ subgrids.push(...recSubgrids);
99
+ components.push(...recComponents);
100
+ }
101
+ }
102
+ }
103
+ }
104
+ return [subgrids, components];
105
+ }
106
+ export function deleteGridItem(app, component, parent) {
107
+ let [subgrids, components] = getAllSubgridsAndComponentIds(app, component);
108
+ if (app.subgrids) {
109
+ subgrids.forEach((id) => {
110
+ delete app.subgrids[id];
111
+ });
112
+ }
113
+ if (!parent) {
114
+ let index = app.grid.findIndex((x) => x.id == component.id);
115
+ if (index > -1) {
116
+ app.grid.splice(index, 1);
117
+ }
118
+ }
119
+ else {
120
+ let grid = app.subgrids[parent];
121
+ let index = grid.findIndex((x) => x.id == component.id);
122
+ if (index > -1) {
123
+ grid.splice(index, 1);
124
+ }
125
+ }
126
+ return components;
127
+ }
128
+ export function duplicateGridItem(app, parent, id) {
129
+ const gridItem = findGridItem(app, id);
130
+ if (gridItem) {
131
+ const newId = getNextGridItemId(app);
132
+ const newItem = JSON.parse(JSON.stringify(gridItem));
133
+ newItem.id = newId;
134
+ newItem.data.id = newId;
135
+ let focusedGrid = parent
136
+ ? { parentComponentId: parent.split('-')[0], subGridIndex: Number(parent.split('-')[1]) }
137
+ : undefined;
138
+ return insertNewGridItem(app, newItem.data, focusedGrid);
139
+ }
140
+ return undefined;
141
+ }